基于SNMP的网络与服务器状态监控系统的设计与实现
2016-02-23阮晓龙
阮晓龙
基于SNMP的网络与服务器状态监控系统的设计与实现
阮晓龙
针对局域网和广域网设备监控的广泛需求,研究网络与服务器状态监控系统的实现方法。采用SNMP和MIB,设计实现了一个能对网络与服务器进行全面监测并提供设备故障预警功能的系统软件。借助MySQL数据库和RRD数据库,方便对历史监控数据进行查询。实例表明,该软件能很好地完成网络与服务器状态监控任务,具有良好的推广应用价值。
简单网络管理协议;管理信息库;网络监控;网络测量;服务器性能
0 引言
服务器是当今网络系统中的核心部分,其可用性和性能是决定运行在服务器上的业务能否顺利运行的重要因素[1]。当网络中的服务器发生故障时,一般只有运维人员对服务器主机的硬件、网络等进行全方位检查后才能确定故障原因,进而完成故障排除。这种被动的运维方式通常会浪费很多时间,给用户带来较大损失。因此在必要时进行服务器故障预警,提醒用户关注设备异常,对减少服务器宕机时间,保证网络和设备管理合理化具有非常重要的意义。
目前现有的一些网络与服务器状态监控系统,如:Cacti、PRTG等均缺少设备故障预警功能;而一些基于云计算模式的监控系统,如:监控宝、360监控等虽有设备状态划分和故障预警功能,但由于其监控数据受网络抖动影响较大,数据可参考性不高且安全性也缺乏保障,不适合做局域网设备监控。本文正是针对局域网和广域网设备监控的广泛需求,设计实现了一个基于SNMP的网络与服务器状态监控系统,并投入实际场景应用。
1 SNMP协议简介
1.1 SNMP协议
SNMP[2-3]是一种应用层协议,使用TCP/IP协议族对互联网上的设备进行管理的框架,它提供一组基本的操作,用来监控和管理网络。SNMP采用轮询机制,提供最基本的功能,且只要求不可靠的传输层协议即用户数据报协议(UDP),受到许多产品的广泛支持[4]。现在全球网络设备厂家绝大多数都支持SNMP协议,SNMP已成为事实上的工业标准[5]。1.2 SNMP、MIB和SMI
SNMP协议族由3个基本部分组成:简单网络管理协议、管理信息库、管理信息结构。
(1)简单网络管理协议(SNMP)是为网络管理服务而定义的应用协议,1988年8月首次定义,有v1,v2,v33个版本,安全性依次提高[6]。
(2)管理信息库(Management Information Base,简称MIB)是一个标准文档,它描述了代理能够为管理工作站提供哪些信息。它定义了受管设备必须保存的数据项、允许对每个数据项进行的操作及其含义。
(3)管理信息结构(Structure of Management Information,简称SMI)提供了一种统一的格式,用来定义被管理对象,并规定了MIB中被管理对象如何标识;它限定了定义被管理对象时可以使用的ASN.1(Abstract Syntax No-tation One,抽象语法符号)数据类型。
2 系统总体设计
2.1 系统设计目标
系统的设计目标是:能实时地对网络中服务器、路由器、交换机、网络终端等多种设备的设备状态和性能状态进行监控,主要监控指标包括:CPU使用率、系统进程数、物理内存使用率、硬盘使用率、网络流量等;在必要时进行设备故障预警,提醒用户关注故障异常。
对系统目标有三个要求即有效性、广泛性、实时性。有效性指保证系统的应用规模,本次设计目标是监控服务器设备200台,网络通信设备100台,网络安全设备15台,网络管理设备15台,工作站200台。广泛性指系统能够监测安装不同操作系统的服务器与不同品牌、不同型号的网络设备。实时性指系统能够实时采集主机的状态参数,实时处理数据并展示给用户,方便用户进行设备管理。
2.2 结构设计
网络与服务器状态监控系统主要包括业务引擎、存储系统、管理系统、Web监控平台和数据接口五个部分。
(1)业务引擎,按照任务计划通过SNMP协议主动采集受监控设备数据并将数据存储在*.rrd文件中,生成监控点统计分析图。
(2)存储系统,由MySQL数据库、rrd数据文件组成,为管理系统提供支撑,提供接口需要的数据。
(3)管理系统,主要通过Web化的方式对监控设备进行管理,实现受监控设备添加、修改、删除、开启/关闭预警通知、开启/暂停监控设备操作;实现系统可监控设备类型管理、用户账号管理、邮件服务器设置、监控报告管理、数据备份与恢复、系统日志审计、系统升级。
(4)Web监控平台,主要通过图形化报表和数据报表两种形式展示受监控设备的状态信息。分类展示设备在最近30分钟、最近8小时、最近24小时、最近1周、最近1月、最近1年的运行情况,协助用户实时掌握设备的健康情况。
(5)数据接口,接收并处理Web监控平台的数据请求,通过处理生成的数据返回给Web监控平台。监控系统结构如图1所示:
图1 监控系统结构
2.3 逻辑体系设计
系统持续向受监控的设备发送SNMP请求,采集相关的设备状态和性能指标数据,通过特定的算法进行分析计算,然后将数据存入RRD中。当Web监控平台通过ajax请求接口数据时,数据接口程序将读取rrd文件中的数据,生成所需要的数据,返回给Web监控平台。Web监控平台按照一定的数学模型图形化呈现设备运行和性能状态。监控系统逻辑体系如图2所示:
图2 监控系统逻辑体系
3 系统实现
3.1 系统开发平台
现有的一些网络与服务器监控系统多需要部署在Windows Server等环境的主机上,而本文设计实现的监控系统则采用的是:使用Linux内核自主编译的操作系统,与应用程序无缝结合。保证监控系统在服务器上稳定运行,同时降低部署实施的技术难度。
3.2 系统功能内容及技术实现
基于SNMP的网络与服务器状态监控系统所需要的原始数据都是通过主机的MIB获取的。系统同时监控多台设备,数据采集功能要按照固定频率对每台设备的所有监控点进行数据采集,这对程序效率、资源调度和系统稳定性有很高的要求。通过多进程的方法,为每一台受监控设备的每个监控点单独创建进程;让多个进程并发执行,通过提高系统资源利用率实现高效稳定地数据采集。
数据采集部分关键代码如下:
设备故障预警功能是通过持续的监控数据与预警线阈值比较,发现网络和设备异常情况并发出预警。系统按照一定频率持续采集设备的状态数据,将该数据与设备在相应的预警线阈值比较,数据超越阈值限定的安全范围时就判定设备预警,然后系统会跟踪监测设备状态,最终确定设备预警,并按照系统设置发送预警邮件通知。故障预警设置流程如图3所示:
图3 故障预警设置流程
故障预警部分关键代码如下:
3.3 数据存储实现
系统的数据存储采用数据库存储与文件存储相结合的方式,形成了配置文件、rrd数据文件、rrd图片和数据库数据并存的局面。对于内容固定,且在系统运行中多次调用的信息,采用系统内置的方式存储在配置文件中。此类信息包括:数据库用户信息、shell命令、文件或程序路径、内置主题、设备状态表示等。系统持续对设备进行监控过程中产生的数据由RRDtool归档存储在rrd文件中。rrd文件中的数据可以用RRDtool的相关方法进行读取调用。
4 实例应用
这是系统的一个应用实例:在河南中医学院网络信息中心(教育科研网郑东新区节点单位)与河南中医学院信息技术学院教学实验中心(河南省高等学校实验教学示范中心)部署实施,监测网络信息中心与教学实验中心211.69.32.0/24、192.168.157.0/24等网段的网络与服务器设备。监控系统在网内运行状况良好,系统的应用提高了网络故障响应速度,提升了服务与教学质量。系统运行界面如图4所示:
图4 系统运行界面
5 总结
本文设计并实现了一套集成度高、成本低廉、简单易用、方便部署实施的网络与服务器状态监控系统。该系统在内网部署应用,消除了互联网网络抖动对监控数据可靠性的影响和互联网攻击带来的安全隐患;支持故障预警,方便运维,且在常规服务器上就能稳定运行,在中小型企业网络运维实施中具有显著的优越性。
系统使用HTML5技术,全网站实现了无flash,解决了浏览器装插件的问题,实现了手机、个人电脑、监控屏等多终端的无差异访问,同时支持多终端接收运行报告与预警信息。下一步,该系统计划基于现有功能和数据接口,开发手机客户端,满足移动办公和随时随地监控的需要。
[6] 李娜,徐国爱.一种基于SNMP的服务器监控系统[C].中国电子学会第十五届信息论学术年会暨第一届全国网络编码学术年会论文集(上册),2008:803-806.
[7] Presuhn R. RFC3418, Management information base(MIB) for the simple network management protocol (SNMP) [S].2002.
[8] William S.SNMP网络管理[M].胡成松,汪凯,译.北京:中国电力出版社,2001:87-114.
[9] 肖明斌,黎强,梁阳,罗凯文,李勇.基于SNMP的智能变电站交换机运行状态监测[J].电力信息与通信技术,2015,11:42-47.
[10] 朱思峰,崔霞.基于SNMP的路由器流量监控系统的设计与实现[J]. 现代电子技术,2005,13:35-39.
[11] Douglas E.Comer.用TCP/IP 进行网际互联,第1卷:原理、协议与结构.(第四版)[M].北京:电子工业出版社,2000:388-392.
Design and Implementation of Network and Server Status Monitoring System Based on SNMP
Ruan Xiaolong
(Network Information Center, Henan University of Traditional Chinese Medicine, Zhengzhou 450046, China)
For the requirement of a wide range of LAN and WAN equipment monitoring, the network and server status monitoring system is researched. SNMP and MIB are used to design and implement a network and server monitoring status system which is able to provide hardware alarm function. Meanwhile the system takes advantage of MySQL database and RRD database to facilitate the monitoring of historical data query. Examples show that the system can well complete the network and server status monitoring tasks and it is valuable to be applied and popularized.
SNMP; MIB; Network monitoring; Network measurement; Server performance
TP393.07
A
1007-757X(2016)10-0067-03
2016.02.26)
阮晓龙(1981-),男,河南中医学院,网络信息中心,讲师,研究方向:计算机网络、计算机软件、Web技术,郑州,450046