注:本篇博客Nagios版本Nagios-3.5.1php
本篇博客主要介绍在Nagios3.5和Nagios4.4系统中部署pnp4nagios0.4和pnp4nagios0.6。
Nagios展现的实时数据,无历史数据存储和展现功能。经过pnp4nagios来实现Nagios历史数据的绘制。node
PNP4Nagios目前有两个主要版本0.6版本和0.4版本。linux
PNP4Nagios利用了rrdtool工具来收集和处理图像。所以系统中须要安装rrdtool以及rrdtool-perl模块。
有关rrdtool的部署,本篇不作详细介绍。参阅博客《RRDTool的部署和测试.md》,博客园地址:ios
官方网站:https://docs.pnp4nagios.org/
注意官方网站的提示,PNP4Nagios的Broker Module模式没法应用在Nagios Core 4.x上
web
执行命令解压:tar -zxvf tar -zxvf nagiosgraph-1.5.2.tar.gz -C /tmp/
;
进入目录进行configure:cd /tmp/pnp4nagios-0.6.26
;
执行命令:vim
./configure \ --prefix=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26 \ --sysconfdir=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/etc \ --localstatedir=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/var \ --with-nagios-user=nagios \ --with-nagios-group=nagios \ --with-perl_lib_path=/usr/local/globle/softs/rrdtool/1.7.0/lib/perl \ --with-rrdtool=/usr/local/globle/softs/rrdtool/1.7.0/bin/rrdtool \ --with-perfdata-logfile=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/process_perfdata \ --with-perfdata-dir=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/var \ --with-perfdata-spool-dir=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/var \ --with-httpd-conf=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/etc \ --with-base-url=/pnp4nagios \ --with-init-dir=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/etc/init.d \ --with-debug \
执行命令make all
;
执行命令make fullinstall
至此,已经完成了PNP4Nagios的编译和安装。工具
在路径/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26
下,可以看到如下目录:
bin,etc,lib,libexec,man,share,var
bin目录存放npcd可执行文件
lib目录存放npcdmod.o模块文件
libexec目录存放process_perfdata.pl等perl脚本
etc比较重要,存放了配置PNP4Nagios的配置文件,包括:
process_perfdata.cfg,npcd.cfg,nagios.cfg,misccommands.cfg,rra.cfg
以及编译时指定的init.d启动脚本目录性能
注:上过的.cfg文件,实际是以.cfg-sample存在,配置时拷贝一份或者重命名便可测试
PNP4Nagios有四种运行模式:网站
这四种模式的配置,在配置文件nagios.cfg和missconmmands.cfg中都有提到。
实际上nagios.cfg和miscommands.cfg就是源码提供的不一样模式下对Nagios整合PNP4Nagios配置的示例。
nagios.cfg的内容,为在四种模式时,对Nagios主配置文件nagios.cfg的修改示例;而miscommands.cfg的内容,为在四种不一样模式下,
对Nagios的command模板的修改示例;
本篇博客主要配置的是PNP4Nagios的第三种模式,即Bulk with NPCD mode。
这要求PNP4Nagios可以以独立进程npcd运行,而且可以处理Nagios抛出的临时状态文件。
修改Nagiso的主配置文件,内容以下:
#打开性能文件输出 process_performance_data=1 #定义用于输出的命令对象 host_perfdata_command=process-host-perfdata service_perfdata_command=process-service-perfdata #定义存放性能数据的文件 host_perfdata_file=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/var/host-perfdata service_perfdata_file=/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/var/service-perfdata #定义存放性能数据的模板 host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$ service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$ #定义存放性能数据的模式 host_perfdata_file_mode=a service_perfdata_file_mode=a #定义输出性能数据的时间 host_perfdata_file_processing_interval=15 service_perfdata_file_processing_interval=15 #定义处理性能数据的命令对象 host_perfdata_file_processing_command=process-host-perfdata-file service_perfdata_file_processing_command=process-service-perfdata-file
上面对Nagios的主配置文件修改过程种,配置了处理性能文件的命令对象host_perfdata_file_processing_command和service_perfdata_file_processing_command,
这两个命令,须要在Nagios的命令模板种定义方可以使用。
修改配置文件:vim /usr/local/globle/softs/monitor/nagios/3.5.1/etc/objects
#这段命令的定义,能够参照示例配置文件/usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/etc/misccommands.cfg #或者官方文档地址: define command { command_name process-service-perfdata-file command_line /bin/mv /usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/var/service-perfdata /usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/var/service-perfdata.$TIMET$ } define command { command_name process-host-perfdata-file command_line /bin/mv /usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/var/host-perfdata /usr/local/globle/softs/monitor/nagios/pnp4nagios/0.6.26/var/host-perfdata.$TIMET$ }
由于须要在Nagios的web站点展现性能数据图,所以须要定义一个主机和服务模板,将模板添加到主机监控便可
修改配置文件:/usr/local/globle/softs/monitor/nagios/3.5.1/etc/objects/templates.cfg
#这段配置能够参考官方文档地址:http://docs.pnp4nagios.org/pnp-0.6/webfe define host { name hosts-pnp action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_ register 0 } define service { name services-pnp action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$ register 0 }
上面的配置完成以后,在须要配置性能数据输出的对象配置上,进行配置。如本篇博客配置
define host { use linux-server,hosts-pnp host_name node11 alias node11 address 192.168.80.11 } define service { use local-service,services-pnp ; Name of service template to use host_name node11 service_description Root Partition check_command check_nrpe!check_disk notifications_enabled 1 } define service { use local-service,services-pnp ; Name of service template to use host_name node11 service_description Current Users check_command check_nrpe!check_users notifications_enabled 1 } define service { use local-service,services-pnp ; Name of service template to use host_name node11 service_description Total Processes check_command check_nrpe!check_total_procs notifications_enabled 1 }
重启Nagios即可在监控站点上看到node11的性能监控数据。
PNP4Nagios能够理解为PNP for Nagios,即为Naigos监控对象配置性能数据可视化。 该插件弥补了Nagios实时监控的短板,可以给监控着对于监控对象性能以很直观的认知。