注:本篇博客Nagios版本Nagios-3.5.1
2. 關於PNP4Nagios
3. 部署PNP4Nagios
3.1 下載PNP4Nagios
3.2 編譯安裝
3.3 目錄文件說明
4. 配置Nagios
4.1 配置說明
4.2 配置Nagios主配置文件
4.3 配置Nagios對象模板command.cfg文件
4.4 配置Nagios對象模板template.cfg文件
4.5 配置主機和服務監控
5. 測試
6.總結
1. 概述
本篇博客主要介紹在Nagios3.5和Nagios4.4系統中部署pnp4nagios0.4和pnp4nagios0.6。
Nagios展示的實時數據,無歷史數據存儲和展示功能。通過pnp4nagios來實現Nagios歷史數據的繪制。
2. 關於PNP4Nagios
PNP4Nagios目前有兩個主要版本0.6版本和0.4版本。
3. 部署PNP4Nagios
PNP4Nagios利用了rrdtool工具來收集和處理圖像。因此系統中需要安裝rrdtool以及rrdtool-perl模塊。
有關rrdtool的部署,本篇不做詳細介紹。參閱博客《RRDTool的部署和測試.md》,博客園地址:
3.1 下載PNP4Nagios
官方網站:https://docs.pnp4nagios.org/
注意官方網站的提示,PNP4Nagios的Broker Module模式無法應用在Nagios Core 4.x上
3.2 編譯安裝
執行命令解壓:tar -zxvf tar -zxvf nagiosgraph-1.5.2.tar.gz -C /tmp/
;
進入目錄進行configure:cd /tmp/pnp4nagios-0.6.26
;
執行命令:
./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的編譯和安裝。
3.3 目錄文件說明
在路徑/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存在,配置時拷貝一份或者重命名即可
4. 配置Nagios
4.1 配置說明
PNP4Nagios有四種運行模式:
- Synchronous mode
- Bulk mode
- Bulk with NPCD mode
- Module mode
這四種模式的配置,在配置文件nagios.cfg和missconmmands.cfg中都有提到。
實際上nagios.cfg和miscommands.cfg就是源碼提供的不同模式下對Nagios整合PNP4Nagios配置的示例。
nagios.cfg的內容,為在四種模式時,對Nagios主配置文件nagios.cfg的修改示例;而miscommands.cfg的內容,為在四種不同模式下,
對Nagios的command模板的修改示例;
4.2 配置Nagios主配置文件
本篇博客主要配置的是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
4.3 配置Nagios對象模板command.cfg文件
上面對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$
}
4.4 配置Nagios對象模板template.cfg文件
因為需要在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
}
4.5 配置主機和服務監控
上面的配置完成之后,在需要配置性能數據輸出的對象配置上,進行配置。如本篇博客配置
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
}
5. 測試
重啟Nagios便可在監控站點上看到node11的性能監控數據。
6.總結
PNP4Nagios可以理解為PNP for Nagios,即為Naigos監控對象配置性能數據可視化。
該插件彌補了Nagios實時監控的短板,能夠給監控着對於監控對象性能以很直觀的認知。