Nagios监控的侧重点在此时服务是否正常,是一个瞬时状态。通过对这个状态的监控和告警,管理员可以第一时间对主机或者服务的故障做处理。但是我们往往也非常关心主机的性能以及服务的响应时间等情况,这些情况是一个持续的变化曲线,并非一个实时的值,如果通过查看日志数据来分析的话,既繁琐又抽象,所以,我们希望Nagios可以帮我们做这份工作,然后将报表提交给我们,这样就非常方便了。这就是需要用到的Nagios的相关开源项目—— PNP

Pnp是一个基于phpperl,用rrdtoolnagios采集的数据绘制图表的工具,所以安装pnp之前必须先安装phpperlrrdtool。

注意:安装nagios可以参考文章部署Nagios监控系统,本文是在rhel6.0上进行安装,参考是注意系统的版本。

1、安装phpperl相关软件包

[root@localhost /]#yum -y install php-* perl-*

2、安装rrdtool

安装rrdtool之前确保安装了这些库zlib libpng freetype libart_lgpl,如下图所示:

Nagios整合pnp绘制性能分析图表_第1张图片

安装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在大量安装时可以加速,暂忽略之,继续

如果使用加速功能,用下面的命令:

201117199.jpg根据提示需要继续编译并安装pnp,分别执行以下命令:

[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

...//省略部分内容

201401838.jpg

重启httpd服务

[root@localhost /]#service httpd restart

访问http://localhost/nagios/pnp/index.php?host=localhost能看到图形,如果nagios尚未采集数据,看到可能是下面的样式

Nagios整合pnp绘制性能分析图表_第2张图片

4、修改nagios.cfg文件,将绘图功能加入nagios

首先要说明一下Nagios提供的数据接口,也就是PNP的数据来源。在定义hostservice 中都有一个定义项,名为process_perf_data,其值可以定义为01,其作用是是否启用Nagios的数据输出功能。如果你将此项赋值为 1,那么Nagios就会将收集的数据写入到某个文件中,以备提取。

所以如果你想让Nagios将数据输出的话,首先要将Nagios的主配置文件 nagios.cfg中相关的配置修改,修改结果如下:

[root@localhost /]#vim /usr/local/nagios/etc/nagios.cfg

...//省略部分内容

202238851.jpg

202254925.jpg

202310669.jpg

202325137.jpg

202337708.jpg

5、编辑commands.cfg将原来的command_line后的内容替换为下图的内容(下图中的配置项默认存在,只需修改即可)

[root@localhost /]#vim /usr/local/nagios/etc/objects/commands.cfg

...//省略部分内容

Nagios整合pnp绘制性能分析图表_第3张图片

6、编辑templates.cfg添加pnp

[root@localhost /]#vim /usr/local/nagios/etc/objects/templates.cfg

...//省略部分内容

Nagios整合pnp绘制性能分析图表_第4张图片

7、修改hosts.cfg配置文件,添加templates.cfg文件中定义的模板:host-pnpsrv-pnp

部分修改如下图所示:

[root@localhost /]#vim /usr/local/nagios/etc/objects/hosts.cfg

Nagios整合pnp绘制性能分析图表_第5张图片

8、修改services.cfg配置文件,添加templates.cfg文件中定义的模板:host-pnpsrv-pnp

部分修改如下图所示:

[root@localhost /]#vim /usr/local/nagios/etc/objects/services.cfg

Nagios整合pnp绘制性能分析图表_第6张图片

9、配置pnp

203402322.jpg

重载nagios.cfg配置文件
[root@localhost /]/etc/init.d/nagios reload
访问nagios页面。就可以在nagios的每项监控项目上看到小太阳了.

Nagios整合pnp绘制性能分析图表_第7张图片

nagios获取到数据以后,点击红色的太阳图标就能看到绘图曲线了

Nagios整合pnp绘制性能分析图表_第8张图片

上图右侧可以看到绘图的时间范围——Timeranges,最短4小时。但有时我们需要查看更短时间范围的曲线时,默认的页面就办不到了,需要手工修改一下配置文件:

在配置里增加30分钟和1小时、2小时的时间间隔.
[root@localhost /]#vim /usr/local/nagios/etc/pnp/config.php

...//省略部分内容

Nagios整合pnp绘制性能分析图表_第9张图片

此外,配置文件的第86行为默认打开时以哪个时间范围显示图表。

204248408.jpg

按上面的配置,默认打开时,图表的时间范围是1小时内的。可酌情修改。

Nagios整合pnp绘制性能分析图表_第10张图片