APP下载

基于SNMP的应用进程监控系统研究与实现

2016-12-13杨芳南

北京交通大学学报 2016年5期
关键词:配置文件插件进程

杨芳南,刘 春

(北京交通大学 计算机与信息技术学院,北京 100044)



基于SNMP的应用进程监控系统研究与实现

杨芳南,刘 春

(北京交通大学 计算机与信息技术学院,北京 100044)

应用进程的运行状态直接反映系统基础设施的工作情况.引入关键应用进程监控,可以为系统的高效和可靠运行提供保障,从而实现生产自动化、信息化和智能化.本文面向应用进程,设计实现了一个应用进程监控系统.该系统基于简单网络管理协议(SNMP),实现了应用程序运行状态数据采集、故障告警和自愈等一系列业务管理功能,解决了生产过程中信息无法采集、生产过程监控乏力和生产计划可执行度低的问题.该系统已经应用在自动化装配生产线制造执行系统中,提高了现场数据采集效率,生产过程的自动化程度及信息化管理水平.

简单网络管理协议;应用进程;监控

在信息化时代的今天,现代网络已经应用到各个行业系统.目前我国制造企业大都引进了先进的产品开发软件系统和自动化制造装备等信息管理系统,并通过引进和实践先进制造理念(如精益生产和敏捷制造等)以提高企业的整体运行效率和效益.为构建面向行业的新一代认知型制造执行系统,为复杂生产过程管控能力提供基础,是现代计算机网络管理的发展趋势之一.生产系统中的基础设施是否正常及健康运行,关系到系统的可靠运行、效率及生产质量.然而,由于生产过程的实时监控管理匮乏,直接制约生产效率,进而影响制造企业的发展速度.

本文在高铁机车关键零部件柔性自动化管理装配生产线与制造执行系统下实现.由于在实际生产过程中,缺乏对生产线设备等基础设施的工作状态和性能的实时监控,而导致对自愈技术的支持较为薄弱.为了解决该问题,提高零部件制造过程的质量和效率,本文作者研究开发了应用进程监控系统.

1 应用进程监管系统结构

应用进程监控系统构建在各应用之上,需要与各被管设备按照一定的规范和接口进行数据采集和告警等管理,该系统采用层次化的设计思想,减少模块之间的耦合度.详细如图1所示.

整个监控管理平台分为5层:展示层、中间层、核心层、扩展层和被管设备层构成.其中被管设备层指被监控实体,主要包括被监控进程、服务等;扩展层是用来获取监控数据、事件告警通知设置和事件处理设置;核心层是本平台的核心部分,负责从管理插件采集数据,数据的传输及告警事件;中间层是指系统日志文件、系统配置文件和数据库;展示层是用来将监控数据可视化的展示给用户,以浏览器访问的方式,报表、二维和三维的展示形式,给用户以直观的展示.

2 应用监控采用的关键技术

2.1 监测代理研究

针对业务系统,通过在业务系统主机之上驻留简单网络管理协议(SNMP)代理,获取业务系统的监控数据.SNMP[1-2]由一组网络标准组成,是对互联网中的通信通道的操作[3].SNMP同定义的信息管理库(Management Information Base,MIB)共同提供一种便捷和有效的计算机网络监控管理方法[4].管理信息库将资源以对象的形式表现出来,实现了被管虚拟资源、软件及物理设备在逻辑概念上的管理和存储[5].在管理信息库中,被管对象被定义为一种管理信息,因为网络管理的目的是对资源进行的一种抽象[6]. SNMP体系结构为管理、代理框架.管理端与代理端采用用户数据报协议(User Datagram Protocol, UDP)通信,通过对UDP、trap数据包封装和解析,按照系统对象模型库更新状态.

管理端通过SNMP协议与代理通信,以定期轮循环的方式采集监控设备代理的运行状态,接收从代理发出的Trap报文,获取设备MIB库中的信息,对设备资源完成监视和控制.代理端构建被管对象信息模型,采用管理信息树对被管设备标识.其中代理端应用程序采用SNMP4J开发,其实现流程如图2所示.

在代理端首先将被管应用进程或服务写入配置文件,应用程序通过读取配置文件,解析被管对象,采集其运行状态.如果状态异常,向管理端发送trap消息,将异常信息写入日志文件,并根据配置文件对故障进程进行相应的处理.

2.2 自定义MIB

本系统采用实现了SNMP的开源软件Net-SNMP,其包含的MIB仅限于RFC或其他规范统一的MIB,另外一些特殊企业的MIB也纳入了事实上的规范,如Cisco、 Microsoft等,但对一些小型企业或者个人想要通过SNMP来实现远程监控,需要扩展MIB库.编写规范统一的定义的MIB,其扩展由以下步骤.

1)编写私有的MIB文件,并将其加入Net-SNMP的src目录.以扩展Process运行状态为例,选用enterprises子树下的一个分支1.3.6.1.4.1.260.1.1,如图3所示.

在enterprises下定义了ROSS节点,oid为1.3.6.1.4.1.260,ROSS下又定义了NMRC等节点,按照逻辑关系,对多包含的应用进程及服务进行标识.例如,NMRC包含应用进程Process,oid为1.3.6.1.4.1.260.1.1.编写的MIB文件如下:

NMRC-MIB DEFINITIONS::= BEGIN

IMPORTS

enterprises, OBJECT-TYPE,Integer32

FROM SNMPv2-SMI

TEXTUAL-CONVENTION,

DisplayString

FROM SNMPv2-TC;

NMRC OBJEC IDENTIFIER::={enterprises 260}

APPLICATION OBJECT IDENTIFIER::=

{NMRC 1}

Process OBJECT IDENTIFIER::={APPLICA-

TION 1}

ProcessStatus OBJECT-TYPE

SYNTAX INTEGER{

running(0);

failure(2);

}

MAX-ACCESS read-only

STATUS current

DESCRIPTION

"The status of Process"

::={Process1}

END

其中:NMRC-MIB是自定义的MIB Module 的名称;NMRC为自定义的MIB 树的中间节点;Process为自定义的MIB 树的叶子节点[7].可以使用snmptranslate -IR -Tp NMRC命令校验MIB文件,如下:

#snmptranslate -IR -Tp NMRC

+--NMRC(260)

|

+--APPLICATION(1)

|

+--Process(1)

|

+-- -R-- EnumVal

ProcessStatus(1)

Values: running(0),

failure(2)

2)通过configure的option指示make编译该mib,如:

/configure-with-mib-modules="NMRC"

3)make

4)make install

至此,自定义MIB生效.SNMP协议通过查询代理MIB中相应对象的值,实现对应用进程状态的监视.通过对监控指标、具体服务进程启动与关闭所执行的命令进行数据采集.对来自管理端的报文解包和分析,对具体的被管对象和运行状态与物理对象映射.当发生故障(如关键进程中断)时负责向管理工作站发送Trap报告,实时报警.

2.3 进程协同操作建模

由于系统中应用进程之间存在复杂的关系,当一个应用进程出现故障时,与其相关联的进程可能会受到影响,为了将实际的业务逻辑抽离出来,需对进程间协同操作关系进行建模.

采用Hibernate[8]对象关系映射框架实现进程协同[9]操作建模.Hibernate是一个轻量级容器,使用数据库、映射文件和配置文件为应用程序提供服务.其内部封装了JDBC访问数据库的操作,向应用程序提供了面向对象的数据访问接口.映射文件定义了视图或数据库表与持久化类的映射关系.配置文件包含数据库的连接及基本映射信息,即系统中每一个类与其对应的数据库表之间的关联信息.建模体系结构如图4所示.

1)将进程及进程间关联关系映射到数据库对象表和关系表.对象表存放被监控应用,有其文字描述、图片和位置信息.关系表存放有关联关系的应用进程、进程间连线颜色及关系描述.其次,创建Hibernate配置文件和映射文件.Hibernate容器读入配置文件,得到数据库配置信息,进行连接,根据映射文件得到数据库对象与业务对象之间的映射关系.

2)由持久化操作接口对数据库进行持久化操作.同时,Hibernate通过反射机制把对象的增加、删除、修改、查找操作转换成相应的SQL语句,实现对象的持久化管理.当读取数据时,Hibernate根据映射文件中数据库字段和属性的映射关系,将字段的内容填充到对象的属性中,生成业务对象,从而实现对象关系的映射.部分应用进程之间协同关系如图5所示.

图5中,进程1,2,…,9分别代表9个应用进程,之间连线表示两进程之间的依赖关系,箭头指向依赖的对象,当某一进程与多个进程有依赖关系时,关联关系1,关联关系2分别表示该进程依赖其他进程的先后顺序.

3 应用进程监控系统的实现

3.1 环境搭建及配置管理

本文应用进程监控系统运行环境为CentOS 6.0,代理开发环境为Eclipse Mars 4.5.0,数据库为Mysql 5.0.将被管设备、被管服务、关键进程及进程监控管理插件配置到管理平台上.

3.2 应用进程监测

对应用进程的监测包括两部分:应用进程监控代理和进程监控管理插件.应用进程监控代理驻留在被监测等应用服务器上;进程管理插件位于应用进程监控管理平台.

1)进程管理插件,是由告警消息监听、解析及控制命令转发3部分组成.应用进程监控管理平台可以通过进程管理插件下发控制命令,采集应用软件的运行状态,对告警消息进行解析,并发送给监控管理平台,进行可视化显示.此外,监控管理平台也可以随时下发控制命令对应用软件进行重启或者关闭等操作.

2)应用进程监控代理,是可以对服务器上运行的应用进程进行实时监控,当应用进程被关闭或者被错误挂起时,可向进程监控管理插件发送告警消息.同时,根据配置要求,通过设定好的重启命令进行自动重启,缩短处理时间,实现进程的自愈.

3.3 可视化展示

应用进程监控系统采用B/S架构,将被管对象的状态实时展示,可以查看当前的状态、最近检查时间和持续时间等信息,以被管的一台机器网管中心_73及其应用Wps.exe为例,其运行正常、异常关闭及未知状态如图6所示.

应用进程Wps.exe运行正常时、异常关闭时分别显示为绿色的正常状态、红色的严重告警;当代理关闭时,未能采集应用进程的运行情况,显示为未知状态.

应用进程监控系统采用B/S架构,将被管对象的状态实时展示,该系统可以查看所有主机运行的应用进程、应用进程的状态、最近检查时间、持续时间、尝试次数、状态详情等信息.其中,应用进程状态以其运行正常和异常,分别显示为正常和严重;当代理未启动或管理端服务未开启,监测不到应用进程运行状态时,状态信息为未知.以被监控的一台主机网管中心_73及其应用进程Wps.exe为例,其正常、异常和未知3种情况的监控信息展示如图6所示.

3.4 方案优势

对新添加的应用和服务只需简单修改配置文件即可,方便简洁;监控信息通过插件获取,可根据具体需求定制插件,扩展性强;可监控大数据平台,也可部署于大数据平台;支持多语言;提供清晰地报表、二维和三维的显示,三维生成的立体空间,可方便地表明设备的位置及出错信息.

4 结语

本文作者设计了应用进程监控系统可实现对生产系统中服务及应用进程等工作状态和性能的监控,根据需求,对监控信息进行Web、报表、二维和三维的可视化展示,添加事件告警处理,实现了系统故障自愈,保障了系统的安全、可靠和高效运行.

本文的主要工作有:实现了可扩展的分层应用监控架构;根据特定需求,自定义MIB库;提出了进程协同操作建模.下一步工作为:对监控数据进行分析,实现故障预测与健康评估.

[1] ARAL A, AL ROUSAN M. NET based home automation system[J].IEEE Transaction on Consumer Electronics, 2004,50(2) :498-504.

[2] 郭军.网络管理[M].北京:北京邮电大学出版社,2008:104. GUO Jun. Network management[M].Beijing: Beijing University of Posts and Telecommunications Press,2008:104.(in Chinese)

[3] 孟洛明.现代网络管理技术[M].北京:北京邮电大学出版社, 2005:44-79. MENG Luoming.Modern network management technology[M].Beijing:Beijing University of Posts and Telecommunications Press,2005:44-79.(in Chinese)

[4] YE Jun. RMON technique and its application[J]. Journal of Nanchang College of Water Conservancy and Hydroelectric Power, 2004(3):17-18.

[5] MCCLOGHRIE K, ROSE M.Management information base for network management of TCP/IP-based internets:MIB-II [J].Lawrence Berkeley National Laboratory,1991(1):13.

[6] PRESNHN R. Management information base (MIB) for the simple network management protocol (SNMP) [J].Anvari Net, 2002,23(1):4-6.

[7] 孙晓艳. SNMP 扩展代理的设计与实现[J]. 现代电子技术, 2011,34(22):116-119. SUN Xiaoyan. Design and implementation of SNMP agent’s expanding[J].Modern Electronic Technology, 2011,34(22):116-119.(in Chinese)

[8] Hibernate[EB/OL].[2016-09-21].https://www.hibernate.org.

[9] 李文璟,王智立.网络管理原理及技术[M].北京:人民邮电出版社,2008:100. LI Wenjing, WANG Zhili. Principles and techniques of network mangement[M].Beijing: Posts & Telecom Press,2008:100.(in Chinese)

Research and implementation of application process monitoring based on SNMP

YANGFangnan,LIUChun

(School of Computer and Information Technology, Beijing Jiaotong University, Beijing 100044,China)

The working state of the application process directly reflects the operation of the infrastructure. The introduction of the application of critical process monitoring is to ensure the healthy operation of the system's infrastructure, to provide protection for the efficient and reliable operation of the system, so as to realize the production automation, information and intelligence. In this paper, a real-time monitoring and management system is designed and implemented. The system is based on Simple Network Management Protocol(SNMP), which implements a series of business management functions, such as operation status data acquisition, fault alarm, self-healing etc, solving the problem that the information can not be collected, the weakness of process monitoring and the low executable of production plan. The system has been applied in the flexible automated assembly line and manufacturing execution system, improving the efficiency of field data collection, the automation of the production process and the level of information management.

simple network management protocol; application process; monitoring

2016-03-03

国家科技支撑项目资助(2015BAF08B02)

杨芳南(1963—),女,湖南浏阳人,高级工程师.研究方向为铁路信息技术.email:fnyang@bjtu.edu.cn.

TP393

B

1673-0291(2016)05-0035-05

10.11860/j.issn.1673-0291.2016.05.006

猜你喜欢

配置文件插件进程
基于Docker的实时数据处理系统配置文件管理软件的设计与实现
基于CTK插件框架的太赫兹人体安检系统软件设计
从Windows 10中删除所有网络配置文件
用软件处理Windows沙盒配置文件
自编插件完善App Inventor与乐高机器人通信
互不干涉混用Chromium Edge
债券市场对外开放的进程与展望
基于OSGi的军用指挥软件插件机制研究
快速杀掉顽固进程
基于jQUerY的自定义插件开发