nagios 安装完了,只有数字输出监控内容是不是不炫丽呢?是不是想像CACTI 一样出炫丽的图呢?那你可以选择PNP,他可以满足你的需求,只要你的脚本符合perfdata规则,那么rrdtool就可以出数据,PNP就可以用图给你画出来。


1.下载安装 pnp4nagios-0.6.6.tar.gz

nagios$>wgethttp://down1.chinaunix.net/distfiles/pnp4nagios-0.6.14.tar.gznagios$>tarzxvfpnp4nagios-0.6.14.tar.gznagios$>cdpnp4nagios-0.6.14nagios$>./configure--with-nagios-user=apache--with-nagios-group=apachenagios$>makeallnagios$>makeinstallnagios$>makeinstall-webconfnagios$>makeinstall-confignagios$>makeinstall-init

上面4步可以直接用make fullinstall一步完成


返回HTML URL: http://localhost/pnp4nagios

Apache Config File: /etc/httpd/conf.d/pnp4nagios.conf


注意修改/etc/httpd/conf.d/pnp4nagios.conf中的验证

重启Http服务,访问http://localhost/pnp4nagios

如果提示“PHP GD extension PHP GD extension not available” yum install php-gd -y ,然后再重启http服务即可

去除启动自检页面 mv /usr/local/pnp4nagios/share/install.php mv /usr/local/pnp4nagios/share/install.php.bak


2.创建配置文件

nagios$>cd/usr/local/pnp4nagios/etcnagios$>mvmisccommands.cfg-samplemisccommands.cfgnagios$>mvnagios.cfg-samplenagios.cfgnagios$>mvnpcd.cfg-samplenpcd.cfgnagios$>mvprocess_perfdata.cfg-sampleprocess_perfdata.cfgnagios$>mvrra.cfg-samplerra.cfgnagios$>cdpagesnagios$>mvweb_traffic.cfg-sampleweb_traffic.cfgnagios$>cd../check_commandsnagios$>mvcheck_all_local_disks.cfg-samplecheck_all_local_disks.cfgnagios$>mvcheck_nrpe.cfg-samplecheck_nrpe.cfgnagios$>mvcheck_nwstat.cfg-samplecheck_nwstat.cfg

3. 重启服务

nagios $> /etc/init.d/npcd restart

4.修改 nagios 的配置文件.打开performance_data

nagios$>cd/usr/local/nagios/etcnagios$>vimnagios.cfgprocess_performance_data=1host_perfdata_command=process-host-perfdataservice_perfdata_command=process-service-perfdata

5.修改 commands.cfg

nagios $> cd /usr/local/nagios/etc/objects

nagios $> vim commands.cfg

##添加

#'process-host-perfdata'commanddefinitiondefinecommand{command_nameprocess-host-perfdatacommand_line/usr/local/pnp4nagios/libexec/process_perfdata.pl-dHOSTPERFDATA#注意,此处后面要加-dHOSTPERFDATA,不然在web界面点localhost边上的小太阳是报错“XMLfile"/usr/local/pnp4nagios/var/perfdata/66/_HOST_.xml"notfound.ReadFAQonline”}#'process-service-perfdata'commanddefinitiondefinecommand{command_nameprocess-service-perfdatacommand_line/usr/local/pnp4nagios/libexec/process_perfdata.pl}

6. 添加小太阳模版,镶嵌在nagios页面上。

nagios $> vim templates.cfg

##在最后添加definehost{namehost-pnpaction_url/pnp4nagios/graph?host=$HOSTNAME$&srv=_HOST_register0}defineservice{namesrv-pnpaction_url/pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$register0}

7,修改 hosts.cfg 和 色services.cfg

#修改hosts.cfg

nagios$>vimhosts.cfgdefinehost{uselinux-server,host-pnphost_nameeric.comaliaseric.comaddress192.168.6.101}#修改services.cfgdefineservice{uselocal-service,srv-pnphost_nameeric.comservice_descriptionPINGcheck_commandcheck_ping!100.0,20%!500.0,60%}

8.重启 nagios 服务

nagios $> /etc/init.d/nagios restart

9.重启 http服务



10.实现原理

PNP出图的数据来自脚本在系统打印出来的字符串,而Nagios源码提供的check_procs脚本系统输出字符串不符合数据格式规范(没有包含性能数据),所以就无法出图了。

在源码中加上性能数据的输出,这样就可以出图了。


11.nagios性能数据格式

例:cpu_user:OK-0% cpu_system:OK-0% cpu_idle:WARNING-99>70% | cpu_user=0%;120;90; cpu_system=0%;100;70; cpu_idle=99%;100;70;

其中性能数据为|后面的斜体部分,格式如下:

‘label’=value[UOM];[warn];[crit];[min];[max]

注意事项:

1.空格分割标签/值对 例如cpu_user=0%;100;90; cpu_system=0%;100;70; cpu_idle=99%;100;70;

2.label可以包含任何字符

3.单引号可省略,如果label中使用空格、等号和单引号,则需要需要单引号把label括起来。例如’a ‘b’ = c’=0%;100;90;

4.标签可以为任意长度,但最好少于19个字符并且唯一,(RRD有相关方面的限制),并且需要注意NRPE的返回值的限制(译者:好像是4K限制)

5.两个单引号为指定的转义字符?

6.warn, crit, min or max 可以为空(比如,如果没有定义阀值,最大最小值则不适用)并且最后的分号可以省略

7.如果UOM为%,则不需要最大最小值

8.value, min and max只能为负号“-” “0到9” 和小数点“.” 并且单位必须统一 例如:cpu_user=0.5%;99.9;-9;

9.warn and crit必须在某个区间格式,参见2.5章。单位也必须统一

10.UOM必须为以下其中之一

1.如果未指定,默认为数字(整数和浮点数)(比如用户数,进程数,负载等)

2. s – 秒 (可以为纳秒us或毫秒ms) cpu_user=0s;100;90; cpu_system=0us;100;70; cpu_idle=0ms;100;70;

3. % – 百分号 cpu_user=0%;100;90; cpu_system=0%;100;70; cpu_idle=99%;100;70;

4. B – 字节(可可以是KB ,MB TB)cpu_user=0KB;100;90; cpu_system=0MB;100;70; cpu_idle=0B;100;70;

5. c – 一个计数器 (比如网卡的流量)cpu_user=10c;100;90;