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.编译安装
#./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/5.8.8/i386-linux-thread-multi/* -r /usr/lib/perl5/5.8.8/i386-linux-thread-multi/
x86_64:
cp /usr/local/rrdtool/lib/perl/5.8.8/x86-linux-thread-multi/* -r /usr/lib64/perl5/5.8.8/x86-linux-thread-multi/
如果以上方法不生效则在编译时指定RRDs的路径
--with-perl_lib_path=/usr/local/rrdtool/lib/perl/5.8.8/
3.服务配置(默认的Synchronous Mode)
3.1 修改nagios的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
这个文件默认是不存在的,是用来定义你要监控的主机,需要你手工创建。
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
这个文件默认是不存在的,是用来定义你要监控的服务,需要你手工创建。
######## pub 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掉。
鸣谢:本人参考了多篇文章后总结而得,在此感谢各位网络分享者!