基于Nagios构建企业级信息系统监控方案

时间:2022-07-13 10:11:15

基于Nagios构建企业级信息系统监控方案

摘 要:企业信息系统中的服务器、网络等基础设施的稳定运行是保障业务正常运行的基础。而要保证这些基础设施稳定、高效的运行,设备故障及时有效的发现、设备运行状态信息及时有效的展示就显得十分重要,信息系统的有效监控已成为信息系统管理的重要问题。大中型企业内部存在着成百上千台服务器、网络等设备,如何实现对这些设备的有效监控,并且高效的解决各类系统故障,保障系统稳定、高效的运行呢?本文主要对Nagios监控功能进行分析,论述了如何利用它去监控服务器等设备。

关键词:nagios;监控;网络管理

中图分类号:TP393.18

随着企业信息系统的不断建设,庞大的服务器等基础设施的有效监控已成为信息系统管理的重要问题。依靠人工巡检的方式对于系统故障、潜在风险及安全隐患的发现效率越来越差,为提高发现故障的及时性、把运维人员从繁重的工作中解放出来,亟需引入新的工具来协助工程师解决当前的问题。该工具能够实现对各类IT设备的监视和管理,提高基础设施的服务质量和效率,因此自动化工具对于运维人员就十分必要。Nagios是一种开源网管软件,利用它可以实现对企业中的服务器、网络等设备进行全面的监控。

1 Nagios介绍

1.1 Nagios简介

Nagios是一款开源的监视系统运行状态的网管监控系统。它能监视本地或远程设备以及服务,同时提供异常告警通知功能等。Nagios能运行在Linux/Unix平台,状态监测等可实现利用WEB浏览器展示。

1.2 Nagios的主要功能特点

监视服务状态(SMTP,POP3,FTP,HTTP,PING等)

监视资源利用率(CPU、内存,磁盘I/O等)

利用插件方式轻松扩展监视功能

支持各类服务等监视的并发处理功能

支持错误通知功能(通过email,短信等方法)

可指定自定义的事件处理控制器

基于WEB浏览器的界面以方便维护人员查看被监控端状态

支持通过手机终端查看监控信息

1.3 Nagios工作原理

Nagios的功能是监控服务和主机,Nagios的监控、检测功能都是依赖各种插件来完成。Nagios启动后,它会定期的调用插件去检测服务器状态,同时将所有插件返回来的状态信息都进入队列,每次都从队首开始读取信息,处理后,把状态结果通过web界面展示出来。

Nagios 提供了丰富的插件资源,利用不同功能的插件可以实现各类设备服务状态的监控。在nagios 主目录下的/libexec目录里放有nagios自带的插件:例如如check_disk是检查磁盘空间的插件,check_load是检查CPU负载等。每一种插件都可以通过运行./check_xxx–h命令来查看其使用方法和功能。

Nagios可以识别4种状态返回信息,即0(OK)表示状态正常、1(WARNING)表示出现一定的异常、2(CRITICAL)表示出现非常严重的错误、3(UNKNOWN)表示被监控的对象已经停止了。Nagios根据插件返回来的值,来判断监控对象的状态,并通过web显示出来,以供维护人员及时发现故障。图1Nagios系统结构图。

2 Nagios安装

2.1 实现目标

通过ping的方式检测服务器是否存活,并通过SNMP协议采集网络中各种服务器客户端的性能数据,依据ndoutils插件,将收集到的信息(信息以文本方式存在)导入到后台数据库中,后续通过对这些历史数据进行统计分析可实现对设备运行性能等的评估,从而更早发现性能瓶颈,更好的指导后续设备扩容工作。

2.2 安装环境准备

在安装Nagios之前需要创建相关用户组,并检查关联的软件包:

# rpm -q wget httpd php gcc glibc glibc-common gd gd-devel make

2.3 安装Nagios Core

Nagios Core是主程序,解压缩并安装软件包:

# ./configure --with-command-group=nagcmd

2.4 安装Nagios Plugins

解压缩并安装Nagios Plugins安装包:

# ./configure --with-command-group=nagcmd

# make all

# make install

创建用于Web访问账号:

# htpasswd –c /usr/local/nagios/etc/htpasswd.users nagiosadmin

2.5 配置MySQL

在mysql上创建Nagios数据库和用户,用于存放nagios service数据。

2.6 安装配置ndoutils

Ndoutils是nagios的一个插件,就是可以用来把nagios的获取的数据存入到数据库中,也可以实现与cacti的集成。如图2。

软件包安装,在ndoutils目录下:

# ./configure --prefix=/usr/local/nagios --enable-mysql --disable-pgsql

为mysql的nagios数据库创建表和其它相关对象:

# ./installdb -unagios -ppasswd -hlocalhost.localdomain -d nagios

将ndo2db、ndomod复制到nagios脚本路径,并修改nagios主配置文件中配置ndoutils调用:

broker_module=/usr/local/nagios/bin/ndomod-3x.o

config_file=/usr/local/nagios/etc/ndomod.cfg

另外还需要修改ndo2db.cfg配置文件中关于mysql数据库的信息,包括nagios使用的数据库名、用户密码等,ndoutils调用这些数据库信息,连接并将数据写入到数据库中存储。

3 Nagios监控部署

3.1 实现原理

Nagios通过周期性的调用插件去检测服务器状态,通过ping检测主机是否存活,通过check_snmp抓取系统性能数据,包括CPU、内存使用量等。

3.2 配置

Nagios安装后下面一共有bin、etc、libexec、sbin、var等几个目录,其中bin目录下存放的是相关命令,etc目录下存放的是配置文件,sbin目录下存放的是通过的cgi脚本,libexec目录下存放的是所有插件,而var则存放的是log和pid文件等。Nagios监控实现是依靠执行插件来实现的,首先需要在nagios中定义一个service,并且在这个service中指定监控对象、监控命令以及报警机制等。

在主配置文件nagios.cfg中既可以指定单独包含一个cfg,也可以指定一个包含目录,即该目录下所有的cfg文件都会包含进来,本次使用两种方式结合,即nagios.cfg中指定:cfg_file=/usr/local/nagios/etc/objects/commands.cfg

contacts.cfg

timeperiods.cfg

templates.cfg

cfg_dir=/usr/local/nagios/etc/target

target目录中每个主机生成一个cfg文件,每个配置文件定义相应的host、service,定义host的时候,指定主机名、别名、地址等信息,定义Service时需要指定相应的主机、执行的命令等,如抓取某台主机的内存使用量:

check_snmp -H $HOSTADDRESS$ -C PUBLIC -o .1.3.6.1.4.1.2021.4.6.0

配置完host之后,检查nagios的配置无异常后,即可启动nagios服务:

# service nagios start

# /usr/local/nagios/bin/ndo2db-3x -c /usr/local/nagios/etc/ndo2db.cfg

3.3 界面展现

Nagios提供基于WEB浏览器的管理界面,方便维护人员人员监控被监测设备,如被监控设备出现异常则图标会显示为红色,如某项性能指标超过设定阀值也将有告警显示。利用WEB浏览器可实现对被监控设备运行情况的全面管理。

4 结束语

本文主要是对Nagios在企业信息系统基础设施资源基本监控功能的应用论述,如果要利用Nagios对企业信息系统进行全面的监控管理,想要实现更加复杂的监控功能,那就需要部署更多的插件,并且根据实际运行情况进行不断优化,才能保证监控数据的正确无误。虽然Nagios配置十分复杂,但配置完成后,都是基于标准的WEB应用,操作很容易上手,而且功能非常易于扩展。

Nagios是一款非常强大的网管工具,在它部署后,能够帮助你轻松管理企业内部各类基础设施资源。具有开源及低成本的优势,我们可以从Nagios社区中获得帮助,能够共享各种插件和经验。

参考文献:

[1]杨云江.计算机网络管理技术(第二版)[J].网络与通信,2011.

[2]陶利军.掌控——构建Linux系统Nagios监控服务器[M].清华大学出版社,2013.

作者简介:武冬春,毕业于吉林工学院计算机及应用专业,本科学历,现供职于中国联通集团公司总部电子商务部,长期从事中国联通企业信息系统建设和维护工作。

上一篇:中小型软件企业过程裁剪方法及应用研究 下一篇:嵌入式Linux在数字信号处理系统中的应用研究