注:本篇博客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實時監控的短板,可以給監控着對於監控對象性能以很直觀的認知。