用PNP生成Nagios监控图表教程

TangLu 未命名 2014-12-29 3664 0

Nagios本身对服务或主机的监控都是瞬时性的,无法记录一段时间内的数据和形成图表,只有通过日志文件来进行分析,这样会很繁琐,好在可以用PNP这个工具通过RRDtool将采集到的数据绘制成图表,显示主机或服务一段时间内的状况。


安装PNP前需要准备的环境:

1.整合好的Apache以及PHP环境,需支持GD\zlib\jpeg

2.安装PERL

3.安装RRDTool


PERL相关软件安装:

直接yum安装perl相关软件包



安装RRDTool:

下载源码包再编译安装,编译时没有多余选项,指定好/usr/local/rrtool目录后编译再make&make install即可,安装好了后可以进入目录看看是否有bin目录以及三个可执行的脚本,有的话就ok了

./configure 

--prefix=/usr/local/rrdtool 

--disable-tcl 

--disable-python

make && make install


如果出现configure : error:Please fix the library issues listed above and try again或其他错误,需要先安装以下依赖软件包再执行编译:

yum install libxml2-devel libpng-devel pkg-config glib pixman pango pango-devel freetype freetype-devel fontconfig cairo cairo-devel libart_lgpl libart_lgpl-devel -y


安装与配置PNP4nagios:

./configure    

--with-nagios-user=nagios        #PNP需要和Nagios关联,所以需要明确Nagios用户和用户组

--with-nagios-group=nagios        #同上

--with-rrdtool=/usr/local/rrdtool/bin/rrdtool        #指定rrdtool的安装路径

--with-perfdata-dir=/usr/local/nagios/share/perfdata        #指定Nagios生成数据的目录

make    all

make    install

make    install-config

make    install-init


PNP安装完成后在安装路径下会生成一些模板的配置文件,修改这些文件名使其生效

cp    process_perfdata.cfg-sample  process_perfdata.cfg

cp    npcd.cfg-sample  npcd.cfg

cp    rra.cfg-sample  rra.cfg

chown    -R nagios.nagios  *

    

配置Nagios,开启Nagios收集数据的功能

修改Nagios.cfg文件:

process_performance_data选项,值为1

去掉host_perfdata_command=process-host-perdata的注释
去掉service_perfdata_command=process-service-perdata的注释


定义一个用于生成图表的命令

修改commands.cfg文件增加以下内容(默认会有这几行,但是command_line的路径需要改为process_perfdata.pl所在路径):

# 'process-host-perfdata' command definition
define command{
        command_name    process-host-perfdata
        command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl
        }
# 'process-service-perfdata' command definition
define command{
        command_name    process-service-perfdata
        command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl
        }


增加nagios小太阳图标

修改templates.cfg文件,增加以下内容(小技巧:可以增加到默认的模板里):

define host {
name       host-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&
register   0
}

define service {
name       srv-pnp
action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
register   0
}

在监控的主机或者服务的配置文件里,使用上一步定义的模板即可(如果上一步是直接增加到模板配置文件里的,那么这里都不用再进行增加了)

QQ图片20141231132746.png            


最后一步就是设置apache的配置文件,追加以下内容:

Alias /pnp4nagios "/usr/local/pnp4nagios/share"
<Directory "/usr/local/pnp4nagios/share">
   Options None
   AllowOverride None
   Order allow,deny
   Allow from all
   AuthName "Nagios Access"
   AuthType Basic
   AuthUserFile /usr/local/nagios/etc/htpasswd.users
   Require valid-user
  <IfModule mod_rewrite.c>
   RewriteEngine On
   Options FollowSymLinks
   RewriteBase /pnp4nagios/
   RewriteRule ^(application|modules|system) - [F,L]
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule .* index.php/$0 [PT,L]
  </IfModule>
</Directory>


最后重启apache和nagios服务,再进入监控页面就可以看到对应的图标,点击后就会出现pnp4nagios绘图后的数据了

评论