Nagios 部署


所需软件:
nagios-3.2.2.tar.gz

解决perl编译问题

   
   
   
   
  1. echo "export LC_ALL=C">>/etc/profile 
  2. source /etc/profile 
  3. service iptables stop 
  4. chkconfig iptables off 
#解决时间同步
   
   
   
   
  1. /usr/sbin/ntpdate pool.ntp.org 
  2. uptime 
#安装Nagios所需要的基础软件包
   
   
   
   
  1. yum install gcc glibc glibc-common -y 
  2. yum install gd gd-devdel -y 
  3. yum install httpd php  –y 
#安装后检查正确结果
   
   
   
   
  1. rpm -qa gcc glibc glibc-common gd gd-devel httpd php 

[跟我学中小企业架构部署]之六:监控系统nagios部署_第1张图片


看到上图结果,说基础软件包安装完成
安装Nagios
#创建nagios需要的用户及组
   
   
   
   
  1. /usr/sbin/useradd -m nagios 
  2. /usr/sbin/useradd apache -M -s /sbin/nologin 
  3. /usr/sbin/groupadd nagcmd 
  4. /usr/sbin/usermod -a -G nagcmd nagios 
  5. /usr/sbin/usermod -a -G nagcmd apache 

   
   
   
   
  1. tar zxvf nagios-3.2.2.tar.gz 
  2. cd nagios-3.2.2 
  3. ./configure --with-command-group=nagcmd 
  4. make all 
  5. make install 
  6. make install-init 
  7. make install-config 
  8. make install-commandmode 
  9. make install-webconf 
  10. cd .. 


#创建nagios监控界面登录用户及密码
   
   
   
   
  1. htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin 
注:此文章中我设置 的密码是elain,后面会用到 #添加监控报警接收邮件
   
   
   
   
  1. vi /usr/local/nagios/etc/objects/contacts.cfg +35 
把nagios@localhost 改成  [email protected]
   
   
   
   
  1. vi /etc/httpd/conf/httpd.conf +231   //查看是否为apache用户 
  2. vi /etc/httpd/conf/httpd.conf +265   //在下面添加ServerName 127.0.0.1:80 
  3. service httpd start 
  4. chkconfig httpd on 
  5. ps -ef |grep httpd 


安装Nagios插件
   
   
   
   
  1. tar zxvf 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. --enable-perl-modules 
  5. make 
  6. make install 
  7. tar zxvf net-snmp-5.4.2.1.tar.gz 
  8. cd net-snmp-5.4.2.1 
  9. ./configure 
  10. make 
  11. make install 
  12. cd .. 
  13. service nagios start 
安装 nrpe
   
   
   
   
  1. tar zxvf nrpe-2.12.tar.gz 
  2. cd nrpe-2.12 
  3. ./configure 
  4. make all 
  5. make install-plugin 
检测语法
   
   
   
   
  1. /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 


现在在浏览器输入http://10.0.0.86/nagios 登录
   
   
   
   
  1. User: nagiosadmin 
  2. Passwd: elain 

[跟我学中小企业架构部署]之六:监控系统nagios部署_第2张图片


看到Nagios界面,说明初步安装成功!!!
注:此处有一个警告,是应该Nagios服务端上的apache没有首页,添加一个首页就没此警告了!

配置nagios监控服务
――――――――――――――――
   
   
   
   
  1. vi /usr/local/nagios/etc/nagios.cfg +33 
加到第 33行下面:
   
   
   
   
  1. cfg_file=/usr/local/nagios/etc/objects/host.cfg 
  2. cfg_file=/usr/local/nagios/etc/objects/service.cfg 
建立上面两个文件
   
   
   
   
  1. touch /usr/local/nagios/etc/objects/host.cfg 
  2. touch /usr/local/nagios/etc/objects/service.cfg 
-------------------------------------------
检查语法:
   
   
   
   
  1. /etc/init.d/nagios checkconfig 


服务端配置完毕!!!

被监控端配置(LAMP,LNMP,LB1,LB2,DB1,DB2,BAK配置基本一样,以LAMP为例)
LAMP
被监控端所需软件:
   
   
   
   
  1. zxvf nagios-plugins-1.4.15.tar.gz 
  2. zxvf nrpe-2.12.tar.gz 
解决perl编译问题
   
   
   
   
  1. echo "export LC_ALL=C">>/etc/profile 
  2. source /etc/profile 
  3. service iptables stop 
  4. chkconfig iptables off 
  5. usr/sbin/ntpdate pool.ntp.org 
  6. uptime 
#创建nagios需要的用户及组
   
   
   
   
  1. /usr/sbin/adduser nagios –M 
上传软件:
   
   
   
   
  1. tar zxvf nagios-plugins-1.4.15.tar.gz 
  2. cd nagios-plugins-1.4.15 
  3. ./configure --prefix=/usr/local/nagios --enable-perl-modules \ 
  4. --enable-redhat-pthread-workaround 
  5. make 
  6. make install 
  7. cd .. 
  8. ls /usr/local/nagios/libexec/ |wc –l                 //查看安装的插件 
安装 nrpe
   
   
   
   
  1. tar zxvf nrpe-2.12.tar.gz 
  2. cd nrpe-2.12 
  3. ./configure 
  4. make all 
  5. make install-plugin 
  6. make install-daemon 
  7. make install-daemon-config 
  8. cd .. 
#安装相关的插件
   
   
   
   
  1. tar zxvf Nagios-Plugin-0.34.tar.gz 
  2. cd Nagios-Plugin-0.34 
  3. perl Makefile.PL 
  4. make 
  5. make install 
  6. cd .. 
#配置nrpe
   
   
   
   
  1. cd /usr/local/nagios/etc 
  2. vi nrpe.cfg +79 
  3. allowed_hosts=127.0.0.1,10.0.10.86    //添加可以监控该服务端的NagiosServer的IP 
注:在这里可以自己写一此插件,放到插件目录,给可执行权限,然后在此文件中引用此插件,在服务器端的相应服务中引用此定义即可!
   
   
   
   
  1. /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d        //启动nrpe 
  2. echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" >>/etc/rc.local 
  3. ps -ef|grep nagios 

重启nagios nrpe组合命令
   
   
   
   
  1. pkill nrpe && /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d 

到此被监控端LAMP配置完成,其它被监控端配置一样,就不一一写了。

监控服务端添加主机配置
在commands.cfg 中加入 check_nrpe 的插件配置
   
   
   
   
  1. cd /usr/local/nagios/etc/objects 
  2. cp commands.cfg  commands.cfg.ori                 //把原始配置文件做好备份 
  3. vi commands.cfg  结尾加入下面内容 
  4. # 'check_nrpe' command definition 
  5. define command{ 
  6. command_name       check_nrpe 
  7. command_line       $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ 
检查语法:
   
   
   
   
  1. /etc/init.d/nagios checkconfig 


使配置文件生效命令
   
   
   
   
  1. /etc/init.d/nagios reload 
  2. /usr/local/nagios/libexec/check_nrpe -H localhost 
察看是否能返回nrpe版本号,返回则正常!

#允许防火墙通过(实验环境,直接关闭防火墙即可)

   
   
   
   
  1. iptables -A INPUT -p udp --dport 5666 -j ACCEPT 
  2. iptables -A INPUT -s 10.0.10.0/24 -p tcp -m tcp -j ACCEPT 
  3. iptables -A INPUT -s 10.0.10.0/24 -p udp -m udp -j ACCEPT 
在host.cfg里添加被监控主机:
host.cfg   (也可以每台服务器IP地址命名,需在nagios.cfg中添加)
   
   
   
   
  1. define host { 
  2. use                           linux-server 
  3. host_name                     lamp             //被监控主机名称 
  4. alias                          web-server 
  5. address                       10.0.10.83         //被监控主机IP 
  6. check_command                check-host-alive 
  7. max_check_attempts             3 
  8. normal_check_interval           2 
  9. retry_check_interval             2 
  10. check_period                   24x7 
  11. notification_interval             300 
  12. notification_period              24x7 
  13. notification_options              d,u,r 
  14. contact_groups                 admins 
注:每添加一台,需在host.cfg里追加如上内容,修改上面注释的两行即可。

service.cfg
   
   
   
   
  1. define service { 
  2. use                             generic-service 
  3. host_name                       lamp 
  4. service_description                Current Load 
  5. check_command                  check_nrpe!check_load 
  6. max_check_attempts               2 
  7. normal_check_interval             4 
  8. retry_check_interval               4 
  9. check_period                     24x7 
  10. notification_interval               1440 
  11. notification_period                24x7 
  12. notification_options              w,u,c,r 
  13. contact_groups                  admins 
  14. process_perf_data                1 
  15. define service { 
  16. use                              generic-service 
  17. host_name                        lamp 
  18. service_description                 MEM Useage 
  19. check_command                    check_nrpe!check_mem 
  20. max_check_attempts                 2 
  21. normal_check_interval                4 
  22. retry_check_interval                  4 
  23. check_period                        24x7 
  24. notification_interval                  1440 
  25. notification_period                   24x7 
  26. notification_options                   w,u,c,r 
  27. contact_groups                       admins 
  28. process_perf_data                    1 
  29. define service { 
  30. use                               generic-service 
  31. host_name                         lamp 
  32. service_description                  Swap Useage 
  33. check_command                    check_nrpe!check_swap 
  34. max_check_attempts                 10 
  35. normal_check_interval                3 
  36. retry_check_interval                  4 
  37. check_period                        24x7 
  38. notification_interval                  480 
  39. notification_period                   workhours 
  40. notification_options                  w,u,c,r 
  41. contact_groups                      admins 
  42. process_perf_data                    1 
  43. define service { 
  44. use                               generic-service 
  45. host_name                         lamp 
  46. service_description                  Disk Partition 
  47. check_command                    check_nrpe!check_disk 
  48. max_check_attempts                 8 
  49. normal_check_interval                3 
  50. retry_check_interval                  2 
  51. check_period                        24x7 
  52. notification_interval                  360 
  53. notification_period                   24x7 
  54. notification_options                  w,u,c,r 
  55. contact_groups                      admins 
  56. process_perf_data                    1 
  57. define service { 
  58. use                                generic-service 
  59. host_name                          lamp 
  60. service_description                 HTTP 
  61. check_command                   check_http 
  62. max_check_attempts                2 
  63. normal_check_interval              4 
  64. retry_check_interval                4 
  65. check_period                     24x7 
  66. notification_interval                1440 
  67. notification_period                 24x7 
  68. notification_options                w,u,c,r 
  69. contact_groups                    admins 
  70. process_perf_data                  1 
注:上面只是添加了基本的一些监控,可根据不同的服务器选择所需的监控。

检测语法
   
   
   
   
  1. /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 
表示配置正确
service nagios restart
访问http://10.0.10.86/nagios  查看添加的主机

[跟我学中小企业架构部署]之六:监控系统nagios部署_第3张图片


注:收集信息需几分钟,如果一开始访问没有看到属正常,等几分钟就好了!
其它服务器的配置就不一一写了,全部和LAMP一样,可根据不同的添加或删除被监控项!!

报警方法配置请参考本人的另一篇文章:

CentOS下nagios报警飞信部署四步走 http://www.elain.org/?p=467

转载请注明: 转载自http://www.elain.org

本文链接地址:[跟我学中小企业架构部署]之六:监控系统nagios部署