# tar zxvf rrdtool-1.4.5.tar.gz && cd rrdtool-1.4.5 && ./configure --prefix=/usr/local/rrdtool && make && make install 2、安装pnp tar zxvf pnp-0.4.13.tar.gz && cd pnp-0.4.13 && ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-rrdtool=/usr/local/rrdtool/bin/rrdtool --with-perfdata-dir=/usr/local/nagios/share/perfdata && make all && make install && make install-config && make install-init 安装完成,PNP默认文件放置情况如下: General Options: ----------------------------- ------------------- Nagios user/group: nagios nagios Install directory: /usr/local/nagios HTML Dir: /usr/local/nagios/share/pnp Config Dir: /usr/local/nagios/etc/pnp Path to rrdtool: /usr/local/bin/rrdtool (Version 1.4.5) RRDs Perl Modules: *** NOT FOUND *** RRD Files stored in: /usr/local/nagios/share/perfdata process_perfdata.pl Logfile: /usr/local/nagios/var/perfdata.log Perfdata files (NPCD) stored in: /usr/local/nagios/var/spool/perfdata/ ps:RRDs Perl Modules: *** NOT FOUND *** 在这里我遇到一个很奇怪的问题,由于没有安装rrds perl模块,导致pnp出图的数据是乱码,附上图片: 后来通过yum install rrdtool-perl就恢复正常了,有图有真相 3、配置PNP,创建默认配置文件 # cd /usr/local/nagios/etc/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 /usr/local/nagios/etc/pnp 修改process_perfdata.cfg文件 vim /usr/local/nagios/etc/pnp/process_perfdata.cfg LOG_FILE = /usr/local/nagios/var/perfdata.log # # Loglevel 0=silent 1=normal 2=debug # LOG_LEVEL = 2 这里将日志级别改为2,即debug模式。 4、修改Nagios配置文件 1、增加小太阳图标 修改templates.cfg,增加一个定义PNP的host和service。修改后的内容如下: define host { name host-pnp register 0 #action_url /nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_ action_url /nagios/pnp/index.php?host=$HOSTNAME$ process_perf_data 1 } ps:我这里只添加了主机的小太阳图标,每当添加某主机的服务的时候,都会自动生成该服务的数据文件 2、修改commands.cfg,定义host-perfdata define command{ command_name process-host-perfdata command_line /usr/local/nagios/libexec/process_perfdata.pl } 3、让主机引用host-perfdata # cat hosts.cfg define host{ use host-pnp host_name xx alias xx(x) address xx contact_groups shyygroup check_command check-host-alive max_check_attempts 5 notification_interval 10 notification_period 24x7 notification_options d,u,r } 4、重启nagios服务后,在这个目录下会产生2个主机的目录 ls /usr/local/nagios/share/perfdata/ xxjshyy xxysix cd xxjshyy -rw-rw-r-- 1 nagios nagioscmd 1151496 Dec 21 16:13 Current_Load.rrd -rw-rw-r-- 1 nagios nagioscmd 12165 Dec 21 16:13 Current_Load.xml -rw-rw-r-- 1 nagios nagioscmd 384952 Dec 21 16:11 Java_9800.rrd -rw-rw-r-- 1 nagios nagioscmd 11208 Dec 21 16:11 Java_9800.xml -rw-rw-r-- 1 nagios nagioscmd 384952 Dec 21 16:12 Java_9801.rrd -rw-rw-r-- 1 nagios nagioscmd 11208 Dec 21 16:12 Java_9801.xml -rw-rw-r-- 1 nagios nagioscmd 384952 Dec 18 17:35 mysql_3306.rrd -rw-rw-r-- 1 nagios nagioscmd 384952 Dec 21 16:11 Mysql_3306.rrd -rw-rw-r-- 1 nagios nagioscmd 11199 Dec 18 17:35 mysql_3306.xml -rw-rw-r-- 1 nagios nagioscmd 11202 Dec 21 16:11 Mysql_3306.xml -rw-rw-r-- 1 nagios nagioscmd 384952 Dec 21 16:12 Nrpe_5666.rrd -rw-rw-r-- 1 nagios nagioscmd 11198 Dec 21 16:12 Nrpe_5666.xml -rw-rw-r-- 1 nagios nagioscmd 768224 Dec 21 16:14 Ping.rrd -rw-rw-r-- 1 nagios nagioscmd 11702 Dec 21 16:14 Ping.xml -rw-rw-r-- 1 nagios nagioscmd 384952 Dec 21 16:14 sda3.rrd -rw-rw-r-- 1 nagios nagioscmd 11170 Dec 21 16:14 sda3.xml -rw-rw-r-- 1 nagios nagioscmd 1534768 Dec 21 16:13 traffic.rrd -rw-rw-r-- 1 nagios nagioscmd 12701 Dec 21 16:13 traffic.xml -rw-rw-r-- 1 nagios nagioscmd 384952 Dec 21 16:12 Users.rrd -rw-rw-r-- 1 nagios nagioscmd 11120 Dec 21 16:12 Users.xml ps:点击小太阳也能会报以下这种错误: Deprecated: Assigning the return value of new by reference is deprecated in /usr/local/nagios/share/pnp/include/function.inc.php on line 1026 Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /usr/local/nagios/share/pnp/include/function.inc.php on line 557 Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /usr/local/nagios/share/pnp/include/function.inc.php on line 559 Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /usr/local/nagios/share/pnp/include/function.inc.php on line 563 Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /usr/local/nagios/share/pnp/include/function.inc.php on line 565 Deprecated: Function eregi() is deprecated in /usr/local/nagios/share/pnp/include/function.inc.php on line 1502 解决: 这是因为pnp-0.4.14对PHP 5.3.0的支持还不是很好,其中有几个bug需要修改: 根据错误提示打开 vi /usr/local/nagios/share/pnp/include/function.inc.php 找到行1502修改为 if($level == 2 && $type == "complete" && preg_match("/^NAGIOS_/",$tag)){ 还会有两处错误需要修改,根据提示找到对应行进行修改: line 556: 添加:date_default_timezone_set('UTC'); line 1026:修改为$pdf = new PDF('P', 'mm', 'A4'); 删除& 再重新重启nagios,应该就能看到图表了 转载请保留固定链接: https://linuxeye.com/configuration/1079.html |