本发明涉及互联网通信领域,尤其涉及一种Windows与Linux服务器信息采集与管理控制模型。
背景技术:
在运维领域,对于既有Windows又有linux这样的混搭系统的互联网公司而言,制定标准统一的访问控制接口、统一后台脚本语言,可以大大降低异构系统维护的复杂度,简化开发流程,实现有效管理。其中,“信息采集与管理控制模型”既可以应用于Linux,也可以应用于Windows,是整个系统的核心所在。
现有的windows管控方案:WMI(Windows Management Instrumentation Windows管理规范)是内置在Windows系列操作系统中核心的管理支持技术。通过它可以访问、配置、管理和监视几乎所有的Windows资源。大多用户习惯于使用众多的图形化管理工具来管理Windows资源,在WMI之前这些工具都是通过Win32应用程序编程接口(Application Programming Interfaces,API)来访问和管理Windows资源的。WMI的出现使得系统管理员可以通过一种简便的方法即利用常见的脚本语言。通常利用WMI需要和脚本如WSH和VBScript结合起来,可以实现常用的系统管理任务。现有方案主要有以下几个缺点;和Iinux的管理风格格格不入,难于形成统一接口;管理Windows难度大;难于和开源软件结合。
技术实现要素:
本发明公开了一种windows与linux服务器混搭环境下的统一的信息采集与管理控制模型(Information Coll ection&ManagementControl,缩写为ICMC)。和管理Linux设备一样,Windows设备的物理信息完全可以通过开源技术手段加以自动化采集,支持各类脚本化语言进行管控,“信息采集与管理控制模型ICMC”应运而生,该模型构成“Windows与Linux服务器混搭环境信息管理系统WLSIMS”的底层基础部件。其技术方案如下所示:
一种Windows与Linux服务器信息采集与管理控制模型,包括服务端,其为客户端提供数据发布的API和客户端内置的数据采集模块的版本控制与数据采集脚本下载;客户端,接受信息采集与管理控制指令,并将数据采集脚本执行结果返回服务端;所述客户端通过SOCAT工具进行数据传输和控制,信息采集与管理控制指令采用SSL加密协议,并支持数字证书认证,增强指令的安全性;
进一步的,所述的信息采集包括客户端硬件信息采集、系统软件信息采集及运行状态采集。
进一步的,所述的管理控制包括客户端的数据采集模块的版本控制和数据采集脚本下载,服务端通过SOCAT工具调用客户端内的数据采集脚本,该数据采集脚本具有版本信息获取功能,执行时,首先向服务端发起版本检查请求,http方式请求访问服务端的一个版本信息文件,服务端每次调整脚本后及时更新这个文件中的版本内容,如果出现服务端和客户端脚本的版本信息不一致情况,客户端通过http方法从服务端下载最新的脚本覆盖更新到本地。从而实现客户端数据采集脚本的版本控制。
进一步的,所述服务端以多线程的方式向客户端发送SOCAT请求,提高效率,多线程发送方法采用perl编写脚本来实现。
进一步的,所述的客户端数据采集脚本采用perl/shell/vbs编写。
进一步的,所述的服务端的API通过服务端自身的apache服务和php编写的脚本实现,用于接收客户端发送的数据。
7.根据权利要求1所述的Windows与Linux服务器信息采集与管理控制模型,其特征在于:所述的SOCAT工具使用方法如下:
1)创建服务端证书;
2)创建客户端证书;
3)在windows服务器中进行cygwin环境部署,首先从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建立执行脚本。
本发明的有益效果在于:信息动态采集,减少人为的数据录入和维护,设备物理信息数据由数据信息采集脚本进行采集,实现了资产物理信息数据录入、更新的自动化,解决了人工登记面临的缺陷;管理控制功能,减少人为的登陆服务器管理控制工作,任务部署和执行由MC进行,实现了服务器的自动化管控,解决了人为管控面临的麻烦
附图说明
结合附图对本发明作进一步详细说明:
图1为本申请系统架构图;
图2为本申请流程图;
具体实施方式
以下将根据附图所示的优选实施例,对本发明进行详细解释,然而本发明不限于该实施例。
结合附图1-2,对本技术方案进行介绍:
一种Windows与Linux服务器信息采集与管理控制模型,包括服务端,其为客户端提供数据发布的API和客户端内置的数据采集模块的版本控制与数据采集脚本下载;客户端,接受信息采集与管理控制指令,并将数据采集脚本执行结果返回服务端;所述客户端通过SOCAT工具进行数据传输和控制,信息采集与管理控制指令采用SSL加密协议,并支持数字证书认证,增强指令的安全性;
进一步的,所述的信息采集包括客户端硬件信息采集、系统软件信息采集及运行状态采集。
进一步的,所述的管理控制包括客户端的数据采集模块的版本控制和数据采集脚本下载,服务端通过SOCAT工具调用客户端内的数据采集脚本,该数据采集脚本具有版本信息获取功能,执行时,首先向服务端发起版本检查请求,http方式请求访问服务端的一个版本信息文件,服务端每次调整脚本后及时更新这个文件中的版本内容,如果出现服务端和客户端脚本的版本信息不一致情况,客户端通过http方法从服务端下载最新的脚本覆盖更新到本地。从而实现客户端数据采集脚本的版本控制。
进一步的,所述服务端以多线程的方式向客户端发送SOCAT请求,提高效率,多线程发送方法采用perl编写脚本来实现。
进一步的,所述的客户端数据采集脚本采用perl/shell/vbs编写。
进一步的,所述的服务端的API通过服务端自身的apache服务和php编写的脚本实现,用于接收客户端发送的数据。
7.根据权利要求1所述的Windows与Linux服务器信息采集与管理控制模型,其特征在于:所述的SOCAT工具使用方法如下:
1)创建服务端证书;
/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)创建客户端证书;
/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环境部署,首先从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建立执行脚本;
5)在被控端windows服务器上建立脚本:
例:rerun.cmd
内容如下:
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建立管道进行远程执行脚本:
例:远程执行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远程数据传输和控制工具、SSL加密协议、数字证书实现windows服务器信息的自动化采集与控制。
以上具体实施方式仅用以说明本发明的技术方案而非限制,尽管参照实例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。