APP下载

整合多模块开源软件的信息监控方案设计与实现*

2016-07-01左珍勇

通信技术 2016年2期
关键词:监控

左珍勇

(中国航空无线电电子研究所,上海 200000)



整合多模块开源软件的信息监控方案设计与实现*

左珍勇

(中国航空无线电电子研究所,上海 200000)

摘要:针对目前企业数据中心网络与系统监控能力存在的不足,研究并分析了开源监控软件Nagios与Cacti的工作原理,提出并设计了一种集成多模块组件、整合Nagios与Cacti的网络与系统的监控方案,通过利用主流的SNMP协议实现了在多种平台上对企业网络与系统多项运行指标图形化的监控和告警,为企业数据中心提供了一个实时的资源与服务的监控平台。通过实际的网络环境运行分析与仿真,证明了方案的有效性。

关键词:监控;多组件;Nagios;Cacti;SNMP协议;告警

0引言

随着信息化技术的迅猛发展,以信息为导向、借助信息化手段创造的价值在企业的日常管理中不断得到彰显。而作为企业信息化的基础设施及服务架构(IaaS),其将IT基础设施作为一种通用服务借助网络对企业进行了开放,便捷了业务系统运行环境的构建。在该架构下,IaaS平台的可靠性与稳定性是保证业务系统稳定运行的关键。一方面,由于企业IaaS平台与互联网是逻辑隔离的,其稳定性和可靠性受到来自互联网的各类apt攻击的影响[1];另一方面,则来自与内部环境的影响,在现有条件下如何有效地对其进行管理和监控、保证其稳定性与可靠性成为当前企业内IT部门迫在眉睫的问题。

目前企业内IaaS资源通常包括网络、服务器、存储等相关硬件资源,云技术的出现把这些资源进行了整合,提高了资源的利用率。随着企业不断加大对信息化的投入力度,企业的私有云不断膨胀,一些对企业私有云环境下的IaaS监控手段应运而生,主流的监控手段以开源软件Nagios和Cacti为中心辅以外围相关插件开发的监控系统[1-9],以Nagios开发的监控系统可以有效监控企业数据中心网络服务以及设备是否正常工作,其具备强大的报警功能,但在具体的配置以及图形化显示方面则相对不足;以Cacti开发的监控系统可以利用其自身具备的强大数据收集功能通过图形化的方式展现设备的状态,便于管理与操作,但其不具备报警功能。

本文对Nagios与Cacti的工作原理进行了分析,针对Nagios和Cacti在各自监控方面存在的优势与不足设计了一套监控方案:通过整合Nagios和Cacti,并借助以NagiosQL为代表的外围相关插件的开发,实现了对企业IaaS中网络流量负载的图形化显示、网络设备与系统服务状态的监测、故障报警以及数据分析等功能,方便了企业网络管理员的日常运维,提高了IaaS平台的稳定性与可靠性。

1Nagios与cacti的工作原理分析

1.1Nagios概述

作为一款开源软件,Nagios能有效监控两种类型操作系统的主机:Linux与Windows,其可根据公司既有的网络拓扑将应用系统以及IT基础设施环境纳入到监控范畴。当IT基础设施或应用系统发生故障时提供多种报警机制,如可通过SMS或者E-mail的方式通知企业信息化运维人员。

Nagios运行在Linux环境下,其监控功能由外围组件实现。通过Linux命令输入,可监控IT基础设施(网络设备、服务器)的服务状态,监测的结果调用、显示与告警由 Nagios执行。Nagios的监控功能主要包括:

(1)监控Ping、FTP、HTTP等网络服务。

(2)监控主机的CPU、内存、磁盘利用率等资源。

(3)支持第三方功能插件扩展,也可自行开发监控插件。

(4)具备定义网络分层能力,监控主机是否宕机或网络是否可达。

(5)提供E-mail、短信等报警机制。

(6)可通过定义事件句柄定位更多的问题。

(7)具备旧日志自动删除机制。

(8)具备对服务器或服务的多重监控机制,可借助网页查看当前故障通知、设备状态等历史信息。

Nagios的详细组成如图1所示。其中Nagios-plugins和Nagios是运行在服务器端的必要组件。为实现对Linux/Unix 和Windows 主机的资源监控,NRPE 和NSClient++需分别部署到对应的系统内;NSCA用于激励Linux/Unix 主机上报信息给Nagios 服务器;NDOUtils则将Nagios收集到的各种类型的事件信息存入相应的数据库中,从而可进行快速检索并处理。Nagios根据插件返回值判断设备或服务状态,并通过 Web 方式显示给IT管理员,帮助其及时排故。

图1 Nagios架构

1.2Cacti概述

作为一款是基于SNMP、MySQL以及RRDTool等组件开发的开源软件,Cacti可显示企业当前的网络拓扑状态,并对其中出现的故障给出相应的诊断措施,为用户提供树形结构的查看方式。Cacti系统框架具备多插件接口,支持第三方组件的无缝集成。Cacti系统借助简单网络传输协议程序中的相关指令进行数据获取,并存放在内置的数据库中,图形化的显示则通过调用RRDTool进行绘制。内置数据库中的数据可重复使用,并可借助RRDTool绘制不同时间段的状态图。同时,Cacti还提供用户和数据管理功能,可实现按用户管理级别的不同分配操作权限。图2是Cacti的系统框架图。

图2 Cacti框架结构

2系统架构体系的设计与实现

2.1系统架构体系设计

本文设计的监控系统运行在Linux系统下,选择目前主流的RedHat Linux作为监控平台的基础运行环境。系统采用 B/S架构,主要组成包括Nagios模块、Cacti模块以及外围插件。其中Nagios负责对操作系统(如Linux)服务以及设备(如交换机)协议运行状态的监测和异常报警(如短信、邮件或自定义)等。Cacti负责监控网络设备运行状态和流量,绘制相应的显示图。外围插件中NagiosQL通过WEB界面方式简化Nagios的配置,RRDTool将Nagios中获取的监测数据通过图形呈现给用户;监控的数据由NPC和Ndoutils组件负责收集,并导入到Cacti数据库中,由其 以图形的方式呈现给网络管理员。系统的详细架构设计见图3。

图3 监控方案设计

2.2系统实现

本文设计的监控系统实现主要包括Nagios与Cacti网络检测平台的搭建以及两款开源监控软件系统的整合等。

2.2.1Nagios平台搭建

(1) 环境准备

yum -y install httpd gcc glibc glibc-common *gd* php php-mysql mysql mysql-server mysql-devel openssl-devel perl-ExtUtils-* #安装Linux操作系统以及相关组件。

(2) Nagios账户

groupadd nagcmd #添加与nagios运行相关服务的组;

useradd -m nagios #添加nagios用户;

usermod -a -G nagcmd nagios #将nagios用户加入相应的组;

usermod -a -G nagcmd apache #将apache用户赋权。

(3) Nagios部署与配置

Nagios的软件包选择tar jxf nagios-cn-3.2.3.tar.bz2与cd nagios-cn-3.2.3。

make install #安装主程序,CGI和HTML文件;

make install-init #在/etc/rc.d/init.d安装启动脚本;

make install-commandmode #配置目录权限;

make install-config #安装示例配置文件;

make install-webconf #安装nagios的web接口,会在/etc/httpd/conf.d目录中创建nagios.conf文件。

(4) Nagios的WEB账号创建

htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin #为nagios用户创建web账号与密码。

(5) 编译安装nagios-plugins

nagios-plugins负责完成nagios的监测工作。具体的安装如下:

nagios-plugins。./configure --with-nagios-user=nagios

--with-nagios-group=nagios --with-mysql

--enable-extra-opts --enable-libtap

--enable-perl-modules make && make install #编译并安装nagios-plugins插件。

(6) WEB管理工具NagiosQL安装

NagiosQL依赖环境需要安装如下软件包:php、php-mysql、mysql、mysql-server、mysql-devel、perl、perl-DBI、perl-DBD-Mysql、httpd、gcc、glibc、glibc-common、gd、gd-*、gettext、php-pear。NagiosQL是一个WEB管理工具,只要把其放到Apache的虚拟目录下即可进行安装。通过NagiosQL可以极大简化IT管理员通过命令行进行Nagios的配置。

2.2.2Cacti平台搭建

(1) Cacti环境准备

Cacti安装依赖软件包 net-snmp、net-snmp-utils、net-snmp-libs、lm_sensors、rrdtool。软件包可通过通过yum安装。

(2) Cacti安装

将下载的cacti源码包释放至WEB服务器的网页目录,添加一个用来读写监测数据的用户账号(如cactiuser),并调整子目录rra/、log/的属主或权限,以便正常读取及写入数据,

[root@CareriNagios src]# useradd cactiuser

[root@CareriNagios src]# cd /var/www/html/cacti/

[root@CareriNagios cacti]# chown -R cactiuser.cactiuser rra/ log/

创建用于cacti监测平台的数据库,并授权一个数据库用户(如:cactiadmin),然后使用cacti源码目录下的cacti.sql脚本,导入预设的各种数据表。

Cacti的配置文件位于源码目录中的include/文件夹下,名称为config.php。要使cacti系统能够正确访问并使用数据库,必须修改config.php文件,确保数据库连接参数正确无误。

2.2.3Nagios与Cacti整合

整合cacti 与nagios 是利用了cacti 的一个插件:NPC,其功能是将nagios中监控数据通过ndo2db导入到cacti的内置数据库中,然后通过NPC将cacti数据库信息用图形呈现出来。

(1) Ndoutils安装

安装ndoutils的目的是确保能够将nagios中的数据导入到mysql 数据库中,以下是安装ndoutils的命令:

[root@CareriNagios src]# tar zxf ndoutils-1.4b7.tar.gz

[root@CareriNagios src]# cd ndoutils-1.4b7

[root@CareriNagios ndoutils-1.4b7]# ./configure --prefix=/usr/local/nagios/--with-mysql-inc=/usr/include/mysql --with-mysql-

lib=/usr/lib/mysql --enable-mysql --disable-pgsql --with-ndo2db-user=nagios--with-ndo2db-group=nagios

[root@CareriNagios ndoutils-1.4b7]# cp config/ndomod.cfg /usr/local/nagios/etc/

(2) 安装NPC

[root@CareriNagios config]# cd /var/www/html/cacti/plugins

[root@CareriNagios plugins]# tar zxf /usr/local/src/npc-2.0.3.tar.gz

[root@CareriNagios plugins]# vim /var/www/html/cacti/include/config.php

在cacti系统中,通过plugin management模块安装npc,安装完之后开启npc即可实现cacti与Nagios的整合。

3应用效果分析

本文设计的监控系统能够对目前企业数据中心的网络和系统进行有效的监控,下面以某企业数据中心为例,对其中部分设备和服务进行监控,并对其监控效果进行说明。

3.1网络流量监控

图4是对某核心交换机slot10第48端口的流量数据监控图,分别以一天、一周以及一月为时间周期对流入、流出交换机第48端口的数据流量进行了图形化显示。图中阴影区域表示端口输出流量,细实线表示端口输入流量,从图中可以清楚的查看每天交换机端口流量输入和输出的波峰期和波谷期所在的时间范围。通过对网络设备端口流量的监控,IT网络管理员可藉此为依据对企业的网络管理进行及时优化,并对企业网络未来的发展做出合理性的规划。

(a)核心交换机48端口一天输入输出数据量

(b)核心交换机48端口一周输入输出数据量

(c)核心交换机48端口一月输入输出数据量

3.2网络服务监控

在企业网络日常运维过程中,IT网络管理员除了要监控网络设备的流量之外,还需要对网络设备的服务进行监控。本文设计的系统不仅可以监控网络设备,同时可以有效的对网络服务进行监控。当网络服务出现异常时会通过Nagios的报警功能通知网络管理员。图5、表1是通过本系统对网络设备的ping服务进行的监控,选取了RTA(往返平均响应时间:Round trip average)作为一个重要指标对网络是否可达进行了监控,从图5和表1中可以发现在一天的时间周期内RTA的最高值为4.75 ms,状态显示正常,日志显示服务正常,丢包为0。

图5 网络服务监控、状态

事件开始时间事件结束时间事件持续时间事件/状态类型事件/状态的信息2014-11-1323:59:592014-11-1400:00:000日0时0分服务正常(硬-HARD)初始状态2014-11-1400:00:002014-11-1500:00:001日0时0分服务正常(硬-HARD)PingOK,丢包0,往返平均响应时间0.81ms2014-11-1500:00:002014-11-1505:44:500日4时44分服务正常(硬-HARD)PingOK,丢包0,往返平均响应时间0.86ms2014-11-1505:44:502014-11-1600:00:000日18时15分服务正常(硬-HARD)PingOK,丢包0,往返平均响应时间38.85ms2014-11-1600:00:002014-11-1700:00:001日0时0分服务正常(硬-HARD)PingOK,丢包0,往返平均响应时间1.59ms2014-11-1700:00:002014-11-1800:00:001日0时0分服务正常(硬-HARD)PingOK,丢包0,往返平均响应时间1.04ms2014-11-1800:00:002014-11-1900:00:001日0时0分服务正常(硬-HARD)PingOK,丢包0,往返平均响应时间0.66ms2014-11-1900:00:002014-11-1910:56:520日10时56分服务正常(硬-HARD)PingOK,丢包0,往返平均响应时间0.82ms

3.3系统性能监控

在企业的数据中心运维过程中,设备的硬件性能指标直接影响系统运行速度,因此对设备的性能指标进行实时监控、合理调整硬件资源分配就显得尤为重要。本文设计的系统可以有效的监控硬件设备的性能指标,图6选取了硬件设备中常用的三个性能指标:CPU、硬盘和内存,通过一天的使用情况监控,可以清晰的观察每个性能指标的数值大小,从而可以为企业IT网络管理员合理分配硬件资源提供依据于参考。

(a)CPU监控

(b)硬盘监控

(c)内存监控

4结语

本文通过对目前主流的开源监控软件Nagios和Cacti的工作原理研究,分析了两款软件各自在监控方面的优缺点,设计了一套集成多组件、并对Nagios与Cacti进行整合的网络与系统监控方案,并对方案进行了实现,通过部分的监控效果阐述了本方案在目前企业网络日常运维过程中的有效性以及重要性。通过本系统进行的监控可以为企业数据中心网络与系统运行状况的改善提供数据依据,对于及时发现数据中心运行时出现的问题和隐患、节约企业数据中心运维成本以及保障企业数据中心网络与系统正常运行具有非常重要的意义。

参考文献:

[1]徐远泽,张文科,尹一桦等.APT攻击及其防御研究[J].通信技术,2015,48(06): 740-745.

XU Yuan-ze,ZHANG Wen-ke,YIN Yi-hua,et al.APT Attacks and Its Defense[J].Communications Technology,2015,48(06): 740-745.

[2]罗奕,陈粤.基于Nagios的银行集中监控系统的构建与应用[J].计算机时代,2013(06):30-33.

LUO Yi,CHEN Yue.Construction and Application of Nagios-based Centralized Monitoring System in Banks[J].Computer Era,2013(06):30-33.

[3]李刚,王晓磊,孙路强等.基于Nagios软件的综合短信联动告警系统在地震行业中的应用研究[J].地震研究,2012(35):133-138.

LI Gang,WANG Xiao-lei,SUN Lu-qiang,et al.Application of the Integrated Short-Message Warning System based on Nagios Software to the Earthquake Profession[J].Journal of Semismological Research,2012(35):133-138.

[4]杨昌武,曹龙汉.飞信报警方式的Nagios网络监控系统在企业中的应用[J].网络安全技术研究应用,2012(07):42-45.

YANG Chang-wu,CAO Long-han.Application of Nagios Network Monitoring System with the Method of Fetion Alarming in Enterprise[J].Network Security Technology & Application,2012(07):42-45.

[5]李元雄.构建基于Nagios的图形化服务器监控报警平台[J].软件导刊,2011(07):154-155.

LI Yuan-xiong.Construction of a Graphical Server Monitoring and Warning Platform based on Nagios[J].Software Guide,2011(07):154-155.

[6]王世辉,潘莹,梁京章.基于Nagios 的IPv6 网络监控系统的研究与应用[J].广西大学学报:自然科学版,2011(36):170-173.

WANG Shi-hui,PAN Ying,Liang Jing-zhang.Research and Application of Ipv6 Network Monitoring System based on Nagios[J].Journal of Guangxi University (Natural Science Edition),2011(36): 170-173.

[7]陈子国,刘金刚.基于Nagios的网络监控系统的设计和实现[J].微计算机信息,2010(26):120-121.

CHEN Zi-guo,LIU Jin-gang.Design and Implement of Network Monitoring System based on Nagios[J].Microcomputer Information,2010(26):120-121.

[8]吕伟春,胡洪新,汤剑.基于Nagios的网络监控系统研究[J].电脑知识与技术,2010(06):48-51.

LV Wei-chun,HU Hong-xin,TANG Jian.Research of Network Monitoring System based on Nagios[J].Computer Knowledge and Technology,2010(06):48-51.

[9]WANG Z,WANG Y,SHAO G.Research and Development of Monitoring System for Network Servers.[C] In: WiCOM ’08 4th International Conference on Wireless Communications.USA: IEEE Press,2008,1-3.

[10]Emir Imamagic,Dobrisa Dobrenic.GridInfrastructure Monitoring System based on Nagios [C].In: Proceedings of the 2007 workshop on Grid Monitoring.USA: ACM Press,2007.23-28.

A Monitoring Solution based on Integrated Multi-Module Open-Source Software

ZUO Zhen-yong

(China Aeronautical Radio Electronics Research Institute,Shanghai 200000,China)

Abstract:Aiming at the inadequate monitoring of the current enterprise data center on the network and system,the working principles for open-source monitoring software of Nagios and cacti are researched and analyzed,and a monitoring solution is proposed and designed.The method,based on Nagios and Cacti integrated multi-module open-source software and by using SNMP protocol of Nagios and Cacti,could implement monitoring and alarming of the enterprise network and system on multiple platforms,and also provides the enterprises data center with a real-time monitoring platform of resources and services.Analysis and simulation of the actual network environment indicate the effectiveness of the proposed solution.

Key words:monitoring; multi-component; Nagios; Cacti; SNMP protocol; alert

doi:10.3969/j.issn.1002-0802.2016.02.017

* 收稿日期:2015-09-03;修回日期:2015-12-28Received date:2015-09-03;Revised date:2015-12-28

中图分类号:TP319

文献标志码:A

文章编号:1002-0802(2016)02-0211-06

作者简介:

左珍勇(1984—),男,硕士,工程师,主要研究方向为信息安全与网络监控。

猜你喜欢

监控
The Great Barrier Reef shows coral comeback
基于无人机的监控系统设计
手机能监控疾病了
高速隧道监控联动管理系统
你被监控了吗?
Zabbix在ATS系统集中监控中的应用
监控软件预案策略控制在海底隧道监控中的应用
模糊监控图像视频的清晰化处理
立体化监控在广东省路网监控中的应用
PDCA循环法在多重耐药菌感染监控中的应用