本發(fā)明涉及互聯(lián)網(wǎng)通信領域,尤其涉及一種Windows與Linux服務器信息采集與管理控制模型。
背景技術:
在運維領域,對于既有Windows又有l(wèi)inux這樣的混搭系統(tǒng)的互聯(lián)網(wǎng)公司而言,制定標準統(tǒng)一的訪問控制接口、統(tǒng)一后臺腳本語言,可以大大降低異構(gòu)系統(tǒng)維護的復雜度,簡化開發(fā)流程,實現(xiàn)有效管理。其中,“信息采集與管理控制模型”既可以應用于Linux,也可以應用于Windows,是整個系統(tǒng)的核心所在。
現(xiàn)有的windows管控方案:WMI(Windows Management Instrumentation Windows管理規(guī)范)是內(nèi)置在Windows系列操作系統(tǒng)中核心的管理支持技術。通過它可以訪問、配置、管理和監(jiān)視幾乎所有的Windows資源。大多用戶習慣于使用眾多的圖形化管理工具來管理Windows資源,在WMI之前這些工具都是通過Win32應用程序編程接口(Application Programming Interfaces,API)來訪問和管理Windows資源的。WMI的出現(xiàn)使得系統(tǒng)管理員可以通過一種簡便的方法即利用常見的腳本語言。通常利用WMI需要和腳本如WSH和VBScript結(jié)合起來,可以實現(xiàn)常用的系統(tǒng)管理任務。現(xiàn)有方案主要有以下幾個缺點;和Iinux的管理風格格格不入,難于形成統(tǒng)一接口;管理Windows難度大;難于和開源軟件結(jié)合。
技術實現(xiàn)要素:
本發(fā)明公開了一種windows與linux服務器混搭環(huán)境下的統(tǒng)一的信息采集與管理控制模型(Information Coll ection&ManagementControl,縮寫為ICMC)。和管理Linux設備一樣,Windows設備的物理信息完全可以通過開源技術手段加以自動化采集,支持各類腳本化語言進行管控,“信息采集與管理控制模型ICMC”應運而生,該模型構(gòu)成“Windows與Linux服務器混搭環(huán)境信息管理系統(tǒng)WLSIMS”的底層基礎部件。其技術方案如下所示:
一種Windows與Linux服務器信息采集與管理控制模型,包括服務端,其為客戶端提供數(shù)據(jù)發(fā)布的API和客戶端內(nèi)置的數(shù)據(jù)采集模塊的版本控制與數(shù)據(jù)采集腳本下載;客戶端,接受信息采集與管理控制指令,并將數(shù)據(jù)采集腳本執(zhí)行結(jié)果返回服務端;所述客戶端通過SOCAT工具進行數(shù)據(jù)傳輸和控制,信息采集與管理控制指令采用SSL加密協(xié)議,并支持數(shù)字證書認證,增強指令的安全性;
進一步的,所述的信息采集包括客戶端硬件信息采集、系統(tǒng)軟件信息采集及運行狀態(tài)采集。
進一步的,所述的管理控制包括客戶端的數(shù)據(jù)采集模塊的版本控制和數(shù)據(jù)采集腳本下載,服務端通過SOCAT工具調(diào)用客戶端內(nèi)的數(shù)據(jù)采集腳本,該數(shù)據(jù)采集腳本具有版本信息獲取功能,執(zhí)行時,首先向服務端發(fā)起版本檢查請求,http方式請求訪問服務端的一個版本信息文件,服務端每次調(diào)整腳本后及時更新這個文件中的版本內(nèi)容,如果出現(xiàn)服務端和客戶端腳本的版本信息不一致情況,客戶端通過http方法從服務端下載最新的腳本覆蓋更新到本地。從而實現(xiàn)客戶端數(shù)據(jù)采集腳本的版本控制。
進一步的,所述服務端以多線程的方式向客戶端發(fā)送SOCAT請求,提高效率,多線程發(fā)送方法采用perl編寫腳本來實現(xiàn)。
進一步的,所述的客戶端數(shù)據(jù)采集腳本采用perl/shell/vbs編寫。
進一步的,所述的服務端的API通過服務端自身的apache服務和php編寫的腳本實現(xiàn),用于接收客戶端發(fā)送的數(shù)據(jù)。
7.根據(jù)權(quán)利要求1所述的Windows與Linux服務器信息采集與管理控制模型,其特征在于:所述的SOCAT工具使用方法如下:
1)創(chuàng)建服務端證書;
2)創(chuàng)建客戶端證書;
3)在windows服務器中進行cygwin環(huán)境部署,首先從cygwin安裝文件中提取下列庫文件:
cygcrypto-1.0.0.dll
cyggcc_s-1.dll
cygncursesw-10.dll
cygreadline7.dll
cygssl-1.0.0.dll
cygwin1.dll
cygwrap-O.dll
cygz.dll
復制到windows服務器的%SystemRoot%/system/目錄下;
然后,從cygwin安裝文件中提取socat.exe命令復制到windows服務器的%SystemRoot%下;
最后,將被控端證書文件server.pemclient.crt復制到windows服務器的%SystemRoot%下;
4)將socat注冊成windows服務:首先,封裝SOCAT,在windows服務器通過nssm工具注冊socat服務,并在服務端上通過SOCAT建立執(zhí)行腳本。
本發(fā)明的有益效果在于:信息動態(tài)采集,減少人為的數(shù)據(jù)錄入和維護,設備物理信息數(shù)據(jù)由數(shù)據(jù)信息采集腳本進行采集,實現(xiàn)了資產(chǎn)物理信息數(shù)據(jù)錄入、更新的自動化,解決了人工登記面臨的缺陷;管理控制功能,減少人為的登陸服務器管理控制工作,任務部署和執(zhí)行由MC進行,實現(xiàn)了服務器的自動化管控,解決了人為管控面臨的麻煩
附圖說明
結(jié)合附圖對本發(fā)明作進一步詳細說明:
圖1為本申請系統(tǒng)架構(gòu)圖;
圖2為本申請流程圖;
具體實施方式
以下將根據(jù)附圖所示的優(yōu)選實施例,對本發(fā)明進行詳細解釋,然而本發(fā)明不限于該實施例。
結(jié)合附圖1-2,對本技術方案進行介紹:
一種Windows與Linux服務器信息采集與管理控制模型,包括服務端,其為客戶端提供數(shù)據(jù)發(fā)布的API和客戶端內(nèi)置的數(shù)據(jù)采集模塊的版本控制與數(shù)據(jù)采集腳本下載;客戶端,接受信息采集與管理控制指令,并將數(shù)據(jù)采集腳本執(zhí)行結(jié)果返回服務端;所述客戶端通過SOCAT工具進行數(shù)據(jù)傳輸和控制,信息采集與管理控制指令采用SSL加密協(xié)議,并支持數(shù)字證書認證,增強指令的安全性;
進一步的,所述的信息采集包括客戶端硬件信息采集、系統(tǒng)軟件信息采集及運行狀態(tài)采集。
進一步的,所述的管理控制包括客戶端的數(shù)據(jù)采集模塊的版本控制和數(shù)據(jù)采集腳本下載,服務端通過SOCAT工具調(diào)用客戶端內(nèi)的數(shù)據(jù)采集腳本,該數(shù)據(jù)采集腳本具有版本信息獲取功能,執(zhí)行時,首先向服務端發(fā)起版本檢查請求,http方式請求訪問服務端的一個版本信息文件,服務端每次調(diào)整腳本后及時更新這個文件中的版本內(nèi)容,如果出現(xiàn)服務端和客戶端腳本的版本信息不一致情況,客戶端通過http方法從服務端下載最新的腳本覆蓋更新到本地。從而實現(xiàn)客戶端數(shù)據(jù)采集腳本的版本控制。
進一步的,所述服務端以多線程的方式向客戶端發(fā)送SOCAT請求,提高效率,多線程發(fā)送方法采用perl編寫腳本來實現(xiàn)。
進一步的,所述的客戶端數(shù)據(jù)采集腳本采用perl/shell/vbs編寫。
進一步的,所述的服務端的API通過服務端自身的apache服務和php編寫的腳本實現(xiàn),用于接收客戶端發(fā)送的數(shù)據(jù)。
7.根據(jù)權(quán)利要求1所述的Windows與Linux服務器信息采集與管理控制模型,其特征在于:所述的SOCAT工具使用方法如下:
1)創(chuàng)建服務端證書;
/usr/bin/opensslgenrsa 2048>server.key
/usr/bin/opensslreq -new -x509 -days 3653 -key server.key>Server.crt
cat server.key server.crt>server.pem
openssl dhparam -out dhparams.pem 2048
cat dhparams.pem>>server.pem
chmod 600 server.keyserver.pem
2)創(chuàng)建客戶端證書;
/usr/bin/opensslgenrsa 2048>client.key
/usr/bin/opensslreq -new -x509 -days 3653 -key client.key>client.crt
cat client.key client.crt>client.pem
openssldhparam -out dhparams.pem 2048
cat dhparams.pem>>client.pem
chmod 600 client.keyclient.pem
3)在windows服務器中進行cygwin環(huán)境部署,首先從cygwin安裝文件中提取下列庫文件:
cygcrypto-1.0.0.dll
cyggcc_s-1.dll
cygncursesw-10.dll
cygreadline7.dll
cygssl-1.0.0.dll
cygwin1.dll
cygwrap-0.dll
cygz.dll
復制到windows服務器的%SystemRoot%/system/目錄下;
然后,從cygwin安裝文件中提取socat.exe命令復制到windows服務器的%SystemRoot%下;
最后,將被控端證書文件server.pemclient.crt復制到windows服務器的%SystemRoot%下;
4)將socat注冊成windows服務:首先,封裝SOCAT:
在windows服務器通過nssm工具注冊socat服務:
install.bat:
@echo off
Set NssPath=%SystemRoot%
Set SocatPath=%SystemRoot%\system32\application
%NssPath%\nssm install SocatService″%SocatPath%\server.exe″
pause
附上服務卸載腳本_uninstall.bat:
@echo off
Set NssPath=%SystemRoot%
rem加了confirm后不用重啟服務器既可以徹底清理掉該服務
net stop SocatService&%NssPath%\nssm remove SocatService confirm
pause
可通過nssm edit SocatService進入圖形化編輯界面進行管理;
并在服務端上通過SOCAT建立執(zhí)行腳本;
5)在被控端windows服務器上建立腳本:
例:rerun.cmd
內(nèi)容如下:
set JAVA_BIN=″C:\Program Files\Java\jdk1.7.071\bin″
%JAVA_BIN%\java -Xms100m -Xmx500m-cp.;c:/agent;c:/agent/agent.jar
cn.rtmap.bigdata.ingest.agent.PositionAgentDaemon%1 %2
Exit;
6)在管理端通過socat建立管道進行遠程執(zhí)行腳本:
例:遠程執(zhí)行rerun.cmd
echo″start rerun.cmd 2016-03-08 863200020061800001″|socat-openssl-connect:123.57.74.190:4433,cert=client.pem,cafile=server.crt。
通過客戶端與服務端之間建立訪問與控制通道,我們采用SOCAT遠程數(shù)據(jù)傳輸和控制工具、SSL加密協(xié)議、數(shù)字證書實現(xiàn)windows服務器信息的自動化采集與控制。
以上具體實施方式僅用以說明本發(fā)明的技術方案而非限制,盡管參照實例對本發(fā)明進行了詳細說明,本領域的普通技術人員應當理解,可以對本發(fā)明的技術方案進行修改或者等同替換,而不脫離本發(fā)明技術方案的精神和范圍,其均應涵蓋在本發(fā)明的權(quán)利要求范圍當中。