lukyjyt 发表于 2016-8-29 10:14:10

为nagios装上pnp4nagios功能

nagios的安装不再赘述,直接在nagios服务端进行安装pnp4nagios软件
安装展示图形页面pnpnagios(rrdtool工具用来存储数据并画图,pnpnagios用来展示图形数据)
参考:http://docs.pnp4nagios.org/pnp-0.6/install
http://docs.pnp4nagios.org/pnp-0.6
tar xf pnp4nagios-0.6.25.tar.gz
cd pnp4nagios-0.6.25
yum install rrdtool rrdtool-perl -y
./configure
编译报错:
checking for Perl Module Time::HiRes... no
configure: error: Perl Module Time::HiRes not available
解决办法:
yum -y install perl-Time-HiRes

再次编译

./configure
make all
make install
make install-webconf
make install-config
make install-init
make fullinstall
安装后出现如下输出:
*** Configuration summary for pnp4nagios-0.6.25 03-01-2015 ***

General Options:
-------------------------         -------------------
Nagios user/group:                nagios nagios
Install directory:                /usr/local/pnp4nagios
HTML Dir:                         /usr/local/pnp4nagios/share
Config Dir:                     /usr/local/pnp4nagios/etc
Location of rrdtool binary:       /usr/bin/rrdtool Version 1.3.8
RRDs Perl Modules:                FOUND (Version 1.3008)
RRD Files stored in:            /usr/local/pnp4nagios/var/perfdata
process_perfdata.pl Logfile:      /usr/local/pnp4nagios/var/perfdata.log
Perfdata files (NPCD) stored in:/usr/local/pnp4nagios/var/spool

Web Interface Options:
-------------------------         -------------------
HTML URL:                         http://localhost/pnp4nagios
Apache Config File:               /etc/httpd/conf.d/pnp4nagios.conf


Review the options above for accuracy.If they look okay,
type 'make all' to compile.

由于nagios采用的是4.1.1,pnp4nagios采用的是0.6.25

在官方文档有好几种配置pnp4nagios的模式,但是采用sync的模式会一直收集不到数据,而报错,于是改用了Bulk Mode with NPCD,成功出图,这里分析配置过程:
参考:http://www.aboutmonitoring.com/installing-nagios-core-4-pnp4nagios-check_mk-nagvis-centos-7-redhat-7/
1、编辑nagios.cfg文件,修改
process_performance_data=0将这个值改为1
##### Values: 1 = process performance data, 0 = do not process performance data
enable_environment_macros=1

2、然后去掉下面两个注释,使之启用:
#host_perfdata_command=process-host-perfdata
#service_perfdata_command=process-service-perfdata

然后在nagios.cfg配置文件中加入以下:
# service performance data
#
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file

#
# host performance data starting with Nagios 3.0
#
host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file
各个文件的使用可以查看官方说明

3、修改commands.cfg
define command{
       command_name    process-service-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/service-perfdata /usr/local/pnp4nagios/var/spool/service-perfdata.$TIMET$
}

define command{
       command_name    process-host-perfdata-file
       command_line    /bin/mv /usr/local/pnp4nagios/var/host-perfdata /usr/local/pnp4nagios/var/spool/host-perfdata.$TIMET$
}

然后开启npcd服务:
/usr/local/pnp4nagios/bin/npcd -d -f /usr/local/pnp4nagios/etc/npcd.cfg

4、
# /etc/init.d/nagios checkconfig
Running configuration check...
OK.
# service httpd restart
停止 httpd:                                             [确定]
正在启动 httpd:
# /etc/init.d/nagios reload
Running configuration check...
Reloading nagios configuration...
done

5、浏览器访问

http://192.168.1.155/pnp4nagios/

出现报错:PHP GD extensionPHP GD extension not available
解决:
yum -y install php-gd

# /etc/init.d/nagios checkconfig
Running configuration check...
OK.
# service httpd restart
停止 httpd:                                             [确定]
正在启动 httpd:
# /etc/init.d/nagios reload
Running configuration check...
Reloading nagios configuration...
done

再看观察浏览器报错:

Your environment passed all requirements. Remove or rename the /usr/local/pnp4nagios/share/install.php file now.
解决办法:
mv /usr/local/pnp4nagios/share/install.php /usr/local/pnp4nagios/share/install.php.ignore

以上只是解决了收集数据的功能,还必须在每一个host、service上展示相应的图形
设置如下:
编辑templates.cfg模板文件,创建host和service支持pnp4nagios功能:
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
}

定义完成之后,最后只需在定义的hosts、services配置文件中加入下操作:
define host{
      use                     linux-server,host-pnp    ; Name of host templates to use
                                                         ; This host definition will inherit all variables that are defined
                                                         ; in (or inherited by) the linux-server host template definition.
      host_name               localhost
      alias                   localhost
      address               127.0.0.1
      }

define service{
      use                     local-service,srv-pnp   ; Name of service template to use
      host_name               localhost
      service_description   PING
      check_command         check_ping!100.0,20%!500.0,60%
      }
于是整个配置工作完成,访问浏览器出图如下






页: [1]
查看完整版本: 为nagios装上pnp4nagios功能