配置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
…………
5.按照需求刪除以安裝文件
6.測試登錄
二.配置NCONF
1.無法連接數據庫
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路徑,此處無需修改
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
6.重啓Nagios
7.以上Nconf 配置完成,安裝客戶端手動添加監控資源測試
8.在被監控機上安裝Windows客戶端.
9.配置ini文件填入nagios地址,後重啓客戶端
10.添加監控資源
11.此處省略只列出各屬性的參數值
CPU
Memory
12.自定義端口
13.配置郵件告警,將等三方程序sendEmail 傳入監控機 並添加執行權限(用法請參考上一篇NAGIOS之SNMP監控的博文,這裏不再贅述)
14.分別填入以下內容
/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嚴重 (郵件通知有點延遲)
三.安裝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-*
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"
<Directory "/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
<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服務: service httpd restart
http://192.168.1.109/pnp4nagios/index.php
rm -rf /usr/local/pnp4nagios/share/install.php
5.配置NCONF支持PNP
6.填入以下內容
/pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_' class='tips' rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=_HOST_
7.填入以下內容
/pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$'class='tips'rel='/pnp4nagios/index.php/popup?host=$HOSTNAME$&srv=$SERVICEDESC$
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 模板
10.分別選擇上面定義的action_url,執行測試配置文件選項無報錯稍後即可出圖