一种兼容多操作系统的系统监控方法及装置与流程

文档序号:26786774发布日期:2021-09-28 21:02阅读:149来源:国知局
一种兼容多操作系统的系统监控方法及装置与流程

1.本技术涉及电子技术领域,尤其涉及一种兼容多操作系统的系统监控方法及装置。


背景技术:

2.现有技术中为了保证微服务健康稳定运行,网管要求对运行微服务的服务器的各项运行指标进行实时监控和修改操作系统的一些参数,具体监控方式可以是针对部署微服务的服务器操作系统版本写一套采集数据和参数修改的shell命令,对单个服务器进行指标数据的采集和参数的修改。
3.目前系统监控实现时是创建一个静态的常量类,将监控所有会用到的shell命令编写在这个常量类中,如现有技术中centos6.9的shell命令。在需要使用shell命令时,则可以通过ssh(secure shell,安全外壳协议)连接工具类远程登录服务器,然后登录的服务器执行静态类中相应的命令来获取结果。
4.上述存储shell命令的存储方式对单点集中部署的固定的操作系统版本有了很好的支持,对于编程人员来说只需建立静态常量类,将所有要用到的命令写进常量类中,远程连接到服务器,执行命令。该实现方式代码编写简便、无需加载任何配置文件就能够完成对服务器的运行指标进行采集,以及修改操作系统的参数;
5.但是如今网管服务为了适应运营商云平台化新要求采用微服务架构开发,部署方式由单点集中部署转变为多点分布式部署(如图1所示),一个微服务集群中可能存在多台服务器,这些服务器安装的操作系统和版本可能不同,使采集数据和参数修改的shell命令或多或少存在差异,但是上述实现方式只是在单点集中部署的固定的操作系统版本比较有优势,但是该方式缺乏“通用性”特点,导致静态常量类的监控方式不再适用于分布式部署模式。
6.在分布式部署模式中,每次操作系统更换或版本升级后,如从centos6.9升级到centos7,一些shell命令会发生变化;从而就会到导致要进行代码的修改、打包、测试、出新版本,增加了维护成本,如果集群部署中出现两个或者两个以上的操作系统或者操作系统版本上述方法将不能实现shell命令的执行。


技术实现要素:

7.本技术提供一种兼容多操作系统的系统监控方法及装置,用以解决现有技术中静态常量类的监控方式不适用于分布式部署模式的业务服务器监控的技术问题。
8.第一方面,请提供一种兼容多操作系统的系统监控方法,该方法应用于包括至少两台服务器的微服务集群中,所述方法包括:
9.根据接收到的选择信息从模板库中确定待监控系统的父模板;其中,所述父模板包括监控第一系统的第一命令集合;
10.根据接收到的调整信息对所述第一命令集合中的至少一个命令进行调整得到第
二命令集合;其中,所述第二命令集合包括对所述待监控系统进行监控的命令。
11.本技术实施例中采用“模板”在不修改代码的情况下,快速匹配不同操作系统和版本,实现同时对多个不同的操作系统和版本进行指标监控或者参数修改。所以本技术实施例提供的方法能识别服务器的版本,然后通过版本调取模板,获取对应的执行命令具有智能化的优点;相比较以往的监控方式更换系统版本时,必须对代码进行修改,而现在只需要添加模板即可,节省了维护成本。
12.一种可选的实施方式,根据接收到的调整信息对所述第一命令集合中的至少一个命令进行调整得到第二命令集合之前,还包括:
13.基于所述第一命令集合输出操作界面,通过所述操作界面接收所述调整信息。
14.一种可选的实施方式,所述至少一个命令为所述第一系统与所述待监控系统之间不相同的命令。
15.一种可选的实施方式,所述根据接收到的调整信息对所述第一命令集合中的至少一个命令进行调整得到第二命令集合之后,还包括:
16.将所述第二命令集合中的所有命令转化为javabean对象;
17.将所述javabean对象拼接成xml标签形式的字符串,生成用于监控所述待监控系统的xml文件。
18.一种可选的实施方式,所述调整信息还包括所述至少一个命令对应的正则表达式;所述正则表达式用于判断所述至少一个命令调整之后运行的结果是否正确。
19.该实例中,在模板中引入正则匹配规则,解决不同操作系统或版本执行命令后返回结果存在差异的问题。
20.第二方面,提供一种兼容多操作系统的系统监控装置,该装置应用于包括至少两台服务器的微服务集群中,所述装置包括:
21.确定模块,用于根据接收到的选择信息从模板库中确定待监控系统的父模板;其中,所述父模板包括监控第一系统的第一命令集合;
22.生成模块,用于根据接收到的调整信息对所述第一命令集合中的至少一个命令进行调整得到第二命令集合;其中,所述第二命令集合包括对所述待监控系统进行监控的命令。
23.一种可选的实施方式,该装置还包括:
24.交互模块,用于基于所述第一命令集合输出操作界面,通过所述操作界面接收所述调整信息。
25.一种可选的实施方式,该装置还包括:
26.文件模块,用于将所述第二命令集合中的所有命令转化为javabean对象;并将所述javabean对象拼接成xml标签形式的字符串,生成用于监控所述待监控系统的xml文件。
27.第三方面,提供一种服务器,所述服务器包括至少一个处理器以及与所述至少一个处理器连接的存储器,所述至少一个处理器用于执行所述存储器中存储的计算机程序时实现第一方面以及第一方面任一可选实施方式所述的方法步骤。
28.第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面以及第一方面任一可选实施方式所述的方法步骤。
29.本技术有益效果如下:
30.本技术实施例中采用“模板”在不修改代码的情况下,快速匹配不同操作系统和版本,实现同时对多个不同的操作系统和版本进行指标监控或者参数修改。所以本技术实施例提供的方法能识别服务器的版本,然后通过版本调取模板,获取对应的执行命令具有智能化的优点;相比较以往的监控方式更换系统版本时,必须对代码进行修改,而现在只需要添加模板即可,节省了维护成本。
附图说明
31.图1为本技术实施例所提供方法可适用的网管服务器构架的示意图;
32.图2为本技术实施例提供一种兼容多操作系统的系统监控方法的流程示意图;
33.图3为本技术实施例提供的图形交互界面的示意图;
34.图4为本技术实施例提供的一种兼容多操作系统的系统监控装置的结构示意图;
35.图5为本技术实施例提供的一种兼容多操作系统的系统监控服务器的结构示意图。
具体实施方式
36.本技术实施例所提供的方法可以适用于图1所示的网管服务器构架,该网管服务构架为了适应运营商云平台化新要求采用微服务架构开发,部署方式由单点集中部署转变为多点分布式部署。分布式部署的网管服务器构架包括:客户端、web服务器、多个业务服务器、系统监控服务器和db(database,数据库)服务器,其中即构架中可以所包括的多个业务服务器实现微服务的分布式部署,客户端可以通过web服务器,以及多个业务服务器中的一个获取到db服务器中的数据。为了保证微服务健康稳定运行,网管要求对每台服务器的各项运行指标进行实时监控和修改操作系统的一些参数;图1中,系统监控服务器通过设置的监控程序获取各业务服务器的数据以及对各业务服务器中系统的参数进行修改;现有技术中如果业务服务器还有一个,系统监控服务器则可以针对该业务服务器操作系统版本写一套采集数据和参数修改的shell命令,对单个业务服务器进行指标数据的采集和参数的修改。但是基于图1所示的现有微服务集群中存在多台业务服务器的情况,多台业务服务器安装的操作系统和版本可能不同,使采集数据和参数修改的shell命令或多或少存在差异,导致现有技术提供的监控方式不再适用于分布式部署模式。
37.例如系统从centos6.9升级到centos7,则监控系统centos6.9的一部分shell命令常量类可以是:
38.public class linuxcmd{/查看系统版本信息/
39.public static final string system_release="cat/etc/system-release";/查看ftp状态/
40.public static final string ftp_status="service vsftpd status";/启动ftp/
41.public static final string ftp_start="service vsftpd start";/停止ftp/
42.public static final string ftp_stop="service vsftpd stop";/查看ftp用户/
43.如果升级到centos7,则与上述centos6.9对应的centos7常量类部分需要修改为:
44.public class linuxcmd{/看系统版本信息/
45.public static final string system_release="cat/etc/system-release";/查看ftp状态/
46.public static final string ftp_status="systemctl status vsftpd";/启动ftp/
47.public static final string ftp_start="systemctl start vsftpd";/停止ftp/
48.public static final string ftp_stop="systemctl stop vsftpd";/查看ftp用户/
49.根据上述系统升级可以得出结论,虽然上述实例所提到的系统升级只有个别的命令发生了变化,仍然要进行代码的修改、打包、测试、出新版本,可见该方法增加了维护成本,如果集群部署中出现两个或者两个以上的操作系统或者操作系统版本时现有技术的监控方法将不能实现监控。
50.基于上述现有技术的问题,本技术实施例提供一种,该方法的整体思想是:
51.根据接收到的选择信息从模板库中确定待监控系统的父模板;其中,所述父模板包括监控第一系统的第一命令集合;
52.根据接收到的调整信息对所述第一命令集合中的至少一个命令进行调整得到第二命令集合;其中,所述第二命令集合包括对所述待监控系统进行监控的命令。
53.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
54.本技术的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
55.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
56.基于上述现有技术问题,本技术实施例考虑到操作系统命令的灵活配置性和对不同操作系统和版本的兼容性,提供一种基于模板的系统监控方案,以下结合附图和具体的应用场景对本技术实施例所提供的方法和装置做进一步详细的说明:
57.如图2所示,本技术实施例提供一种兼容多操作系统的系统监控方法,该方法应用于包括至少两台服务器的微服务集群中,所述方法包括:
58.基于多台业务服务器安装的操作系统和版本可能不同,使采集数据和参数修改的shell命令或多或少存在差异,虽然存在差异但是相互之间存在很多的共同性,所以本技术方案中基于该特点,对某一个新系统(即之前没有对应的监控程序的系统)进行监控之前,选择一个与该新系统最接近的模板系统(该模板系统有对应的监控程序,且与新系统之间
的差异在设定的范围内),然后在该模板系统的基础上对监控程序进行对应的调整和修改,从而生成能够监控新系统的程序;所以该实施例方法,首先需要确定待监控系统的父模板(即生成对新系统进行监控的程序的基础系统),具体实现可以是:
59.步骤201,根据接收到的选择信息从模板库中确定待监控系统的父模板;其中,所述父模板包括监控第一系统的第一命令集合;
60.在本技术实施例中为了提高用户调整命令的效率以及降低修改命令的难度,还可以提供便于用户操作的图形交互界面,通过该图像交互界面显示第一命令集合中的所有命令,使得用户可以通过具有相关使用说明的图形操作界面确定具体修改方式,以及通过图形交互界面输入需要对系统监控命令进行修改的选择信息。则该方法可以是根据接收到的调整信息对所述第一命令集合中的至少一个命令进行调整得到第二命令集合之前,还包括:
61.基于所述第一命令集合输出操作界面,通过所述操作界面接收所述调整信息。
62.例如,系统默认提供了一个centos6.0.xml的基础命令模板,基础模板是以centos6.0命令为标准命令(6.0是当前比较稳定并且使用较广泛的centso版本),centos6.0所包括的部分命令(如图3所示的:查看ftp状态、开启ftp服务
……
内存使用率等)。
63.选择合适的父模板以及接收到对应的选择信息后,则可以通过后台操作得到可以监控新系统的监控程序,具体可以是:
64.步骤202,根据接收到的调整信息对所述第一命令集合中的至少一个命令进行调整得到第二命令集合;其中,所述第二命令集合包括对所述待监控系统进行监控的命令。
65.基于系统与系统之间的差异,该实施例中在选择合适的父模板系统之后,则确定父模板系统与待监控系统之间的差异,该差异则是监控命令的不相同,包括命令的格式以及参数等等。所以该实例中所述至少一个命令为所述第一系统与所述待监控系统之间不相同的命令。
66.参照图3所示的界面,当需要对centos6.0中的命令进行修改调整时候,则可以在图3所示的界面中输入调整信息进行命令的修改调整。例如,调整“查看ftp状态”,则可以选中图3所示交互界面中“查看ftp状态”所对应的命令行,然后基于待监控系统所需要的命令格式或者是参数,输入调整信息;参照前述实例中从centos6.9调整到centos7,则可以将“查看ftp状态”的shell命令从“service vsftpd stop”修改为“systemctl stop vsftpd”;
67.进一步,如果还需要对命令的运行结果进行判断,还可以在“正则匹配”列,输入对应的正则规则。则该方法还可以包括:
68.所述调整信息还包括所述至少一个命令对应的正则表达式;所述正则表达式用于判断所述至少一个命令调整之后运行的结果是否正确。
69.基于上述方式确定父模板以及待监控系统与模板之前的差异,而且确定了对待监控系统进行监控需要对父模板进行调整的内容,则对应的通过各种方式可以生成能够对待监控系统进行监控的程序,本技术实施例中为了灵活的得到新的监控程序,可以基于第二命令集合生成一个xml文件;xml文件是java中常用存储信息的文件类型,优点是使用灵活,内容容易解析。具体实现可以是所述根据接收到的调整信息对所述第一命令集合中的至少一个命令进行调整得到第二命令集合之后,还包括:
70.将所述第二命令集合中的所有命令转化为javabean对象;
71.将所述javabean对象拼接成xml标签形式的字符串,生成用于监控所述待监控系统的xml文件。
72.为了能够兼容不同的操作系统和版本,本技术实例引入了模板机制为每个监控的操作系统版本建立一个模板,该模板可以以xml文件格式存储;该xml文件可以包括:
73.list标签,该list标签中包含了所有的group标签。
74.每个group标签表示采集一个服务器运行指标或者服务器参数修改的一组标签,group标签子的标签包括:
75.id标签表示group标签组的唯一标示。
76.shell标签表示服务器运行指标采集或者修改服务器参数的shell命令。例如,需要检测“ftp服务状态”,则对一个的shell标签为<shell>service vsftpd status</shell>;
77.regular标签表示命令执行返回结果的正则匹配,配合shell命令使用得到最终结果;如果该标签若为空,表示不需要进行正则匹配。
78.name标签是对shell基本功能的描述。
79.监控系统在启动时加载.xml文件,将每组group标签映射为一个javabean对象存储在集合中,使用时可以通过唯一标示id索引到相应的javabean对象。
80.例如,某一个待监控的系统需要使用到的监控命令包括:ftp服务状态、启动ftp服务、关闭ftp服务、登录ftp用户、登录ftp用户数量、防火墙状态、关闭防火墙、启动防火墙、剩余内存这些shell命令,则对应的.xml文件可以是以下内容:
81.82.[0083][0084]
在该实例中,将系统监控要用到的所有的命令以上述标签的形式写入xml文件中。操作人员可以通过如图3所示的操作界面,根据具体的需要以基础模板或者其它现有模板为父模板,创建一个新的以操作系统及版本组合为命名的子模板,子模板完全继承了父模板内容,创建完成后,修改子模板与父模板有差异的命令和正则,以适用于新的待监控系统,完成后提交修改,便生成一个新的.xml文件,无需修改代码,也不用出版本。
[0085]
为了保证监控服务器能够获取到对应的模板文件,本技术实施例中针对每个业务服务器生成对应的.xml文件后,可以在被监控的服务器/etc/目录下创建system_version文件,在文件中写入和模板名称(操作系统及版本的组合)相同的内容方便统一确认服务器上安装的操作系统和版本,比如centsos6.0、solaris10等。
[0086]
在本技术实例中,如果系统监控服务器要对任一业务服务器进行监控时,加载已有模板到缓存中(即将已经生成的xml文件获取并加载到缓存中),远程连接服务器执行命令时,首先执行获取待检测系统的操作系统版本的通用命令cat/etc/system_version,将服务器ip与获取的操系统版本以key:value的形式存入缓存中,然后根据操作系统和版本选择对应的模板(参照图3所示的使用实现)。
[0087]
基于上述每个系统所对应的xml文件格式,在图3所示的界面确定要调整的第一shell命令之后,则可以对应的确定第一shell命令的id标签,然后通过唯一标示id标签获取要执行的命令,远程登录执行后用对应的正则进行匹配获取最终结果,实现对待监控系统的监控。
[0088]
本技术实施例中采用“模板”在不修改代码的情况下,快速匹配不同操作系统和版本,实现同时对多个不同的操作系统和版本进行指标监控或者参数修改。所以本技术实施例提供的方法能识别服务器的版本,然后通过版本调取模板,获取对应的执行命令具有智能化的优点;相比较以往的监控方式更换系统版本时,必须对代码进行修改,而现在只需要添加模板即可,节省了维护成本。
[0089]
另外,还可以在模板中引入正则匹配规则,解决不同操作系统或版本执行命令后返回结果存在差异的问题。
[0090]
实现了模板继承模式,使操作者最小化修改新建的子模板,快速匹配新的操作系统。对集群部署中出现两个或者两个以上的操作系统或版本同时进行监控的功能。
[0091]
如图4所示,基于上述方法的统一构思该实施例还提供一种兼容多操作系统的系
统监控装置,该装置应用于包括至少两台服务器的微服务集群中,所述装置包括:
[0092]
确定模块401,用于根据接收到的选择信息从模板库中确定待监控系统的父模板;其中,所述父模板包括监控第一系统的第一命令集合;
[0093]
生成模块402,用于根据接收到的调整信息对所述第一命令集合中的至少一个命令进行调整得到第二命令集合;其中,所述第二命令集合包括对所述待监控系统进行监控的命令。
[0094]
其中,所述至少一个命令为所述第一系统与所述待监控系统之间不相同的命令。
[0095]
在本技术实施例中为了提高用户调整命令的效率以及降低修改命令的难度,还可以提供便于用户操作的图形交互界面,则该装置还包括:
[0096]
交互模块,用于基于所述第一命令集合输出操作界面,通过所述操作界面接收所述调整信息。
[0097]
进一步,如果还需要对命令的运行结果进行判断,还可以在“正则匹配”列,输入对应的正则规则。则所述调整信息还包括所述至少一个命令对应的正则表达式;所述正则表达式用于判断所述至少一个命令调整之后运行的结果是否正确。
[0098]
本技术实施例中为了灵活的得到新的监控程序,可以基于第二命令集合生成一个xml文件,则该装置还可以包括:
[0099]
文件模块,用于将所述第二命令集合中的所有命令转化为javabean对象;并将所述javabean对象拼接成xml标签形式的字符串,生成用于监控所述待监控系统的xml文件。
[0100]
基于同一发明构思,本技术实施例提供一种兼容多操作系统的系统监控服务器,请参见图5所述,该服务器包括至少一个处理器502,以及与至少一个处理器连接的存储器501,本技术实施例中不限定处理器502与存储器501之间的具体连接介质,图5是以处理器502和存储器501之间通过总线500连接为例,总线500在图5中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不以此为限。总线500可以分为地址总线、数据总线、控制总线等,为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0101]
在本技术实施例中,存储器501存储有可被至少一个处理器502执行的指令,至少一个处理器502通过调用存储器501存储的指令,可以执行前述的控制网络数据转发平面的方法中所包括的步骤。其中,处理器502是服务器的控制中心,可以利用各种接口和线路连接整个服务器的各个部分,通过执行存储在存储器501内的指令,从而实现服务器的各种功能。可选的,处理器502可包括一个或多个处理单元,处理器502可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器502中。在一些实施例中,处理器502和存储器501可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
[0102]
存储器501作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器501可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(random access memory,ram)、静态随机访问存储器(static random access memory,sram)、可编程只读存储器(programmable read only memory,prom)、只读存储器(read only memory,rom)、带
电可擦除可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁性存储器、磁盘、光盘等等。存储器501是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本技术实施例中的存储器501还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
[0103]
处理器502可以是通用处理器,例如中央处理器(cpu)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本技术实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的控制网络数据转发平面的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0104]
通过对处理器502进行设计编程,可以将前述实施例中介绍的控制网络数据转发平面的方法所对应的代码固化到芯片内,从而使芯片在运行时能够执行前述的控制网络数据转发平面的方法的步骤,如何对处理器502进行设计编程为本领域技术人员所公知的技术,这里不再赘述。
[0105]
基于同一发明构思,本技术实施例还提供一种存储介质,该存储介质存储有计算机指令,当该计算机指令在计算机上运行时,使得计算机执行如前述的兼容多操作系统的系统监控方法的步骤。
[0106]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0107]
本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0108]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0109]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0110]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围
之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1