pnp4nagios是在Nagios和rrdtool正常安装的基础上进行的,详情请移步本人相关博文.


pnp4nagios是一款强大的工具,它可以通过process_perfdata.pl脚本调用rrdtool对nagios的性能数据进行分析并绘制成相应的性能图。

pnp4nagios有5种工作模式(Synchronous Mode、Bulk Mode、Bulk Mode with NPCD、Bulk Mode with npcdmod、Gearman Mode),这里安装的是Synchronous Mode.


1.依赖包检测

#rpm -q perl-Time-HiRes php-gd

#yum install perl-Time-HiRes php-gd


2.编译安装

# tar -xzvf pnp4nagios-0.6.22.tar.gz

# cd pnp4nagios-0.6.22

# ./configure \

--prefix=/usr/local/pnp4nagios \

--with-nagios-user=nagios \

--with-nagios-group=nagios \

--with-rrdtool=/usr/local/rrdtool/bin/rrdtool \

--with-httpd-conf=/etc/httpd/conf.d/


# make all

# make fullinstall


提示 RRDs Perl Modules Not FOUND 时候可以执行下面的操作

i386:

cp  /usr/local/rrdtool/lib/perl/版本号/i386-linux-thread-multi/* -r /usr/lib/perl5/版本号/i386-linux-thread-multi/

x86_64:

cp  /usr/local/rrdtool/lib/perl/版本号/x86_64-linux-thread-multi/* -r /usr/lib64/perl5/版本号/x86_64-linux-thread-multi/


如果嫌以上方法麻烦或不生效则在编译时指定RRDs的路径

--with-perl_lib_path=/usr/local/rrdtool/lib/perl/版本号/

然后从新编译安装


3.服务配置(默认的Synchronous Mode)

3.1 修改nagios的nagios.cfg配置文件

# vim /usr/local/nagios/etc/nagios.cfg


#启用nagios环境变量输出

enable_environment_macros=1

#使nagios性能数据输出

process_performance_data=1

#服务性能数据输出命令名

service_perfdata_command=process-service-perfdata

#主机性能数据输出命令名

host_perfdata_command=process-host-perfdata


3.2 修改nagios的commands.cfg配置文件

(在文件的末行添加下面两行,并删除原有对process-host-perfdata和process-service-perfdata进行定义的字段)

#定义主机性能数据输出命令

define command {

     command_name    process-service-perfdata

     command_line    /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl

}

define command {

     command_name    process-host-perfdata

     command_line    /usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA

}


说明:如果不想某项服务性能数据输出,可在服务中增加如下代码将process_performance_data关闭

define service {

   ...

   process_perf_data 0

   ...

}


3.3 修改nagios的template 配置文件

(在文件末尾追加如下几行)

define host {

   name           host-pnp

   action_url       /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_

   register        0

   process_perf_data  1

}

define service {

   name           srv-pnp

   action_url       /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$

   register        0

   process_perf_data  1

}


3.4 修改nagios的hosts.cfg

这个文件默认是不存在的,是用来定义你要监控的主机,需要你手工创建。

这里我们新加入web01和pub_oracle 2个主机信息,并配置画图(host-pnp)

define host{

     use           linux-server,host-pnp

     host_name       web01

     alias         pub_web01

     address        192.168.0.51

}


define host{

     use           linux-server,host-pnp

     host_name       oracle

     alias         pub_oracle

     address        192.168.0.180

}


3.5 修改nagios的services.cfg

这个文件默认是不存在的,是用来定义你要监控的服务,需要你手工创建。

这里我们为新加入web01主机添加3个服务监控项,并配置画图(srv-pnp)

########   web01   #######

define service{

     use                local-service,srv-pnp

     host_name             web01

     service_description      PING

     check_command          check_ping!100.0,20%!500.0,60%

}


define service{

     use                 local-service,srv-pnp

     host_name             web01

     service_description      SSH

     check_command          check_ssh

}


define service{

     use                 local-service,srv-pnp

     host_name             web01

     service_description      http

     check_command          check_http

}


4.验证配置文件,重启服务

4.1 验证pnp4nagios配置文件,这个脚本默认没有,需要到官网下载

wget http://verify.pnp4nagios.org/verify_pnp_config

perl verify_pnp_config --mode sync --config=/usr/local/nagios/etc/nagios.cfg 

--pnpcfg=/usr/local/pnp4nagios/etc


4.2 验证nagios配置文件

#/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg


5.重启nagios、httpd及相关的npcd、ndoutils等服务

#/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

#service httpd restart

#/etc/init.d/npcd restart


6.修改pnp4nagios自检页

在网页中正常登录到nagios中,发现被添加了pnp4nagios标签的host和service都多了一个图标,

点击新增的图标进入pnp4nagios自检页,这里对pnp4nagios依赖的配置和软件包做了检测;在

页面最下边有修改install.php的提示,但要保证所有检查项都通过,最后重命名 install.php

为其它任何名字,修改完后不需要重启,再次点击新增图标是就进入了实时监控图。

如果看到“PHP magic_quotes_gpc is deprecated”,那么到php.ini文件中找到相应的设置并off掉。


# mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/install.php_bak


鸣谢:本人参考了多篇文章后总结而得,在此感谢各位网络分享者!