配置Nconf管理NAGIOS更简单且效率更高

 

参照上一篇NAGIOS之SNMP方式监控系统的博文,安装好LAMP环境和NAGIOS.

 

一.本文的案例所需软件

nconf-1.2.6-0.tgz

pnp4nagios-0.6.18.tar.gz

NSCLIENT++

cgilib-0.6.tar.gz

rrdtool

pnp4nagios-0.6.7.tar.gz

 

二.安装nconf

1.解压安装包

tar -xf nconf-1.2.6-0.tgz -C /var/www/html/

2.配置nconf所需的数据库级授权用户

mysql> CREATE DATABASE nconf;
Query OK, 1 row affected (0.01 sec)

mysql> GRANT ALL ON nconf.* TO 'nconf'@'localhost' IDENTIFIED BY 'nconf';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

3.修改目录用户权限

chown -R apache.apache config/ temp/ static_cfg/ output/

4.访问nconf http://ip/nconf

监控系统nagios+nconf+pnp4_第1张图片

监控系统nagios+nconf+pnp4_第2张图片

监控系统nagios+nconf+pnp4_第3张图片

 

监控系统nagios+nconf+pnp4_第4张图片

监控系统nagios+nconf+pnp4_第5张图片

…………

5.按照需求删除以安装文件

6.测试登录

监控系统nagios+nconf+pnp4_第6张图片

二.配置NCONF

1.无法连接数据库

监控系统nagios+nconf+pnp4_第7张图片

2.配置NCONF链接数据库及执行脚本

ln -s /usr/local/nagios/bin/nagios bin/nagios
chmod +x /var/www/html/nconf/bin/generate_config.pl 
chown -R apache.apache bin/
chmod +x /usr/local/nagios/bin/nagios
chmod +x /var/www/html/nconf/ADD-ONS/deploy_local.sh

vim /var/www/html/nconf/ADD-ONS/deploy_local.sh //根据环境修改里面的nagios路径,此处无需修改

 

监控系统nagios+nconf+pnp4_第8张图片

3.执行脚本,在/usr/local/nagios/etc/下生成两个目录Default_collector 与global 用于存放通用nconf定义的监控资源

cd ADD-ONS/
./deploy_local.sh
Running configuration check...done.
Reloading nagios configuration...done

4.添加至crontab中让其每隔一分钟执行一次

*/1 * * * *  /bin/sh /var/www/html/nconf/ADD-ONS/deploy_local.sh

 

5.修改nagios.cfg配置文件加注释,添加如下两行

vim /usr/local/nagios/etc/nagios.cfg

监控系统nagios+nconf+pnp4_第9张图片

监控系统nagios+nconf+pnp4_第10张图片

6.重启Nagios

image

7.以上Nconf 配置完成,安装客户端手动添加监控资源测试

8.在被监控机上安装Windows客户端.

监控系统nagios+nconf+pnp4_第11张图片

9.配置ini文件填入nagios地址,后重启客户端

监控系统nagios+nconf+pnp4_第12张图片

10.添加监控资源

监控系统nagios+nconf+pnp4_第13张图片

 

监控系统nagios+nconf+pnp4_第14张图片

监控系统nagios+nconf+pnp4_第15张图片

 

11.此处省略只列出各属性的参数值

CPU

监控系统nagios+nconf+pnp4_第16张图片

Memory

监控系统nagios+nconf+pnp4_第17张图片

12.自定义端口

监控系统nagios+nconf+pnp4_第18张图片

13.配置邮件告警,将等三方程序sendEmail 传入监控机 并添加执行权限(用法请参考上一篇NAGIOS之SNMP监控的博文,这里不再赘述)

监控系统nagios+nconf+pnp4_第19张图片

14.分别填入以下内容

监控系统nagios+nconf+pnp4_第20张图片

/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/local/bin/sendEmail -f [email protected] -t $CONTACTEMAIL$ -s 1.1.1.1 -u "** $NOTIFICATIONTYPE$ Address: $HOSTADDRESS$ is $HOSTSTATE$ **"

/usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/local/bin/sendEmail -f [email protected] -t $CONTACTEMAIL$ -s 1.1.1.1 -u "** $NOTIFICATIONTYPE$ Address:$HOSTADDRESS$ ServiceAlert:$SERVICEDESC$ is $SERVICESTATE$ **"

15.测试邮件通知功能,这里先定义参数值为20 警告,30严重 (邮件通知有点延迟)

监控系统nagios+nconf+pnp4_第21张图片

image

监控系统nagios+nconf+pnp4_第22张图片

三.安装PNP4NAGIOS

1.安装cgilib

tar -zxvf cgilib-0.6.tar.gz

cd cgilib-0.6

make

cp aux.h /usr/include/

cp cgi.h /usr/include/

cp libcgi.a /usr/lib/

2.安装rrdtool

yum –y localinstall rrdtool-*

image

3.安装pnp4nagios

cd /usr/lib/perl5/5.8.8/i386-linux-thread-multi

cp /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/RRDs.pm /usr/lib/perl5/5.8.8/i386-linux-thread-multi/

测试: perl -MRRDs -le 'print q(ok!)'

注:以上步骤采用rpm包安装rrdtool时请忽略

tar -zxvf pnp4nagios-0.6.18.tar.gz

cd pnp4nagios-0.6.18/

./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-rrdtool=/usr/bin/rrdtool --with-perfdata-dir=/usr/local/nagios/share/perfdata

make;make all

make install

make install-webconf(可不装)

make install-config

make install-init(可不装)

(make fullinstall-本命令安装上述所有步骤)

4.配置apache

vi /etc/httpd/conf/httpd.conf

末尾添加如下信息

Alias /pnp4nagios "/usr/local/pnp4nagios/share"

AllowOverride None

Order allow,deny

Allow from all

AuthName "Nagios Access"

AuthType Basic

AuthUserFile /usr/local/nagios/etc/htpasswd.user

Require valid-user

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]

保存后重启apache服务: service httpd restart

http://192.168.1.109/pnp4nagios/index.php

image

rm -rf /usr/local/pnp4nagios/share/install.php

 

5.配置NCONF支持PNP

监控系统nagios+nconf+pnp4_第23张图片

监控系统nagios+nconf+pnp4_第24张图片

6.填入以下内容

/pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_

监控系统nagios+nconf+pnp4_第25张图片

监控系统nagios+nconf+pnp4_第26张图片

7.填入以下内容

/pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$'class='tips'rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$

监控系统nagios+nconf+pnp4_第27张图片

8.分别真入以下内容

process-host-perfdata

/usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl -d  HOSTPERFDATA

 

process-service-perfdata

/usr/bin/perl /usr/local/pnp4nagios/libexec/process_perfdata.pl -d  HOSTPERFDATA

 

9.创建host-pnp 及srv-php 模板

监控系统nagios+nconf+pnp4_第28张图片

监控系统nagios+nconf+pnp4_第29张图片

10.分别选择上面定义的action_url,执行测试配置文件选项无报错稍后即可出图

监控系统nagios+nconf+pnp4_第30张图片

监控系统nagios+nconf+pnp4_第31张图片

监控系统nagios+nconf+pnp4_第32张图片