1、  解决nagios的依赖关系,和所需组件:

   
   
   
   
  1. # yum -y install httpd gcc glibc glibc-common *gd* php php-mysql mysql mysql-server 

2、  nagios所需组件:nagios nagios-plugins ndoutils(非必须)

linux客户端:nrpe   windows客户端NSClient++

创建nagiso用户和组:

   
   
   
   
  1. # groupadd nagcmd  
  2. # useradd -m nagios  
  3. # usermod -a -G nagcmd nagios  
  4. # usermod -a -G nagcmd apache 
   

编译安装nagios:    

   
   
   
   
  1. # tar zxf nagios-3.1.2.tar.gz   
  2. # cd nagios-3.1.2  
  3. # ./configure --with-command-group=nagcmd --enable-event-broker --prefix=/var/www/nagios  
  4. # make all 
  5. # make install  
  6. # make install-init  
  7. # make install-config  
  8. # make install-commandmode  
  9.  

email指定您想用来接收nagios警告信息的邮件地址,默认是本机的nagios用户:

   
   
   
   
  1. # vi /var/www/nagios/etc/objects/contacts.cfg   
  2. email        nagios@localhost       #这个是默认设置 

 

 

httpd的配置文件目录(conf.d)中创建NagiosWeb程序配置文件:

 

   
   
   
   
  1. # make install-webconf 

创建一个登录nagios web程序的用户,这个用户帐号在以后通过web登录nagios认证时所用:

   
   
   
   
  1. # htpasswd -c /var/www/nagios/htpasswd.users nagiosadmin 

   启动服务:

   
   
   
   
  1. #service httpd restart 

编译安装nagios-plusgins:

   
   
   
   
  1. # tar zxf nagios-plugins-1.4.13.tar.gz   
  2. # cd nagios-plugins-1.4.13  
  3. # ./configure --with-nagios-user=nagios --with-nagios-group=nagios --prefix=/var/www/nagios --with-mysql=/usr/lib/mysql  
  4. #make && make install 

          启动服务:  

检测配置文件:

   
   
   
   
  1. # /var/www/nagios/bin/nagios -v /var/www/nagios/etc/nagios.cfg  
  2. #service nagios restart  
  3. #chkconfig nagios add 
  4. #chkconfig nagios on 
  5. #setenforce 0  这个只是临时关闭selinux 

 

 

当然,也可以通过以下方式将nagiosCGI程序运行于SELinux/targeted模式而不用关闭selinux

 

   
   
   
   
  1. # chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin  
  2. # chcon -R -t httpd_sys_content_t /usr/local/nagios/share 

 

 

web中输入http://IP/nagios 并输入密码和账户

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

windows客户端安装:NSClient++-0.3.8-Win32.msi安装完后打开nagios.cfg文件将

注释去掉cfg_file=/usr/local/nagios/etc/objects/windows.cfg

定义windows.cfg

   
   
   
   
  1. define host{  
  2.  
  3.         use             windows-server  ; Inherit default values from a template  
  4.  
  5.         host_name       winserver       ; The name we're giving to this host  
  6.  
  7.         alias           My Windows Server       ; A longer name associated with the host  
  8.  
  9.         address         192.168.0.191   ; 你主机的IP  
  10.  
  11.         } 

 

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 

linux客户端的安装:

先添加nagios用户

useradd nagios

为了安装nrpe,先安装nagios-plugins-1.4.15.tar.gz 插件

   
   
   
   
  1. # tar zxf nagios-plugins-1.4.15.tar.gz   
  2. # cd nagios-plugins-1.4.15  
  3. # ./configure --with-nagios-user=nagios --with-nagios-group=nagios  
  4. # make  
  5. # make install  
  6. tar -zxvf nrpe-2.12.tar.gz  
  7. cd nrpe-2.12.tar.gz  
  8. ./configure  (会自动加载SSL)  

#如果后面make报错,加如下参数

   
   
   
   
  1. ./configure --enable-ssl --with-ssl-lib=/usr/lib/(当然前提要有openssl)  
  2. make all 
  3. make install-plugin  
  4. make install-daemon  
  5. make install-daemon-config 

 4.配置nrpe信息

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

allowed_hosts=127.0.0.1  //允许监控的IP

/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d

服务端

3.安装NRPE

cd nagios-nrpe_2.8.1

./configure   #默认自动添加了openssl

#因为传送过程要加密,如果后面make报错,加如下参数

rpm -qa| grep ssl

openssl-devel-0.9.7a-43.17.el4_6.1

rpm -ql openssl-devel-0.9.7a-43.17.el4_6.1 | more

./configure --enable-ssl --with-ssl-lib=/lib/(当然前提要有openssl)

make all

make install-plugin

添加步骤:

vi /usr/local/nagios/etc/objects/commands.cfg

      nagios.cfg启用有以下行

         cfg_file=/usr/local/nagios/etc/objects/mylinux.cfg

4.commands.cfg定义外部构件nrpe

 

#添加

   
   
   
   
  1. #check nrpe  
  2. define command{  
  3.         command_name check_nrpe  
  4.         command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$  
  5.         } 

 

 

定义 mylinux.cfg

 

   
   
   
   
  1. define host{  
  2.           use             linux-server  
  3.           host_name     mylinux  
  4.           alias            mylinux  
  5.           address        192.168.0.27(客户端IP既被监控的IP)  
  6.         }  
  7.  
  8. define service{  
  9.         use                      generic-service  
  10.         host_name             mylinux  
  11.         service_description     check-swap  
  12.         check_command        check_nrpe!check_swap  
  13.                }  
  14.  
  15. define service{  
  16.         use                      generic-service  
  17.         host_name             mylinux  
  18.         service_description     check-load 
  19.         check_command         check_nrpe!check_load  
  20.                }  
  21.  
  22. define service{  
  23.        use                      generic-service  
  24.        host_name             mylinux  
  25.        service_description     check-disk  
  26.        check_command        check_nrpe!check_had1  
  27.                 }  
  28. define service{  
  29.        use                      generic-service  
  30.        host_name             mylinux  
  31.        service_description     check-users  
  32.        check_command        check_nrpe!check_users   
  33.                }  
  34.  
  35. define service{  
  36.         use                    generic-service   
  37.         host_name           mylinux  
  38.         service_description  otal_procs  
  39.         check_command     check_nrpe!check_total_procs  
  40.  
  41. }  

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

   
   
   
   
  1. define service{  
  2.         use                    generic-service  
  3.         host_name              mylinux  
  4.         service_description    httpd  
  5.         check_command          check_http! -H 192.168.0.27  
  6.  

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

nagios监控mysql服务器:

 

1、建立专用数据库:

   
   
   
   
  1. [root@svr3 ~]# /usr/local/webserver/mysql/bin/mysql -u root -p   
  2. Enter password:    
  3. Welcome to the MySQL monitor.  Commands end with ; or \g.   
  4. Your MySQL connection id is 51910   
  5. Server version: 5.5.3-m3-log Source distribution   
  6. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.    
  7. mysql> create database nagios;   
  8. Query OK, 1 row affected (0.00 sec)   
  9. mysql> grant select on nagios.* to nagios@'%' identified by '123qweasd';    
  10. Query OK, 0 rows affected (0.00 sec)   
  11. mysql> flush privileges;   
  12. Query OK, 0 rows affected (0.00 sec)   
  13. mysql> select User,Password,Host from user;   
  14.  
  15. +----------------+-------------------------------------------+------------------+   
  16.  
  17. User           | Password                                  | Host             |   
  18.  
  19. +----------------+-------------------------------------------+------------------+   
  20.  
  21. | root           | *84BB5DF4823DA319BBF86C99624479A198E6EEE9 | localhost        |   
  22.  
  23. | nagios         | *A1F1CB851D62F002C09A0C9C4A76262473432F55 | %                |   
  24.  
  25. +----------------+-------------------------------------------+------------------+   
  26.  
  27. 14 rows in set (0.00 sec)   
  28.  
  29. 12 rows in set (0.00 sec)   
  30. [root@svr3 ~]# /usr/local/nagios/libexec/check_mysql -H 192.168.0.3 -u nagios -d nagios -p 123qweasd   
  31.  
  32. Uptime: 970046  Threads: 1  Questions: 684583  Slow queries: 3  Opens: 672  Flush tables: 1  Open tables:   

     注意:check_mysql必须如果没有则说明mysql-devel没有安装,需要安装后在重新编译安装nagios-plugins这个包

369  Queries per second avg: 0.705

 

   
   
   
   
  1. [root@svr4 nrpe_install]# /usr/local/nagios/libexec/check_mysql -H 192.168.0.3 -u nagios -d nagios -p 123qweasd   
  2.  
  3. Uptime: 970348  Threads: 1  Questions: 684584  Slow queries: 3  Opens: 672  Flush tables: 1  Open tables: 369  Queries per second avg: 0.705  

 果断开始设置:

#定义用户

#定义组,及隶属用户

#用户增加

 

command.cfg里增加插件命令:

   
   
   
   
  1. #check mysql   
  2. define command{   
  3. command_name check_mysql   
  4. command_line $USER1$/check_mysql -H $HOSTADDRESS$ -u nagios -d nagios -p 123qweasd    
  5. }  

 #定义服务:

   
   
   
   
  1. define service {   
  2.         host_name mysql  
  3.         check_period 24x7   
  4.         max_check_attempts 2   
  5.         normal_check_interval 1   
  6.         retry_check_interval 1   
  7.         contact_groups admins  
  8.         notification_interval 5   
  9.         notification_period 24x7   
  10.         notification_options w,u,c,r   
  11.         check_command check_mysql   
  12.         } 
  

飞信报警

1.修改模板文件

修改concont.cfg

2.修改commands.cfg  

   
   
   
   
  1. define command{  
  2.         command_name notify-service-by-fetion  
  3.         command_line      /usr/bin/fetion --mobile 15003880800 --pwd 123qweQWE --to 15003880800 --msg-tpye=0  --msg-utf8 $HOSTNAME  

########################################

配置pnp,使其能够汇出流量图

   
   
   
   
  1. tar zxvf pnp-0.4.12.tar.gz   
  2. cd pnp-0.4.12  
  3. ./configure --with-nagios-user=nagios \   
  4. --with-nagios-group-nagios \   
  5. --with-rrdtool=/usr/local/rrdtool/bin/rrdtool \   
  6. --with-perfdata-dir=/var/www/nagios/share/perfdata  

#########################################

nagios常出的错误总结:

1、错误提示:RRDs Perl Modules:                *** NOT FOUND ***
#解决方法:ln -sv /usr/local/rrdtool/lib/perl/5.8.8/i386-linux-thread-multi/auto/RRDs/RRDs.so /usr/lib/perl5/5.8.8/i386-linux-thread-multi/
2、 nagios 监控出现It appears as though you do not have permission
修改cgi.cfg文件
修改use_authentication=1 (默认) ,如果没有添加,重启nagios服务
3、Could not read object configuration data
  解决方法:killall nagios
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg