天天看點

為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

      command_name    process-host-perfdata

      command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl -d HOSTPERFDATA

注意:commands.cfg已經定義了相應指令,需要先注釋掉。否則後面重新開機Nagios時,會因為配置檔案中指令重複而報錯。

D、檢查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$

讓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

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的模闆檔案

  action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_

  action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$

注:如果按文中之前的方式定義過,請先注釋掉。

重新開機Nagios服務

本文轉自 安安安安森  51CTO部落格,原文連結:http://blog.51cto.com/smallc/1230673,如需轉載請自行聯系原作者