网上太多,语焉不详的Nagios搭建过程描述,很多照着做根本就不能正确运行。本文的目标是以最方便的方式搭建一个实用的监控服务器,尽最大可能细化每个步骤,给出截图,让您照着本文可以顺利地搭建出监控服务。
Nagios及其插件介绍
Nagios是一款开源的免费网络监视工具,能有效监控Windows、Linux和Unix的主机状态,交换机路由器等网络设置,打印机等。让管理人员可以实时掌握服务器和服务的工作状态,并且及时的通知相关人员处理故障和警报。通过插件可以极大的扩展Nagios可以监控的内容。
本文会安装Nagios核心程序,以及两个特别实用的插件:
§ NDOUtils可以把Nagios监控数据保存到MySQL数据库中
§ PNP4Nagios可以图形化Nagios监控数据
搭建环境:
§ 操作系统:ubuntu-12.04.3-amd64 server版全新安装
安装Nagios
sudo apt-get update
sudo apt-get install nagios3
此时会同时安装Apache、PHP5、Postfix,所以下面会涉及简单的邮件服务器的配置。
填写邮件服务器域名
填写Nagios管理员密码
确认刚才输入的密码
安装完毕,查看配置文件分布
访问测试
将以下yourip替换为安装Nagios机器的实际IP,用户名为nagiosadmin密码为安装时设定的密码效果如下图所示:
http://yourip/nagios3/
NDOUtils安装配置
sudo apt-get install ndoutils-common
配置MySQL root用户密码
确认root密码
单独配置NDOUtils数据库密码
配置运行NDOUtils
修改:/etc/default/ndoutils
ENABLE_NDOUTILS=1
在/etc/nagios3/nagios.cfg 中相应位置加入:
broker_module=/usr/lib/ndoutils/ndomod-mysql-3x.o config_file=/etc/nagios3/ndomod.cfg
启动NDOUtils
sudo service ndoutils start
sudo service nagios3 restart
此时点击Nagios的WEB页面左侧的Event log时出现下图,则安装成功:
PNP4Nagios安装配置
Nagios开启性能数据记录后,会将检测到的主机和服务数据记录到硬盘文件。PNP4Nagios的处理脚本process_perfdata.pl会在特定时间被调用以处理这些文件以绘制图形。根据process_perfdata.pl被调用的不同时机使得PNP4Nagios有三种配置模式。
PNP4Nagios的三种模式:
§ synchronous模式:Nagios每一次数据检测后都调用process_perfdata.pl进行处理
§ Bulk模式:预先设定一个固定时间间隔,到时就阻塞Nagios,处理完数据后再恢复Nagios的检测进程
§ NPCD的Bulk模式:不阻塞Nagios,直接将Nagios的数据文件移动到其他目录,Nagios可以继续在原位置记录数据。与此同时,NPCD(Nagios Performance C Daemon)可以调用process_perfdata.pl并行处理数据
本次教程配置第三种模式,因为其性能最好。看了三种模式之后,其实配置就是针对两类文件位置。一类是Nagios生成的性能数据文件,另一类是process_perfdata.pl需要处理的数据文件。
首先我们创建好存放性能分析数据的目录,注意要设置权限,因为之前安装Nagios时,默认生成的用户为nagios,所以这里的权限也要和其相同。
§ /data/nagios/目录用于存放Nagios生成的性能数据文件
§ /data/npcd/目录用于存放需要process_perfdata.pl处理的数据目录
sudo mkdir -p /data/nagios/
sudo mkdir -p /data/npcd/
sudo chown -R nagios:nagios /data/nagios/ /data/npcd/
安装PNP4Nagios
sudo apt-get install pnp4nagios
cp /etc/pnp4nagios/apache.conf /etc/apache2/sites-enabled/pnp4nagios.conf
service apache2 restart
配置NPCD
修改 /etc/default/npcd
RUN=“yes”
修改/etc/nagios3/nagios.cfg
process_performance_data=1
并且增加以下内容:
#
# service performance data
#
service_perfdata_file=/data/nagios/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=pnp-bulknpcd-service
#
# host performance data starting with Nagios 3.0
#
host_perfdata_file=/data/nagios/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=pnp-bulknpcd-host
修改 /etc/pnp4nagios/npcd.cfg 中的 perfdata_spool_dir = /data/npcd/
修改 /etc/nagios3/conf.d/pnp4nagios.cfg 中的两个命令路径:
注意点: nagios.cfg中 service_perfdata_file和host_perfdata_file要和pnp4nagios.cfg中一致 这里涉及到得几个文件(其中对性能文件的存放位置)
§ /etc/nagios3/nagios.cfg --> 对service/host performance data的定义
§ /etc/nagios3/conf.d/pnp4nagios.cfg --> command名称和移动路径
§ /etc/pnp4nagios/npcd.cfg --> perfdata_spool_dir
对/etc/nagios3/conf.d/generic-host_nagios2.cfg增加:
(这里主要要和apache里面pnp4nagios的访问路径对应起来)
action_url /pnp4nagios/index.php?host=$HOSTNAME$' οnmοuseοver="get_g('$HOSTNAME$','_HOST_')" οnmοuseοut='clear_g()
对/etc/nagios3/conf.d/generic-service_nagios2.cfg增加:
action_url /pnp4nagios/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$' οnmοuseοver="get_g('$HOSTNAME$','$SERVICEDESC$')" οnmοuseοut='clear_g()
启动NPCD、重启Nagios
sudo service npcd start
sudo service nagios3 restart
此时,访问Nagios的WEB页面:
点击host或者service旁边的太阳图标,就可以转到图标页面。
点击太阳图标的时候也许不会出现上图,也许会报错,如下图所示:
此时只需等一两分钟,然后再访问。因为NPCD要数据才能处理,不然NPCD发现在我们设定的目录下/data/npcd/没有数据,到默认目录下发现也没有数据,就会报错,但是报错信息内容确是:无法在默认的目录/var/lib/pnp4nagios/perfdata/下找到数据。