当前位置: > Linux服务器 > 监控工具 >

Nagios监控系统搭建问题

时间:2014-11-06 12:23来源:linux.it.net.cn 作者:IT

nagios监控系统搭建问题

近段时间一直在研究nagios监控系统,借鉴了不少高手的文章,费了不少功夫总算把它搞定了,以下就是具体的安装过程,更深层的监控项目还有待进一步研究,希望大家给点建设!!

#===========================安装 Nagios========================================


  1. cd /opt  
  2.  
  3. groupadd nagios  
  4.  
  5. groupadd nagcmd  
  6.  
  7. useradd nagios -g nagcmd -d /usr/local/nagios  
  8.  
  9. chown nagios.nagios /usr/local/nagios/  
  10.  
  11. chmod 755 /usr/local/nagios  
  12.  
  13. wget [url]http://osdn.dl.sourceforge.net/sourceforge/nagios/nagios-3.0.2.tar.gz[/url]  
  14.  
  15. tar -zxvf nagios-3.0.2.tar.gz  
  16.  
  17. cd nagios-3.0.2  
  18.  
  19. ./configure –with-command-group=nagcmd 
  20.  
  21. make all  
  22.  
  23. make install  
  24.  
  25. make install-init  
  26.  
  27. make install-config  
  28.  
  29. make install-commandmode  
  30.  
  31. /usr/local/apache2/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin  
  32.  
  33. #编辑httpd.conf配置文件  
  34.  
  35. ScriptAlias /nagios/cgi-bin “/usr/local/nagios/sbin”  
  36.  
  37.  
  38.  
  39. # SSLRequireSSL  
  40.  
  41. Options ExecCGI  
  42.  
  43. AllowOverride None  
  44.  
  45. Order allow,deny  
  46.  
  47. Allow from all  
  48.  
  49. # Order deny,allow  
  50.  
  51. # Deny from all  
  52.  
  53. # Allow from 127.0.0.1  
  54.  
  55. AuthName “Nagios Access”  
  56.  
  57. AuthType Basic  
  58.  
  59. AuthUserFile /usr/local/nagios/etc/htpasswd.users  
  60.  
  61. Require valid-user  
  62.  
  63.  
  64.  
  65. Alias /nagios “/usr/local/nagios/share”  
  66.  
  67.  
  68.  
  69. # SSLRequireSSL  
  70.  
  71. Options None  
  72.  
  73. AllowOverride None  
  74.  
  75. Order allow,deny  
  76.  
  77. Allow from all  
  78.  
  79. # Order deny,allow  
  80.  
  81. # Deny from all  
  82.  
  83. # Allow from 127.0.0.1  
  84.  
  85. AuthName “Nagios Access”  
  86.  
  87. AuthType Basic  
  88.  
  89. AuthUserFile /usr/local/nagios/etc/htpasswd.users  
  90.  
  91. Require valid-user  
  92.  
  93.  
  94.  
  95. #重启apache  
  96.  
  97. killall httpd  
  98.  

 

#============================安装nagios plugins=========================


  1. cd /opt  
  2.  
  3. wget [url]http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.11.tar.gz[/url]  
  4.  
  5. tar -zxvf nagios-plugins-1.4.11.tar.gz  
  6.  
  7. cd nagios-plugins-1.4.11  
  8.  
  9. ./configure –prefix=/usr/local/nagios –with-nagios-user=nagios –with-nagios-gourp=nagios –with-mysql=/usr/local/mysql5/ –enable-perl-modules  
  10.  
  11. make  
  12.  
  13. make install  
  14.  
  15. #配置和启动nagios  
  16.  
  17. /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg  
  18.  
  19. #如果提示“Whoops! Error: Could not read object configuration data! ”,这是因为没有启动nagios后台进程,执行以下命令  
  20.  
  21. /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg  
  22.  

 

#=============================安装nrpe 插件==============================


  1. #对远程一台linux主机进行监控  
  2.  
  3. #监控服务器上安装设置  
  4.  
  5. cd /opt  
  6.  
  7. wget [url]http://www.mirrors.wiretapped.net/security/network-monitoring/nagios/nrpe-2.8.1.tar.gz[/url]  
  8.  
  9. #监控主机上安装方法  
  10.  
  11. tar -zxvf nrpe-2.8.1.tar.gz  
  12.  
  13. cd nrpe-2.8.1  
  14.  
  15. ./configure  
  16.  
  17. make all  
  18.  
  19. make install  
  20.  
  21. make install-plugin  

—监控机需要安装check_nrpe这个插件,被监控机并不需要  

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


  1. #被监控主机上安装方法  
  2.  
  3. cd /opt  
  4.  
  5. useradd nagios -d /usr/local/nagios  
  6.  
  7. chown nagios.nagios /usr/local/nagios/  
  8.  
  9. tar -zxvf nagios-plugins-1.4.11.tar.gz  
  10.  
  11. cd nagios-plugins-1.4.11  
  12.  
  13. ./configure –enable-perl-modules –with-ping-command=ping  
  14.  
  15. make  
  16.  
  17. make install  
  18.  
  19. cd /opt  
  20.  
  21. tar -zxvf nrpe-2.8.1.tar.gz  
  22.  
  23. cd nrpe-2.8.1  
  24.  
  25. ./configure  
  26.  
  27. make all  
  28.  
  29. make install  
  30.  
  31. make install-plugin  
  32.  
  33. make install-daemon  
  34.  
  35. make install-daemon-config  
  36.  
  37. vi /usr/local/nagios/etc/nrpe.conf  
  38.  
  39. allowed_hosts=192.168.8.150  
  40.  
  41. #为了监控swap在nrpe.cfg中添加  
  42.  
  43. command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%  
  44.  
  45. command[check_sda1]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda1  
  46.  
  47. #sdb1可根椐实际情况更改,我这里的硬盘类型是scsi  
  48.  
  49. vi /etc/services  
  50.  
  51. #增加nrpe  
  52.  
  53. nrpe 5666/tcp # nrpe  
  54.  
  55. #启动nrpe  
  56.  
  57. /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d  
  58.  
  59. netstat -at|grep nrpe  
  60.  
  61. netstat -an|grep 5666  
  62.  

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


  1. #再对监控服务器进行设置  
  2.  
  3. #添加nrpe的定义  
  4.  
  5. vi /usr/local/nagios/etc/objects/commands.cfg  
  6.  
  7. # ‘check_nrpe ‘ command definition  
  8.  
  9. define command{  
  10.  
  11. command_name check_nrpe  
  12.  
  13. command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$  
  14.  
  15. }  
  16.  
  17. vi /usr/local/nagios/etc/cgi.cfg  
  18.  

把use_authentication=1修改为use_authentication=0如果出现页面无法显示之类的


  1. authorized_for_system_commands=nagiosadmin,kerry –kerry为http访问授权用户  
  2.  
  3. authorized_for_all_services=nagiosadmin,kerry  
  4.  
  5. authorized_for_all_hosts=nagiosadmin,kerry  
  6.  
  7. authorized_for_all_service_commands=nagiosadmin,kerry  
  8.  
  9. authorized_for_all_host_commands=nagiosadmin,kerry  
  10.  
  11. #测试NRPE是否则正常工作  
  12.  
  13. /usr/local/nagios/libexec/check_nrpe -H localhost  
  14.  
  15. killall nagios  
  16.  
  17. /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg  
  18.  
  19. echo “/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d” >> /etc/rc.local  
  20.  
  21. ehco “/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg” >>/etc/rc.local  
  22.  
  23. #问题:notifications for this service have been disabled  
  24.  
  25. #解决办法:enable notifications for this service  
  26.  
  27. #问题:Status Map页面无法显示  
  28.  
  29. #解决方法:ln -s /usr/local/lib/libgd.so.2 /usr/lib/libgd.so.2  
  30.  
  31. vi /usr/local/nagios/etc/nagios.cfg  
  32.  
  33. #添加  
  34.  
  35. cfg_file=/usr/local/nagios/etc/objects/emos-mailserver.cfg  
  36.  
  37. #emos-mailserver.cfg这个文件名可以自定义  
  38.  
  39. #对刚定义的emos-mailserver.cfg文件进行配置  
  40.  
  41. vi /usr/local/nagios/etc/objects/emos-mailserver.cfg  
  42.  
  43. define host{  
  44.  
  45. use linux-server  
  46.  
  47. host_name emos-mailserver  
  48.  
  49. alias emos-mailserver  
  50.  
  51. address 192.168.8.151  
  52.  
  53. }  
  54.  
  55. define service{  
  56.  
  57. use generic-service  
  58.  
  59. host_name emos-mailserver  
  60.  
  61. service_description HTTP  
  62.  
  63. check_command check_http  
  64.  
  65. }  
  66.  
  67. define service{  
  68.  
  69. use generic-service  
  70.  
  71. host_name emos-mailserver  
  72.  
  73. service_description SSH  
  74.  
  75. check_command check_ssh  
  76.  
  77. }  
  78.  
  79. define service{  
  80.  
  81. use generic-service  
  82.  
  83. host_name emos-mailserver  
  84.  
  85. service_description SMTP  
  86.  
  87. check_command check_smtp  
  88.  
  89. }  
  90.  
  91. define service{  
  92.  
  93. use generic-service  
  94.  
  95. host_name emos-mailserver  
  96.  
  97. service_description POP3  
  98.  
  99. check_command check_pop  
  100.  
  101. }  
  102.  
  103. #define service{  
  104.  
  105. # use generic-service  
  106.  
  107. # host_name emos-mailserver  
  108.  
  109. # service_description mysql  
  110.  
  111. # check_command check_mysql  
  112.  
  113. # }  
  114.  
  115. define service{  
  116.  
  117. use generic-service  
  118.  
  119. host_name emos-mailserver  
  120.  
  121. service_description check-swap  
  122.  
  123. check_command check_nrpe!check_swap  
  124.  
  125. }  
  126.  
  127. define service{  
  128.  
  129. use generic-service  
  130.  
  131. host_name emos-mailserver  
  132.  
  133. service_description check-load  
  134.  
  135. check_command check_nrpe!check_load  
  136.  
  137. }  
  138.  
  139. define service{  
  140.  
  141. use generic-service  
  142.  
  143. host_name emos-mailserver  
  144.  
  145. service_description check-disk  
  146.  
  147. check_command check_nrpe!check_sda1  
  148.  
  149. }  
  150.  
  151. define service{  
  152.  
  153. use generic-service  
  154.  
  155. host_name emos-mailserver  
  156.  
  157. service_description zombie_procs  
  158.  
  159. check_command check_nrpe!check_zombie_procs  
  160.  
  161. }  
  162.  
  163. define service{  
  164.  
  165. use generic-service  
  166.  
  167. host_name emos-mailserver  
  168.  
  169. service_description check-users  
  170.  
  171. check_command check_nrpe!check_users  
  172.  
  173. }  
  174.  
  175. define service{  
  176.  
  177. use generic-service  
  178.  
  179. host_name emos-mailserver  
  180.  
  181. service_description total_procs  
  182.  
  183. check_command check_nrpe!check_total_procs  
  184.  
  185. #配置完后,重启nagios  
  186.  
  187. killall nagios  
  188.  
  189. service nagios start  
  190.  
  191. pstree |grep nagios  
  192.  
  193. [url]http://192.168.8.150/nagios[/url]  
  194.  

 

#=============================安装 pnp===============================================


  1. cd /opt  
  2.  
  3. tar zxvf pnp-0.4.12.tar.gz  
  4.  
  5. cd pnp-0.4.12  
  6.  
  7. ./configure –with-nagios-user=nagios \  
  8.  
  9. –with-nagios-group-nagios \  
  10.  
  11. with-rrdtool=/usr/local/rrdtool/bin/rrdtool \  
  12.  
  13. with-perfdata-dir=/usr/local/nagios/share/perfdata  
  14.  
  15. make  
  16.  
  17. make all  
  18.  
  19. make install  
  20.  
  21. make install-config  
  22.  
  23. make install-init  
  24.  
  25. #错误提示:RRDs Perl Modules: *** NOT FOUND ***  
  26.  
  27. #解决方法: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/  
  28.  
  29. #要产生图形数据还需在commands.cfg中重定义命令:  
  30.  
  31. define command{  
  32.  
  33. command_name process-service-perfdata  
  34.  
  35. command_line /usr/local/nagios/libexec/process_perfdata.pl  
  36.  
  37. }  
  38.  
  39. #产生图形数据还要设定nagios.cfg文件:  
  40.  
  41. process_performance_data=1 
  42.  
  43. service_perfdata_command=process-service-perfdata  
  44.  
  45. [url]http://192.168.8.150/nagios/pnp/[/url]  
  46.  

 

#==========================监控远程windows主机==================================


  1. #监控windows服务器  
  2.  
  3. wget [url]http://nchc.dl.sourceforge.net/sourceforge/nscplus/NSClient++-Win32-0.3.5.zip[/url]  
  4.  

解压nsclient++0.3.3.zip到c盘根目录

解压为C:\NSClient++


  1. #在nagios监控服务器上  
  2.  
  3. vi /usr/local/nagios/etc/nagios.cfg  
  4.  
  5. cfg_file=/usr/local/nagios/etc/objects/windows.cfg 去掉这句话的注释  
  6.  
  7. #到win服务器上,打开命令窗口,cd到刚才解压的目录  
  8.  
  9. #在命令行界面执行 nsclient++ /install  
  10.  
  11. #然后 nsclient++ SysTray 如果出错不用管!  
  12.  
  13. #此时在“服务”里面已经有了nsclient的服务  
  14.  

双击打开,点”登录”标签,在”允许服务与桌面交互”前打勾

#编辑NES.ini,在 [modules] 选项里,去掉所有的注释符号; 除了

CheckWMI.dll和RemoteConfiguration.dll

#the [Settings] 选项里

修改allowd_host=192.168.8.150(nagios服务器的ip)

#[NSClient] 里面,去掉port=12489的注释!他靠端口12489侦听,所以防火墙要打开这个端口!

在[Settings]部分设置’password’选项来设置密码,作用是在nagios连接过来时要求提供密码.这一步是可选的,我这里方便起见跳过它,不要密码.

#然后启动nsclient

nsclient++ /start

#接下来我们开始配置nagios服务器里面的内容


  1. vi /usr/local/nagios/etc/objects/windows.cfg  
  2.  
  3. define host{  
  4.  
  5. use windows-server  
  6.  
  7. host_name winserver alias  
  8.  
  9. My Windows Server  
  10.  
  11. address 192.168.8.151 –windows服务器的IP地址  
  12.  
  13. }  
  14.  
  15. #修改hostname和address,很重要!!  
  16.  
  17. #重新启动监控服务器上的nagios  
  18.  
  19. killall nagios  
  20.  
  21. service nagios start  
  22.  

 

#==============================安装 sengEmail==================================


  1. #使用sendEmail发送报警邮件  
  2.  
  3. cd /opt  
  4.  
  5. wget [url]http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.55.tar.gz[/url]  
  6.  
  7. tar -zxvf sendEmail-v1.55.tar.gz  
  8.  
  9. cd sendEmail-v1.55  
  10.  
  11. cp sendEmail /usr/local/bin  
  12.  
  13. chmod +x /usr/local/bin/sendEmail  
  14.  
  15. #sendEmail使用方法  
  16.  
  17. /usr/local/bin/sendEmail –f kerry.hu@3aaa.com –t kerry.hu@3aaa.com –s mail.3aaa.com –u “from nagios” –xu kerry.hu@3aaa.com –xp 11111 –m happy  
  18.  

  1. #解释:-f 表示发送者的邮箱  
  2.  
  3. -t 表示接收者的邮箱  
  4.  
  5. -s 表示SMTP服务器的域名或者ip  
  6.  
  7. -u 表示邮件的主题  
  8.  
  9. -xu 表示SMTP验证的用户名  
  10.  
  11. -xp 表示SMTP验证的密码(注意,这个密码貌似有限制,例如我用d!5neyland就不能被正确识别)  
  12.  
  13. -m 表示邮件的内容如果你不带-m参数的话,就会提示你自行输入  
  14.  
  15. #编辑配置文件,nagios使用sendEmail来发警告邮件  
  16.  
  17. vi /usr/local/nagios/etc/objects/commands.cfg  
  18.  
  19. # ‘notify-host-by-email’ command definition  
  20.  
  21. define command{  
  22.  
  23. command_name notify-host-by-email  
  24.  
  25. command_line /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 kerry.hu@3aaa.com –t $CONTACTEMAIL$ –s mail.3aaa.com –u “** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **” –xu kerry.hu@3aaa.com –xp 11111  
  26.  
  27. }  
  28.  
  29. # ‘notify-service-by-email’ command definition  
  30.  
  31. define command{  
  32.  
  33. command_name notify-service-by-email  
  34.  
  35. command_line /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 kerry.hu@3aaa.com –t $CONTACTEMAIL$ –s mail.3aaa.com –u “** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **” –xu kerry.hu@3aaa.com –xp 111111  
  36.  
  37. }  
  38.  
  39. #注:在使用sendEmail的过程中无法发送报警邮件,不知是什么原因,只好改用系统自带的sendmail发邮件!!  
  40.  

Nagios监控系统搭建问题讲述到这里啦。




(责任编辑:IT)
------分隔线----------------------------