本文载至:http://blog.chinaunix.net/u/28387/showart_360530.html
Nagios监控的侧重点在“此时”服务是否正常,是一个瞬时状态。通过对这个状态的监控和告警,管理员可以第一时间对主机或者服务的故障做处理。但是我 们往往也非常关心主机的性能以及服务的响应时间等情况,这些情况是一个持续的变化曲线,并非一个实时的值,如果通过查看日志数据来分析的话,既繁琐有抽 象,所以,我们希望Nagios可以帮我们做这份工作,然后将报表提交给我们,这样就非常方便了。这就是我今天要介绍的Nagios的相关开源项目—— PNP(http://ederdrom.de/doku.php/nagios/pnp_en)。
PNP是一个小巧的开源软件包,它是 基于PHP和PERL,利用rrdtool将Nagios采集的数据绘制成图表。如果你要安装PNP,那么准备工作有如下3项:
1、整合 Apache和PHP(本文使用版本:Apache 2.2.3 PHP 5.1.6)
2、安装rrdtools (本文使用版本:RRDTools 1.2.23)
3、安装Perl (本文使用版本: Perl5 )
关于这3项工作的方法,网络上有 很多精彩的文章介绍,我就不多说了,下面介绍一下PNP的工作原理,顺便将安装配置的内容也描述如下。
要介绍PNP工作原理,首先要说明 一下Nagios提供的数据接口,也就是PNP的数据来源。在前面的文章中,我提到过,在定义host或service中都有一个定义项,名为 process_perf_data,其值可以定义为0或1,其作用是是否启用Nagios的数据输出功能。如果你将此项赋值为1,那么Nagios就会 将收集的数据写入到某个文件中,以备提取。所以,如果你想让Nagios将数据输出的话,首先要将Nagios的主配置文件nagios.cfg中相关的 配置修改:
process_performance_data=1 service_perfdata_command=process-service-perfdata #默认此句被注释掉了 |
如 果想要对某个监控对象做数据图表,则需在所对应的host或者service定义中(一般写在hosts.cfg或者services.cfg文件中), 包含如下的定义:
process_perf_data 1 |
这样,Nagios就会调 用相应的命令来输出数据了。Nagios的command定义中默认有一项“process-service-perfdata”,该命令声明了 Nagios输出哪些值到输出的文件中。不过其定义相对简单,PNP提供了一个perl脚本,更详尽的定义了一个输出数据的方法。如果要使用PNP的话, 我们需要在command的定义中,将“process-service-perfdata”命令对应的执行命令行的内容替换成该脚本:
define command{ command_name process-service-perfdata command_line /usr/local/nagios/libexec/process_perfdata.pl } |
这 样设置了之后,Nagios就会利用PNP提供的脚本进行相关的工作了。
细心的看管大概已经发现了,刚刚定义命令时用到的脚本 “process_perfdata.pl”现在还不存在。我们现在就来安装,也就PNP的软件包(本文用的版本是pnp-0.3.3.tar.gz)。 安装方法很简单,过程也很顺利(我的系统安装时选择了开发工具,谢天谢地!)
./configure --with-rrdtool=/usr/local/rrdtool/bin/rrdtool --with-perfdata-dir=/usr/local/nagios/share/perfdata/ make all make install |
安 装结束之后,再去检查一下Nagios的插件目录(libexec),就会发现多了一个名为“process_perfdata.pl”的脚本。
ok, 现在执行一下Nagios配置检查命令
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg |
如果没有什么 错误,那么我们重新启动Nagios。
/etc/init.d/nagios restart |
验 收一下成果,在浏览器的地址栏中输入:
http://IP/nagios/pnp/ |
如 果可以看到图表,那就恭喜啦!贴上我的图表给大家看看。
![](http://blogimg.chinaunix.net/blog/upfile/070815150925.jpg)