Nagios圖像繪製插件PNP4Nagios部署和測試

注:本篇博客Nagios版本Nagios-3.5.1php

1. 概述

本篇博客主要介紹在Nagios3.5和Nagios4.4系統中部署pnp4nagios0.4和pnp4nagios0.6。
Nagios展現的實時數據,無歷史數據存儲和展現功能。經過pnp4nagios來實現Nagios歷史數據的繪製。node

2. 關於PNP4Nagios

PNP4Nagios目前有兩個主要版本0.6版本和0.4版本。linux

3. 部署PNP4Nagios

PNP4Nagios利用了rrdtool工具來收集和處理圖像。所以系統中須要安裝rrdtool以及rrdtool-perl模塊。
有關rrdtool的部署,本篇不作詳細介紹。參閱博客《RRDTool的部署和測試.md》,博客園地址:ios

3.1 下載PNP4Nagios

官方網站:https://docs.pnp4nagios.org/
注意官方網站的提示,PNP4Nagios的Broker Module模式沒法應用在Nagios Core 4.x上
web

3.2 編譯安裝

執行命令解壓: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的編譯和安裝。工具

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

相關文章
相關標籤/搜索