nagios+nginx+pnp4nagios

LNMP之前已安裝

 

1、Nginx對Perl的CGI支持

<span style="color:#333333">tar xzf FCGI-0.74.tar.gz
cd FCGI-0.74
perl Makefile.PL
make && make install
cd ../
tar xzf FCGI-ProcManager-0.24.tar.gz
cd FCGI-ProcManager-0.24
perl Makefile.PL
make && make install
cd ../
wget http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/IO-1.25.tar.gz
tar zxvf IO-1.25.tar.gz
cd IO-1.25
perl Makefile.PL
make && make install
cd ../

#安裝 perl-IO-String
 yum install perl-IO-String
 #安裝IO::ALL模塊
wget http://search.cpan.org/CPAN/authors/id/I/IN/INGY/IO-All-0.41.tar.gz
tar zxvf IO-All-0.41.tar.gz
cd IO-All-0.41
perl Makefile.PL
make && make install
cd ../
wget http://www.mike.org.cn/wp-content/uploads/2011/07/perl-fcgi.zip
unzip perl-fcgi.zip
cp  perl-fcgi.pl /usr/local/nginx/
#修改腳本權限
chmod 755 /usr/local/nginx/perl-fcgi.pl

vim /usr/local/nginx/start_perl_cgi.sh
#!/bin/bash
#set -x
dir=/usr/local/nginx/
stop ()
{
#pkill  -f  $dir/perl-fcgi.pl
kill $(cat $dir/logs/perl-fcgi.pid)
rm $dir/logs/perl-fcgi.pid 2>/dev/null
rm $dir/logs/perl-fcgi.sock 2>/dev/null
echo "stop perl-fcgi done"
}
start ()
{
rm $dir/now_start_perl_fcgi.sh 2>/dev/null
chown www.www $dir/logs
echo "$dir/perl-fcgi.pl -l $dir/logs/perl-fcgi.log -pid $dir/logs/perl-fcgi.pid -S $dir/logs/perl-fcgi.sock" >>$dir/now_start_perl_fcgi.sh
chown www.www $dir/now_start_perl_fcgi.sh
chmod u+x $dir/now_start_perl_fcgi.sh
sudo -u www $dir/now_start_perl_fcgi.sh
echo "start perl-fcgi done"
}
case $1 in
stop)
stop
;;
start)
start
;;
restart)
stop
start
;;
esac
#修改腳本權限
chmod 755 /usr/local/nginx/start_perl_cgi.sh
#啓動腳本
/usr/local/nginx/start_perl_cgi.sh start
</span>
<span style="color:#333333"><strong>2、安裝nagios</strong>
groupadd nagcmd
usermod -a -G nagcmd nagios
usermod -a -G nagcmd www
tar xzf nagios-3.5.0.tar.gz
cd nagios
yum -y install gd-devel
./configure --prefix=/usr/local/nagios --with-command-group=nagcmd
make all
make install #用於安裝主要的程序、CGI及HTML文件
make install-init #用於生成init啓動腳本
make install-config #用於安裝示例配置文件
make install-commandmode</span>
3、安裝插件
tar xzf nagios-plugins-1.4.16.tar.gz
cd nagios-plugins-1.4.16
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
make && make install
cd ../
tar xzf nrpe-2.14.tar.gz
cd nrpe-2.14
./configure
make && make install
cp sample-config/nrpe.cfg /usr/local/nagios/etc/
chown nagios.nagios /usr/local/nagios/etc/nrpe.cfg
cd ../

tar xzf nagios-plugins-1.4.16.tar.gz
cd nagios-plugins-1.4.16
./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
make && make install
cd ../
tar xzf nrpe-2.14.tar.gz
cd nrpe-2.14
./configure
make && make install
cp sample-config/nrpe.cfg /usr/local/nagios/etc/
chown nagios.nagios /usr/local/nagios/etc/nrpe.cfg
cd ../
4、安裝pnp4nagios
yum install rrdtool gd gd-devel php-gd
#tar -zxvf php4nagios-*.tar.gz 
#cd php4nagios 
#./configure –with-nagios-user=nagios –with-nagios-group=nagios (如果單獨編譯安裝的rrdtoool,則使用–with-rrdtool=/usr/local/rrdtool-1.2.xx/bin/rrdtool這樣的形式) 
#make all 
#make install 
#make install-webconf 
#make install-config 
#make install-init 

yum install rrdtool gd gd-devel php-gd
#tar -zxvf php4nagios-*.tar.gz 
#cd php4nagios 
#./configure –with-nagios-user=nagios –with-nagios-group=nagios (如果單獨編譯安裝的rrdtoool,則使用–with-rrdtool=/usr/local/rrdtool-1.2.xx/bin/rrdtool這樣的形式) 
#make all 
#make install 
#make install-webconf 
#make install-config 
#make install-init 

 

 

5、配置pnp4nagios

 

 使用 Bulk Mode方式 
 vim /usr/local/nagios/etc/nagios.cfg
  process_performance_data=1   #修改
  #添加
# service performance data
#
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tSERVICEDESC::$SERVICEDESC$\tSERVICEPERFDATA::$SERVICEPERFDATA$\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$\tSERVICESTATE::$SERVICESTATE$\tSERVICESTATETYPE::$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file

#
# host performance data starting with Nagios 3.0
# 
host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\tTIMET::$TIMET$\tHOSTNAME::$HOSTNAME$\tHOSTPERFDATA::$HOSTPERFDATA$\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\tHOSTSTATE::$HOSTSTATE$\tHOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file
<span style="color:#333333">vim  /usr/local/nagios/etc/objects/commands.cfg
define command{
       command_name    check_nrpe
       command_line    $USER1$/check_nrpe-H $HOSTADDRESS$ -c $ARG1$
} #這一段放在上面即可
 
如下:同步模式設定方法添加到末尾就可以,記住在這個配置文件裏面, 默認有這個配置,需要找到註釋掉,然後將下面的配置添加,如果不註釋掉,在你檢查nagios的配置文件的時候會報錯
 
define command{
       command_name    process-service-perfdata-file
       command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/service-perfdata
}
 
define command{
       command_name    process-host-perfdata-file
       command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl --bulk=/usr/local/pnp4nagios/var/host-perfdata
}  


vim /usr/local/nagios/etc/objects/templates.cfg
define host {
  name       host-pnp
  action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=_HOST_
  register  0
}
define service {
  name       service-pnp
  action_url /pnp4nagios/index.php/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
  register  0
}</span>
<span style="color:#333333"><strong>6、配置nginx</strong>

server {
    listen       80;
    server_name  nagios.zhibo.tv;
    auth_basic "Nagios Access"; 
    auth_basic_user_file /usr/local/nagios/etc/htpasswd.users;
    root   /usr/local/nagios/share;

    location / {
        root   /usr/local/nagios/share;
        index  index.html index.htm index.php;
    }

    location ~ .*\.(php|php5)?$
    {
      root /usr/local/nagios/share;
      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      include fastcgi.conf;
    }

    location /nagios {
        alias /usr/local/nagios/share;
    }

    location /cgi-bin/images {
        alias /usr/local/nagios/share/images;
    }

    location /cgi-bin/stylesheets {
        alias /usr/local/nagios/share/stylesheets;
    }

    location /cgi-bin {
        alias /usr/local/nagios/sbin;
    }

    location ~ .*\.(cgi|pl)?$
    {
      gzip off;
      root   /usr/local/nagios/sbin;
      rewrite ^/nagios/cgi-bin/(.*)\.cgi /$1.cgi break;
      fastcgi_pass  unix:/usr/local/nginx/logs/perl-fcgi.sock;
      fastcgi_index index.cgi;
      include fastcgi.conf;
      fastcgi_read_timeout   60;
    }
location /pnp4nagios {
        alias /usr/local/pnp4nagios/share;
        index index.php;
        try_files $uri $uri/ @pnp4nagios;
        }
location @pnp4nagios {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index       index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        include        fastcgi_params;
        fastcgi_param SCRIPT_FILENAME /usr/local/pnp4nagios/share/index.php;
        }
}
</span>
<span style="color:#333333">  指定SSH監控端口號 :
    check_command                   check_ssh! -p 38383!192.168.1.16</span>
<span style="color:#333333"><strong>7、在被監控機上</strong>

    a.增加用戶
    #useradd nagios -s /sbin/nologin

    b.安裝Nagios插件
# tar zxvf nagios-plugins-1.4.16.tar.gz
# cd nagios-plugins-1.4.16
# ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios --with-nagios-group=nagios
# make && make install
    這一步完成後會在/usr/local/nagios/下生成三個目錄include、libexec和share。

    c.安裝NRPE
# wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz
# tar zxvf nrpe-2.13.tar.gz
# cd nrpe-2.13
# ./configure
make all
    接下來安裝NRPE插件,daemon和示例配置文件
    c.1 安裝check_nrpe	監控機需要安裝check_nrpe這個插件,被監控機並不需要,我們在這裏安裝它只是爲了測試目的。
[root@node2 nrpe-2.13]# make install-plugin

     c.2 安裝deamon
[root@node2 nrpe-2.13]# make install-daemon

    c.3 安裝配置文件
[root@node2 nrpe-2.13]# make install-daemon-config

     按照安裝文檔的說明,是將NRPE deamon作爲xinetd下的一個服務運行的。在這樣的情況下xinetd就必須要先安裝好,不過一般系統已經默認安裝了。
	 yum install -y xinetd
     d.安裝xinetd腳本
[root@node2 nrpe-2.13]# make install-xinetd

    可以看到創建了這個文件/etc/xinetd.d/nrpe
    編譯這個腳本:添加監控服務器IP,監控和被監控端都添加
[root@node2 ~]# vi /etc/xinetd.d/nrpe 
   only_from       = 192.168.11.164 127.0.0.1
vi /usr/local/nagios/etc/nrpe.cfg
   allowed_hosts=192.168.1.115,127.0.0.1,192.168.1.113

編輯/etc/services文件,增加NRPE服務
[root@node2 ~]# tail -n 4 /etc/services 
iqobject    48619/tcp            # iqobject
iqobject    48619/udp            # iqobject
# Local services
nrpe            5666/tcp                        #nrpe

重啓xinetd服務
[root@node2 ~]# service xinetd restart
Stopping xinetd:                                           [  OK  ]
Starting xinetd:                                           [  OK  ]
     查看NRPE是否已經啓動
[root@node2 ~]# netstat -an|grep 5666
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN      

 使用上面在被監控機上安裝的check_nrpe 這個插件測試NRPE 是否工作正常。
    # /usr/local/nagios/libexec/check_nrpe -H 127.0.0.1</span>
<span style="color:#333333"><strong>CPU警告</strong>
vi /usr/local/nagios/etc/nrpe.cfg
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 300 -c 500
</span>
添加CPU、內存、網卡使用率監控
cd /usr/local/nagios/libexec/ 添加監控腳本到目錄
chmod +x 添加執行權限
vi /usr/local/nagios/etc/nrpe.cfg  #添加命令
command[check_used_mem]=/usr/local/nagios/libexec/check_used_mem.sh -w 75 -c 85
command[check_cpu]=/usr/local/nagios/libexec/check_cpu.sh -w 60 -c 80
command[check_traffic]=/usr/local/nagios/libexec/check_traffic.sh  -V 2c -C cool
you -H 127.0.0.1 -I 2 -w20,30 -c40,50 -K -B

command[check_users]=/usr/local/nagios/libexec/check_users -w 4 -c 6
command[check_load]=/usr/local/nagios/libexec/check_load -w 10,5,3 -c 15,10,5
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200 
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/vda1
command[check_disk_data]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/vdb
command[check_used_mem]=/usr/local/nagios/libexec/check_used_mem.sh -w 75 -c 85
command[check_cpu]=/usr/local/nagios/libexec/check_cpu.sh -w 60 -c 80
command[check_traffic]=/usr/local/nagios/libexec/check_traffic.sh  -V 2c -C coolyou -H 127.0.0.1 -I 2 -w1000,1000 -c1500,1500 -K -B
command[check_ping]=/usr/local/nagios/libexec/check_ping -H 123.59.82.243 -w 100.0,20% -c 200.0,50%

服務器端添加php文件到cd /usr/local/pnp4nagios/share/templates.dist/
cd /usr/local/pnp4nagios/share/templates.dist/
網卡使用率監控需snmp
yum install -y net-snmp*
vi /etc/snmp/snmpd.conf  #替換內容 ,第二行爲設置密碼
pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat
com2sec local   localhost       coolyou
group   MyRWGroup       v1      local
group   MyRWGroup       v2c     local
group   MyRWGroup       usm     local
group   MyROGroup       v1      lan
group   MyROGroup       v2c     lan
group   MyROGroup       usm     lan
view all    included  .1                               80
access MyROGroup ""      any       noauth    exact      all    none   none
access MyRWGroup ""      any       noauth    exact      all    all    all

/etc/init.d/snmpd start
./check_traffic.sh -V 2c -C coolyou -H 127.0.0.1 -L    #檢查網卡號
./check_traffic.sh -V 2c -C coolyou -H 127.0.0.1 -I 2 -w200,300 -c400,500 -K -B      #-I加網卡號 -C加密碼 
chown nagios:nagios /var/tmp/check_traffic ...   
chkconfig snmpd --level 2345 onpass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat
com2sec local   localhost       coolyou
group   MyRWGroup       v1      local
group   MyRWGroup       v2c     local
group   MyRWGroup       usm     local
group   MyROGroup       v1      lan
group   MyROGroup       v2c     lan
group   MyROGroup       usm     lan
view all    included  .1                               80
access MyROGroup ""      any       noauth    exact      all    none   none
access MyRWGroup ""      any       noauth    exact      all    all    all

/etc/init.d/snmpd start
./check_traffic.sh -V 2c -C coolyou -H 127.0.0.1 -L    #檢查網卡號
./check_traffic.sh -V 2c -C coolyou -H 127.0.0.1 -I 2 -w200,300 -c400,500 -K -B      #-I加網卡號 -C加密碼 
chown nagios:nagios /var/tmp/check_traffic ...   
chkconfig snmpd --level 2345 on
添加主機和服務
vi /usr/local/nagios/etc/nagios.cfg
 cfg_dir=/usr/local/nagios/etc/servers  #取消註釋
vi /usr/local/nagios/etc/servers/192.168.1.16.cfg
define host{
        use     linux-server,host-pnp
        host_name       192.168.1.16
        alias           192.168.1.16
        address         192.168.1.16
}
define service{
        use     generic-service,service-pnp
        host_name       192.168.1.16
        service_description     check_ping
        check_command           check_ping!100.0,20%!200.0,50%
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service,service-pnp
        host_name       192.168.1.16
        service_description     check_ssh
        check_command           check_ssh! -p 38383!192.168.1.16
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service,service-pnp
        host_name       192.168.1.16
        service_description     check_http
        check_command           check_http
        max_check_attempts 5
        normal_check_interval 1
} 
define service{
        use     generic-service,service-pnp
        host_name       192.168.1.16
        service_description     check_users
        check_command           check_nrpe!check_users
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service,service-pnp
        host_name       192.168.1.16
        service_description     check_load
        check_command           check_nrpe!check_load
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service,service-pnp
        host_name       192.168.1.16
        service_description     check_hda1
        check_command           check_local_disk!20%!10%!/
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service,service-pnp
        host_name       192.168.1.16
        service_description     check_zombie_procs
        check_command           check_nrpe!check_zombie_procs
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service,service-pnp
        host_name       192.168.1.16
        service_description     check_total_procs
        check_command           check_nrpe!check_total_procs
        max_check_attempts 5
        normal_check_interval 1
}
define service {
        use                             generic-service,service-pnp
        host_name                       192.168.1.16
        service_description             used_mem
        check_command                   check_nrpe!check_used_mem
        max_check_attempts 5
        normal_check_interval 1
}
define service {
        use                             generic-service,service-pnp
        host_name                       192.168.1.16
        service_description             cpu
        check_command                   check_nrpe!check_cpu
        max_check_attempts 5
        normal_check_interval 1
}
define service {
        use                             generic-service,service-pnp
        host_name                       192.168.1.16
        service_description             net
        check_command                   check_nrpe!check_traffic
        max_check_attempts 5
        normal_check_interval 1
}

/usr/local/nagios/etc/servers/192.168.1.16.cfg
define host{
        use     linux-server,host-pnp
        host_name       192.168.1.16
        alias           192.168.1.16
        address         192.168.1.16
}
define service{
        use     generic-service,service-pnp
        host_name       192.168.1.16
        service_description     check_ping
        check_command           check_ping!100.0,20%!200.0,50%
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service,service-pnp
        host_name       192.168.1.16
        service_description     check_ssh
        check_command           check_ssh! -p 38383!192.168.1.16
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service,service-pnp
        host_name       192.168.1.16
        service_description     check_http
        check_command           check_http
        max_check_attempts 5
        normal_check_interval 1
} 
define service{
        use     generic-service,service-pnp
        host_name       192.168.1.16
        service_description     check_users
        check_command           check_nrpe!check_users
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service,service-pnp
        host_name       192.168.1.16
        service_description     check_load
        check_command           check_nrpe!check_load
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service,service-pnp
        host_name       192.168.1.16
        service_description     check_hda1
        check_command           check_local_disk!20%!10%!/
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service,service-pnp
        host_name       192.168.1.16
        service_description     check_zombie_procs
        check_command           check_nrpe!check_zombie_procs
        max_check_attempts 5
        normal_check_interval 1
}
define service{
        use     generic-service,service-pnp
        host_name       192.168.1.16
        service_description     check_total_procs
        check_command           check_nrpe!check_total_procs
        max_check_attempts 5
        normal_check_interval 1
}
define service {
        use                             generic-service,service-pnp
        host_name                       192.168.1.16
        service_description             used_mem
        check_command                   check_nrpe!check_used_mem
        max_check_attempts 5
        normal_check_interval 1
}
define service {
        use                             generic-service,service-pnp
        host_name                       192.168.1.16
        service_description             cpu
        check_command                   check_nrpe!check_cpu
        max_check_attempts 5
        normal_check_interval 1
}
define service {
        use                             generic-service,service-pnp
        host_name                       192.168.1.16
        service_description             net
        check_command                   check_nrpe!check_traffic
        max_check_attempts 5
        normal_check_interval 1
}

<span style="color:#333333"><strong>更改圖形數據目錄</strong>
/usr/local/pnp4nagios/etc/config_local.php conifg.php config.php.0.6.14
$conf['rrdbase'] = "/usr/local/pnp4nagios/var/perfdata/"
更改目錄路徑</span>
更改郵件報警時間間隔
vi vi objects/templates.cfg
  notification_interval           5     #更改所有的vi objects/templates.cfg
  notification_interval           5     #更改所有的
<span style="color:#333333"><strong>更改接收郵箱</strong>
vi objects/contacts.cfg</span>

 
發送郵件:
    默認使用mail命令發送,需要安裝並修改配置文件
vim /etc/mail.rc
set [email protected] smtp=smtp.exmail.qq.com
set [email protected] smtp-auth-password=Coolyou@2015
set smtp-auth=login

網卡監報錯 Unknown - Read or Write File /var/tmp/check_traffic_192.168.0.156_2__itnms.hist_dat_64 Error with user uid=542(nagios) gid=543(nagios) groups=543(nagios),544(nagcmd)   Unknown - Read or Write File /var/tmp/check_traffic_192.168.0.156_2__itnms.hist_dat_64 Error with user uid=542(nagios) gid=543(nagios) groups=543(nagios),544(nagcmd)  
/var/tmp/check_traffic_192.168.0.156_2__itnms.hist_dat_64 :更改文件屬主屬組
發佈了47 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章