為Nagios增加圖表
PNP4Nagios是一個用于顯示Nagios性能圖表的插件,基于RRDTool日志分析,并以Kohana(一個PHP開發框架)呈現在Web端,可以以Action Url的形式集成到Nagios中。
效果如圖

當鼠標移至某個服務器監控的服務時,可以顯示圖表的預覽:

點擊齒輪后,彈出新頁面,顯示圖表的詳細情況,注意右邊可以把圖表輸出成PDF格式:

A、安裝相關環境
需要安裝rrdtool及相關工具,此工具編譯起來非常煩人,受不了的話可以從網上找第三方源。
B、安裝PNP4Nagios
下載后
./configure --with-nagios-user=nagios --with-nagios-group=nagcmd
make all
make install
make install-webconf
make install-config
make install-init
#使用下面這條命令可以替換所有的make命令
make fullinstall
C、配置PNP4Nagios
PNP4Nagios有三種工作模式,分別是Synchronous Mode、Bulk Mode和Bulk Mode with NPCD,下面以Synchronous Mode來配置PNP4Nagios。
修改Nagios的主配置文件
vi /usr/local/nagios/etc/nagios.cfg
process_performance_data=1
service_perfdata_command=process-service-perfdata
host_perfdata_command=process-host-perfdata
修改Nagios的command.cfg配置文件
vi /usr/local/nagios/etc/objects/commands.cfg
#增加以下兩個命令
#process-service-perfdata command definition
define command {
command_name process-service-perfdata
command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl
}
#process-host-perfdata command definition
define command {
command_name process-host-perfdata
command_line /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA
}
注意:commands.cfg已經定義了相應命令,需要先注釋掉。否則后面重啟Nagios時,會因為配置文件中命令重復而報錯。
D、檢查PNP4Nagios是否正確安裝
訪問http://ip/php4nagios,會進行一些必要的環境測試,如果頁面最下方出現[Your environment passed all requirements. Remove or rename the /usr/local/pnp4nagios/share/install.php file now.]這一行綠色的提示就表示PNP4Nagios環境已正確。
如果所有的環境都配置正確了,刪除或重命名install.php文件
mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/install.php.bak
E、將性能圖集成到nagios的web頁面中
vi /usr/local/nagios/etc/objects/templates.cfg
#在最后添加
define host {
name host-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_
register 0
}
define service {
name srv-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
register 0
}
讓PNP4Nagios顯示的性能圖表在Nagios的主機或服務中顯示,需要在定義主機和服務時加入host-pnp和srv-pnp配置實例。
具體修改文件視Nagios中定義而定,下面只是一個示例,主要的修改就是在use行加入相應的模板。
vi /usr/local/nagios/etc/server/linuxsever.cfg
define host{
use linux-server,host-pnp ; Name of host template to use
; This host definition will inherit all variables that are defined
; in (or inherited by) the linux-server host template definition.
host_name 192.168.1.106
alias 192.168.1.106
address 192.168.1.106
}
define service{
use generic-service,srv-pnp ; Name of service template to use
host_name 192.168.1.106
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
注:如果有多個主機和服務,每一個定義中都需要加入。
F、重啟Nagios服務
/etc/init.d/nagios restart
訪問http://ip/nagios,點擊主機或服務后面小太陽圖標就可查看相應圖表。
G、彈窗方式顯示性能圖表
上面的方法必須點擊主機或服務后面小太陽圖標才能查看相應的性能圖表,下面的方法可直接在Nagios頁面中以彈出窗口顯示性能圖表。
cp pnp4nagios-0.6.13/contrib/ssi/status-header.ssi /usr/local/nagios/share/ssi/
注:contrib/ssi/status-header.ssi在源代碼目錄中
status-header.ssi文件必須沒有執行權限
修改Nagios的模板文件
vi /usr/local/nagios/etc/objects/templates.cfg
define host {
name host-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 srv-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
register 0
}
注:如果按文中之前的方式定義過,請先注釋掉。
重啟Nagios服務
/etc/init.d/nagios restart
訪問http://ip/nagios,鼠標移動到主機或服務后面小太陽圖標上就會顯示相應的性能圖表。