Nagios监控的侧重点在“此时”服务是否正常,是一个瞬时状态。通过对这个状态的监控和告警,管理员可以第一时间对主机或者服务的故障做处理。但是我们往往也非常关心主机的性能以及服务的响应时间等情况,这些情况是一个持续的变化曲线,并非一个实时的值,如果通过查看日志数据来分析的话,既繁琐又抽象,所以,我们希望Nagios可以帮我们做这份工作,然后将报表提交给我们,这样就非常方便了。这就是需要用到的Nagios的相关开源项目—— PNP
Pnp是一个基于php和perl,用rrdtool将nagios采集的数据绘制图表的工具,所以安装pnp之前必须先安装php、perl和rrdtool。
注意:安装nagios可以参考文章部署Nagios监控系统,本文是在rhel6.0上进行安装,参考是注意系统的版本。
1、安装php、perl相关软件包
[root@localhost /]#yum -y install php-* perl-*
2、安装rrdtool:
安装rrdtool之前确保安装了这些库zlib libpng freetype libart_lgpl,如下图所示:
安装rrdtool时必须要安装cgilib这个库,以下是正确的安装方法:
[root@localhost /]#tar zxf /media/cgilib-0.5.tar.gz -C /usr/src/
[root@localhost /]#cd /usr/src/cgilib-0.5
[root@localhost cgilib-0.5]#cp libcgi.a /usr/local/lib
[root@localhost cgilib-0.5]#cp cgi.h /usr/include/
安装rrdtool绘图工具:
释放rrdtool软件包并进行编译前的配置,编译后安装rrdtool
[root@localhost /]#tar zxf /media/rrdtool-1.2.27.tar.gz -C /usr/src/
[root@localhost /]#cd /usr/src/rrdtool-1.2.27
[root@localhost rrdtool-1.2.27]#./configure --prefix=/usr/local/
[root@localhost rrdtool-1.2.27]#make && make install
3、安装pnp
释放pnp软件包并进行编译前的配置
[root@localhost /]#tar zxf /media/pnp-0.4.14.tar.gz -C /usr/src
[root@localhost /]#cd /usr/src/pnp-0.4.14
[root@localhost pnp-0.4.14]#./config --with-rrdtool=/usr/local/bin/rrdtool
注意:./configure 完成后会出现RRDs Perl Modules: *** NOT FOUND***,说RRDs PerlModules在大量安装时可以加速,暂忽略之,继续
如果使用加速功能,用下面的命令:
[root@localhost pnp-0.4.14]#make all
[root@localhost pnp-0.4.14]#make install
[root@localhost pnp-0.4.14]#make install-config
[root@localhost pnp-0.4.14]#makeinstall-init
安装结束之后,再去检查一下Nagios的插件目录(libexec),就会发现多了一个名为“process_perfdata.pl”的脚本。
让apache的首页默认页支持php格式 ,编辑httpd.conf,在DirectoryIndex后面加上index.php:
[root@localhost /]#vim /etc/httpd/conf/httpd.conf
...//省略部分内容
重启httpd服务
[root@localhost /]#service httpd restart
访问http://localhost/nagios/pnp/index.php?host=localhost能看到图形,如果nagios尚未采集数据,看到可能是下面的样式
4、修改nagios.cfg文件,将绘图功能加入nagios
首先要说明一下Nagios提供的数据接口,也就是PNP的数据来源。在定义host或service 中都有一个定义项,名为process_perf_data,其值可以定义为0或1,其作用是是否启用Nagios的数据输出功能。如果你将此项赋值为 1,那么Nagios就会将收集的数据写入到某个文件中,以备提取。
所以如果你想让Nagios将数据输出的话,首先要将Nagios的主配置文件 nagios.cfg中相关的配置修改,修改结果如下:
[root@localhost /]#vim /usr/local/nagios/etc/nagios.cfg
...//省略部分内容
5、编辑commands.cfg,将原来的command_line后的内容替换为下图的内容(下图中的配置项默认存在,只需修改即可):
[root@localhost /]#vim /usr/local/nagios/etc/objects/commands.cfg
...//省略部分内容
6、编辑templates.cfg添加pnp
[root@localhost /]#vim /usr/local/nagios/etc/objects/templates.cfg
...//省略部分内容
7、修改hosts.cfg配置文件,添加在templates.cfg文件中定义的模板:host-pnp、srv-pnp
部分修改如下图所示:
[root@localhost /]#vim /usr/local/nagios/etc/objects/hosts.cfg
8、修改services.cfg配置文件,添加在templates.cfg文件中定义的模板:host-pnp、srv-pnp
部分修改如下图所示:
[root@localhost /]#vim /usr/local/nagios/etc/objects/services.cfg
9、配置pnp
重载nagios.cfg配置文件
[root@localhost /]/etc/init.d/nagios reload
访问nagios页面。就可以在nagios的每项监控项目上看到小太阳了.
当nagios获取到数据以后,点击红色的太阳图标就能看到绘图曲线了
上图右侧可以看到绘图的时间范围——Timeranges,最短4小时。但有时我们需要查看更短时间范围的曲线时,默认的页面就办不到了,需要手工修改一下配置文件:
在配置里增加30分钟和1小时、2小时的时间间隔.
[root@localhost /]#vim /usr/local/nagios/etc/pnp/config.php
...//省略部分内容
此外,配置文件的第86行为默认打开时以哪个时间范围显示图表。
按上面的配置,默认打开时,图表的时间范围是1小时内的。可酌情修改。