Nagios监控系统搭建问题

运维 系统运维
nagios监控系统搭建问题:Nagios是一个监控系统运行状态和网络信息的监控系统。Nagios能监控所指定的本地或远程主机以及服务,同时提供异常通知功能等。这篇文章主要讲的是如何搭建nagios监控系统。

  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.  

#p#

  #============================安装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.  

#p#

  #=============================安装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.  

#p#

  #=============================安装 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.  

#p#

  #==========================监控远程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.  

#p#

  #==============================安装 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监控系统搭建问题讲述到这里啦。

【编辑推荐】

Nagios报错notify-by-email解决

Nagios配置文件的结构

配置Nagios监控Oracle服务器

责任编辑:zhaolei 来源: nagiostutorial
相关推荐

2011-03-23 09:05:40

Nagios监控

2011-03-23 10:17:25

Nagios监控

2011-03-21 15:42:14

LinuxNagios

2011-03-23 12:44:06

Nagios监控

2011-03-25 15:37:17

Solarisnagios

2014-03-19 17:22:33

2011-03-04 10:47:06

Nagios监控Sphinx

2011-03-24 10:08:39

Nagios监控oracle

2011-03-28 17:18:57

nagios监控iostat

2011-03-21 14:53:27

Nagios监控Linux

2011-03-21 14:43:42

2012-02-22 22:21:15

nagios开源

2011-03-22 09:07:12

nagios监控oracle

2011-03-25 09:34:34

Nagios网络监控

2011-03-28 17:35:44

NagiosNRPE监控

2011-03-24 10:59:09

Nagios监控Mysql

2011-08-22 15:09:37

nagios网络监控

2013-12-13 17:04:37

运维监控Nagios

2011-03-28 16:13:47

nagios监控WIN2003

2011-03-22 14:29:19

Nagios监控
点赞
收藏

51CTO技术栈公众号