服务器监控技术在油田企业的应用
2014-03-21大庆油田采油六厂大庆油田设计院
大庆油田采油六厂大庆油田设计院
服务器监控技术在油田企业的应用
高云鹤1黄海英21大庆油田采油六厂2大庆油田设计院
随着油田企业信息化建设的深入,上线运行的应用系统逐年增多,且系统多为网络版,服务器主机最常用的操作系统包括Linux和W indows的各个版本。使用自主开发的监测插件监测了10台主机的CPU、内存、磁盘空间使用率、当前进程数、关键进程、服务状态、当前用户数(会话数)、系统已启动时间、网卡状态、TCP/UDP端口状态等性能指标。经过一个监测周期的统计,得出监测插件的平均内存占用率为42.7MB,平均CPU使用率为0.6%,可见监测插件有良好的性能。
Nagios;服务器监控;监测插件;信息格式;流程
1 监测插件的开发
随着油田企业信息化建设的深入,上线运行的应用系统逐年增多,且系统多为网络版,所以系统的平稳运行极大程度依赖于服务器的性能。基于运维工作经验,在开源软件的基础上,有针对性地开发了一系列监测插件,实时采集应用服务器运行数据,不但实现了应用系统的数据监控,保证了应用系统的平稳运行,而且实现了资源的科学、合理调度,为企业节约了大量资金。
2 服务器监控的设计与实现
2.1 监测软件选择
现有监测软件中,由于商业软件成本高、二次开发难度高、使用复杂等原因,所以开源软件的使用率更高。开源软件中,功能全面且最流行的监测软件有Nagios、Zabbix和Zenoss等,其中Nagios成熟度高,稳定性好,达到了工业级监测的标准,很多开源软件都有与Nagios兼容的插件接口。但Nagios默认附带的监测插件功能不多,还需要根据特定被监测资源客户化开发监测插件。
2.2 系统监测结构
服务器主机最常用的操作系统包括Linux和 Windows的各个版本,需要对其监测的关键性能指标包括CPU、内存、磁盘空间使用率,当前进程数,关键进程、服务状态,当前用户数(会话数),系统已启动时间,网卡状态,TCP/UDP端口状态等。
系统监测方法包括两种:①代理监测,在被监测机安装监测代理,监测插件在被监测机上执行;②非代理监测,在监测主机上直接执行监测插件,监测本机或远程主机。监测结构如图1所示。
图1 监测结构
2.3 数据采集设计
监测插件的数据采集方式根据监测对象的不同,分为本机采集和远程采集两种。本机采集方式是指监测插件采集到所在主机的数据后,通过监测代理把结果输出返回给监测引擎。远程采集方式是指监测插件在监测主机上,可通过某种方式连接远程被监测机直接采集数据,然后返回给监测引擎。
2.4监测状态表示
监测状态是监测插件最重要的结果信息,是告警和自动处理分析判断的依据,需要用简练的方式表示状态,以便于监测引擎据此做出进一步的告警或其他处理操作。
监测状态有两种处理分析方式:监测插件处理方式和监控引擎处理方式。两者相比,监测插件处理方式不需要传输全部原始监测数据,可以减小传输消耗(包括监测主机内存资源和远程被监测主机的网络资源),但需要监测插件所在主机更多的CPU资源,不能保存监测原始数据。实际中有用的监测信息都需要做一定的处理,所以在本文中采用了监测插件处理方式。由于采用监测插件处理方式获得监测状态,所以各种状态需要有规范的表示。为了便于代码实现,使用宏定义或变量的方式,把状态表示为状态名和状态值,前者便于在代码中的书写,后者作为监测插件的返回值。具体如表1所示。
表1 主机/监测项状态
2.5监测信息格式
状态值是监测插件的返回值。除此之外,监测插件还需要生成详细的文字信息,包括状态信息和性能信息,所以需要使用其他方式传输给监测引擎。本文把状态信息和性能信息设计为输出到标准输出接口,监测引擎或监测代理会在接收监测插件状态返回值的同时,读取标准输出获得这些文字信息。为了区分状态信息和性能信息,需要规定这些文字信息的格式。格式如下:
状态信息和性能信息之间用“|”来分隔,方括号里的内容为可选内容,因为不是所有的监测对象都需要性能信息。其中状态信息用普通语言描述,性能信息用如下格式表示:
用单引号括住指标名,等号后面接指标值。如果有警告阈值和严重阈值,则用分号分隔;如果有多个性能指标,则用空格分隔。
2.6监测插件执行流程
上面阐述了监测插件数据采集、状态表示和信息格式等各个组成部分的设计方法,各组成部分运行流程如图2所示。
图2 监测插件执行流程
(1)监测引擎(或监测代理)发出轮询监测命令后,监测插件开始执行。
(2)处理输入的监测命令,得到需要的参数值。
(3)获取原始监测数据,包括在插件内部直接读取本机性能参数指标文件,以及在插件外部执行本机系统命令或调用其他程序。
(4)处理原始监测数据,对原始监测数据进行字符串过滤、数学运算等处理。
(5)根据设置的阈值得出告警状态。
(6)根据告警状态,生成对应的状态、性能信息,输出到标准输出接口。
(7)返回状态值,以告警状态作为返回值。
(8)监测引擎(或监测代理)收集监测插件的返回值和状态、性能信息。
3 应用效果
使用自主开发的监测插件监测了10台主机的CPU、内存、磁盘空间使用率、当前进程数、关键进程、服务状态、当前用户数(会话数)、系统已启动时间、网卡状态、TCP/UDP端口状态等性能指标。经过一个监测周期的统计,得出监测插件的平均内存占用率为42.7 MB,平均CPU使用率为0.6%,可见监测插件有良好的性能。
(栏目主持 杨军)
10.3969/j.issn.1006-6896.2014.7.014