nagios监控网络服务器和网络服务配置篇

安全 网站安全
nagios是一个完全GPL协议的开源软件包,包含有nagios主程序和它的各个插件,配置非常灵活,可以监视的项目很多,可以自定义shell脚本进行监控服务,非常适合大型网络。下面让我们来看一下nagios的配置过程,看实现监控网络服务器和网络服务是怎么实现的。

nagios配置

1:配置web接口

假设你已经运行了apache,如果没有,请参考:

http://localhost/upload/blog.php?do-showone-tid-18.html

vi /usr/local/apache2/conf/httpd.conf

添加如下内容:

  1. ScriptAlias /nagios/cgi-bin /usr/local/nagios/sbin   
  2.  
  3. <Directory "/usr/local/nagios/sbin">   
  4.   Options ExecCGI   
  5.   AllowOverride None   
  6.   Order allow,deny   
  7.   Allow from all   
  8.   AuthName "Nagios Access"   
  9.   AuthType Basic   
  10.   AuthUserFile /usr/local/nagios/etc/htpasswd.users   
  11.   Require valid-user   
  12. </Directory>   
  13.  
  14. Alias /nagios /usr/local/nagios/share   
  15.  
  16. <Directory "/usr/local/nagios/share">   
  17.   Options None   
  18.   AllowOverride None   
  19.   Order allow,deny   
  20.   Allow from all   
  21.   AuthName "Nagios Access"   
  22.   AuthType Basic   
  23.   AuthUserFile /usr/local/nagios/etc/htpasswd.users   
  24.   Require valid-user   
  25. </Directory>  

修改完毕,保存文件,并重启apache:

/usr/local/apahce2/bin/apachectl restart

2:配置apache的BASIC认证:

生成认证密码:

/usr/local/apache2/bin/htpasswd –c /usr/local/nagios/etc/htpasswd.users nagios nagios 

apache接口配置完成。

开始配置nagios:

cd /usr/local/nagios/etc/

在/usr/local/nagios/etc下是nagios的配置模板文件-sample,把.cfg-sample文件全部拷贝成.cfg 

例如:cp nagios.cfg-sample nagios.cfg 

全部拷贝完成即可.

vi minimal.cfg

注释所有command:

注释的方法是在每一个定义语句前面添加”#“

修改cgi.cfg

修改use_authentication=1为use_authentication=0,即不用验证.不然有一些页面不会显示。

现在检查配置文件是否有语法错误:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

如果正确,会显示以下结果:

Total Warnings: 0

Total Errors:   0

否则,需要根据提示进行修改配置文件。配置文件等会再弄。现在启动nagios

/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg

为了使nagios异常中断,我们使用daemontools启动:

安装daemontool:

  1. mkdir -p /package   
  2. chmod 1755 /package   
  3. cd /package   
  4. fetch http://cr.yp.to/daemontools/daemontools-0.76.tar.gz   
  5. cd admin/daemontools-0.76/   
  6. package/install  

检查svscan进程是否启动:

  1. ps aux | grep svscan   
  2. root       376 0.0 0.0 1636   0 con- IW   -       0:00.00 /bin/sh /command/svscanboot   
  3. root       411 0.0 0.0 1224   208 con- S   8Jul06   0:42.50 svscan /service  

ok,启动正常了。

  1. cd /service   
  2. mkdir nagios   
  3. chmod 1755 nagios   
  4. touch ./run   
  5. chmod 755 ./run   
  6. vi run   
  7. PATH=/usr/local/bin:/usr/bin:/bin   
  8. export PATH   
  9.  
  10. exec env - PATH=$PATH \   
  11. /usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg   
  12.  
  13. mkdir log   
  14. cd log   
  15. touch ./run   
  16. chmod 755 ./run   
  17. vi ./run   
  18. #!/bin/sh   
  19. exec setuidgid logadmin multilog t s1000000 n100 ./main   
  20.  
  21. mkdir main   
  22. chmod 777 main   
  23. chown nagios.nagios main   
  24. touch status   
  25. chown nagios.nagios status   
  26.  
  27. svc -u /service/nagios/   
  28. svstat /service/nagios/   
  29. root@## ps auxww | grep nagios   
  30. root     23276 0.0 0.1 1176   488 ?? I   5:00PM   0:01.71 supervise nagios   
  31. nagios   34251 0.0 0.3 2316 1552 ?? S   6:06PM   0:00.10 /usr/local/nagios/bin/nagios /usr/local/nagios/etc/nagios.cfg   
  32. root@##   

ok,现在把nagios服务做成自动启动的服务了。通过svc命令可以启动或者停止服务。

  1. ---------------------------------------------------------------------------------   
  2. svc opts services   
  3. opts is a series of getopt-style options. services consists of any number of arguments, each argument naming a directory used by supervise.    
  4.  
  5. -u: Up. If the service is not running, start it. If the service stops, restart it.    
  6. -d: Down. If the service is running, send it a TERM signal and then a CONT signal. After it stops, do not restart it.    
  7. -o: Once. If the service is not running, start it. Do not restart it if it stops.    
  8. -p: Pause. Send the service a STOP signal.    
  9. -c: Continue. Send the service a CONT signal.    
  10. -h: Hangup. Send the service a HUP signal.    
  11. -a: Alarm. Send the service an ALRM signal.    
  12. -i: Interrupt. Send the service an INT signal.    
  13. -t: Terminate. Send the service a TERM signal.    
  14. -k: Kill. Send the service a KILL signal.    
  15. -x: Exit. supervise will exit as soon as the service is down. If you use this option on a stable system, you're doing something wrong; supervise is designed to run forever.   
  16. ---------------------------------------------------------------------------------  

比如:

停止nagios--svc -d /service/nagios/

重启nagios--svc -t /service/nagios/

启动nagios--svc -u /service/nagios/

当然,你也可以使用inited的方式进行:

/usr/local/etc/rc.d/nagios start/stop

好了,反正daemontools很强大,现在打开网页:http://localhost/nagios/,一定会让你大吃一惊,呵呵,我的服务器和服务状态都清楚的看到了。现在我们的nagios中只有一个,那就是它自己,localhost,呵呵,等会我们添加别的主机和主机服务。

#p#

nagios的庐山真面目

1)为主机添加一个服务

为localhost主机添加qmail服务的监控,方法如下:

  1. vi minimal.cfg   
  2. define service{   
  3.     use                   generic-service       ; Name of service template to use   
  4.     host_name               localhost   
  5.     service_description         qmail_smtp   
  6.     is_volatile               0   
  7.     check_period             24x7   
  8.     max_check_attempts         1   
  9.     normal_check_interval       1   
  10.     retry_check_interval         1   
  11.     contact_groups             admins   
  12.     notification_options         w,u,c,r                
  13.     notification_interval       960   
  14.     notification_period         24x7   
  15.     check_command             check_smtp!20%!10%!/   
  16.     }  

可以直接拷贝原有的进行修改,我这个就是拷贝的原有的check_local_disk进行的。修改host_name,service_description,check_command等

  1. define service{   
  2.     use                   generic-service       ; Name of service template to use   
  3.     host_name               localhost   
  4.     service_description         qmail_pop3   
  5.     is_volatile               0   
  6.     check_period             24x7   
  7.     max_check_attempts         1   
  8.     normal_check_interval       1   
  9.     retry_check_interval         1   
  10.     contact_groups             admins   
  11.     notification_options         w,u,c,r                
  12.     notification_interval       960   
  13.     notification_period         24x7   
  14.     check_command             check_pop!20%!10%!/   
  15.     }  

照猫画虎的进行修改,然后去修改:

  1. vi checkcommands.cfg   
  2. #'check_qmail' command definition   
  3. define command{   
  4.     command_name   check_qmail   
  5.     command_line   $USER1$/check_smtp -H 127.0.0.1   
  6.     }   
  7. define command{   
  8.     command_name   check_pop3    
  9.     command_line   $USER1$/check_pop -H 127.0.0.1        
  10.     }  

保存,然后检查配置文件:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

如果没有错误会显示:

Total Warnings: 0

Total Errors:   0

如果有错误,请根据提示进行错误的修正。

重启nagios

svc -d /service/nagios/ && svc -u /service/nagios/

通过web页面检查nagios的结果:

http://10.5.1.153/nagios/

点击“Service Detail”

#p#

2)添加主机并添加服务

我们会监控这台主机的负载、磁盘等一些没有通过端口方式启动的服务器状态,以及它的服务,比如:apache、mysql、qmail和ntp等等吧。那么没有端口的nagios直接能监控到吗?答案是不行。所以我们必须在两台主机上安装nrpe,nrpe可以启动5666端口,把检测的信息源源不断的传给监控中心的主机。

ok,我们把apache、mysql、qmail和ntp先加上,这回我们把监控的主机和服务新建一个文件:

  1. cd /usr/local/nagios/etc/   
  2. touch 10_5_1_156.cfg   
  3. vi nagios.cfg   
  4. cfg_file=/usr/local/nagios/etc/10_5_1_156.cfg   
  5.  
  6. vi 10_5_1_156.cfg  

定义一个主机:

  1. define host{   
  2.     use               generic-host         ; Name of host template to use   
  3.     host_name           test_nrpe   
  4.     alias             client      
  5.     address           10.5.1.156   
  6.     check_command       check-host-alive   
  7.     max_check_attempts     1    
  8.     check_period         24x7   
  9.     notification_interval   120   
  10.     notification_period   24x7   
  11.     notification_options   d,r   
  12.     contact_groups admins   
  13.     }  

定义主机需要检查的服务:

  1. define service{   
  2.     use                   generic-service       ; Name of service template to use   
  3.     host_name               test_nrpe   
  4.     service_description         PING   
  5.     is_volatile               0   
  6.     check_period             24x7   
  7.     max_check_attempts         1   
  8.     normal_check_interval       1   
  9.     retry_check_interval         1   
  10.     contact_groups             admins   
  11.     notification_options         w,u,c,r   
  12.     notification_interval       960   
  13.     notification_period         24x7   
  14.     check_command             check_ping!100.0,20%!500.0,60%   
  15.     }   
  16.  
  17. define service{   
  18.     use                   generic-service       ; Name of service template to use   
  19.     host_name               test_nrpe   
  20.     service_description         apache   
  21.     is_volatile               0   
  22.     check_period             24x7   
  23.     max_check_attempts         1   
  24.     normal_check_interval       1   
  25.     retry_check_interval         1   
  26.     contact_groups             admins   
  27.     notification_options         w,u,c,r   
  28.     notification_interval       960   
  29.     notification_period         24x7   
  30.     check_command             check_http!100.0,20%!500.0,60%   
  31.     }   
  32.  
  33. define service{   
  34.     use                   generic-service       ; Name of service template to use   
  35.     host_name               test_nrpe   
  36.     service_description         mysql   
  37.     is_volatile               0   
  38.     check_period             24x7   
  39.     max_check_attempts         1   
  40.     normal_check_interval       1   
  41.     retry_check_interval         1   
  42.     contact_groups             admins   
  43.     notification_options         w,u,c,r   
  44.     notification_interval       960   
  45.     notification_period         24x7   
  46.     check_command             check_mysql!100.0,20%!500.0,60%   
  47.     }   
  48.  
  49. define service{   
  50.     use                   generic-service       ; Name of service template to use   
  51.     host_name               test_nrpe   
  52.     service_description         ntp    
  53.     is_volatile               0   
  54.     check_period             24x7   
  55.     max_check_attempts         1   
  56.     normal_check_interval       1   
  57.     retry_check_interval         1   
  58.     contact_groups             admins   
  59.     notification_options         w,u,c,r   
  60.     notification_interval       960   
  61.     notification_period         24x7   
  62.     check_command             check_ntp!100.0,20%!500.0,60%   
  63.     }   
  64.  
  65. define service{   
  66.     use                   generic-service       ; Name of service template to use   
  67.     host_name               test_nrpe   
  68.     service_description         qmail_smtp      
  69.     is_volatile               0   
  70.     check_period             24x7   
  71.     max_check_attempts         1   
  72.     normal_check_interval       1   
  73.     retry_check_interval         1   
  74.     contact_groups             admins   
  75.     notification_options         w,u,c,r   
  76.     notification_interval       960   
  77.     notification_period         24x7   
  78.     check_command             check_smtp!100.0,20%!500.0,60%    
  79.     }   
  80.  
  81. define service{   
  82.     use                   generic-service       ; Name of service template to use   
  83.     host_name               test_nrpe   
  84.     service_description         qmail_pop3      
  85.     is_volatile               0   
  86.     check_period             24x7   
  87.     max_check_attempts         1   
  88.     normal_check_interval       1   
  89.     retry_check_interval         1   
  90.     contact_groups             admins   
  91.     notification_options         w,u,c,r   
  92.     notification_interval       960   
  93.     notification_period         24x7   
  94.     check_command             check_pop!100.0,20%!500.0,60%    
  95.     } 

nagios配置中,服务就定义完了。此时是不是多了一个主机和它下面的服务呢?那是肯定的。如果这个过程中出现添加主机和服务可能出现的问题该怎么解决?请阅读:概念篇安装篇故障解决篇

 

责任编辑:佚名 来源: ChinaUnix
相关推荐

2011-08-22 11:00:14

nagios

2011-08-22 11:00:10

nagios

2011-08-22 10:30:29

nagios

2011-03-22 15:17:14

Nagios安装

2011-03-22 15:17:14

Nagios安装

2011-03-22 15:17:13

Nagios监控

2014-06-26 14:10:44

2011-07-14 14:17:33

网络服务器配置DNS服务器

2011-07-14 15:28:11

服务器

2011-07-14 14:45:01

网络服务器配置DHCP服务器

2011-03-21 11:21:04

LinuxNagios

2010-03-24 11:39:01

2011-07-14 14:58:19

网络服务器配置服务器

2011-02-22 11:23:48

vsFTPDLinux服务器

2011-02-22 11:23:48

vsFTPDLinux服务器

2011-09-05 09:23:50

2011-07-14 14:01:29

网络服务器配置服务器

2011-07-14 13:13:44

网络服务器配置

2011-08-01 11:10:21

2011-03-22 13:50:53

点赞
收藏

51CTO技术栈公众号