系统版本:

        CentOS release 5.7 x86_64

软件版本:

        nagios-3.3.1.tar.gz,nagios-plugins-1.4.15.tar.gz,pnp4nagios-0.6.6.tar.gz,nrpe-2.13.tar.gz,check_openmanage-3.7.3.tar.gz,OM_6.2.0_ManNode_A00.tar.gz

软件说明:

        pnp4nagios-0.6.6.tar.gz:基于rrdtool为nagios数据呈现连续的图表信息。

        OM_6.2.0_ManNode_A00.tar.gz :检测dell服务器硬件状态,包括风扇转速,温度,电源电压等等所有硬件状态信息。可通过web方式查看。

        check_openmanage-3.7.3.tar.gz:探测OMSA硬件状态信息,返回给nagios,在nagios上成像。

 Part1安装nagios前的准备

    下载nagios机器插件

 
  
  1. wget http://cdnetworks-kr-2.dl.sourceforge.net/project/nagios/nagios-3.x/nagios-3.3.1/nagios-3.3.1.tar.gz 
  2. wget http://cdnetworks-kr-2.dl.sourceforge.net/project/nagiosplug/nagiosplug/1.4.15/nagios-plugins-1.4.15.tar.gz 

    配置sohu的yum安装源

 
  
  1. cd /etc/yum.repos.d/  
  2. mv CentOS-Base.repo CentOS-Base.repo.bak  
  3. wget http://mirrors.sohu.com/help/CentOS-Base-sohu.repo  
  4. mv CentOS-Base-sohu.repo CentOS-Base.repo  
  5. vim /etc/yum/pluginconf.d/fastestmirror.conf  
  6.     关闭fastestmirror,enable选项设置为0 
  7. yum clean 
  8. yum makecache 
  9. yum update 

    yum安装LAMP环境(mysql非必须,我是直接把原来安装LAMP环境的操作copy过来的,偷懒了~~~)

 
  
  1. yum -y install httpd php php-mysql mysql mysql-server php-snmp php-pdo perl-DBDMySQL 

      启动httpd

 
  
  1. /etc/init.d/httpd start 

    设置开机启动apache

 
  
  1. chkconfig --level 2345 httpd on 
  2. chkconfig --list httpd 

Part2安装nagios及其插件

    添加nagios用户和用户组

 
  
  1. useradd nagios && passwd nagios 
  2. groupadd nagcmd 
  3. usermod -G nagcmd nagios 

    安装nagios及其插件

 
  
  1. tar xzvf nagios-3.3.1.tar.gz 
  2. cd nagios 
  3. ./configure --with-nagios-user=nagios --with-nagiosgroup=nagcmd && make all && make install && make install-init && make install-config && make install-commandmode && make install-webconf 
  4. htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin    //创建web界面管理员账户,需要创建密码。 
  5. vim /etc/init.d/nagios  //修改启动文件中的commandfile,启动时给full权限 
  6.  
  7.      if [ -d $NagiosLockDir ]; then touch $NagiosLockDir/$NagiosLockFile; fi 
  8.  
  9.                echo " done." 
  10.  
  11.                 chmod 777 $NagiosCommandFile    //添加此行代码 
  12.  
  13.                 exit 0 
  14. /etc/init.d/nagios start 
  15. /etc/init.d/httpd restart 

    安装nagios插件

 
  
  1. tar -xzvf nagios-plugins-1.4.15.tar.gz 
  2. cd nagios-plugins-1.4.15 
  3. ./configure --prefix=/usr/local/nagios/ && make && make install 
  4. grep ^User /etc/httpd/conf/httpd.conf    //查看apache用户 
  5.     User apache 
  6. usermod -G nagcmd apache    //将apache用户添加到nagcmd用户组中 
  7. chown -R nagios:nagios /usr/local/nagios/ 
  8. chmod 755 -R /usr/local/nagios/ 

Part3 pnp4nagios 安装

    下载pnp4nagios        

 
  
  1. wget http://cdnetworks-kr-1.dl.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.6.tar.gz 

    安装pnp4nagios

 
  
  1. tar xzvf pnp4nagios-0.6.6.tar.gz 
  2. yum -y install apr-devel apr-util check-devel cairo-devel pango-devel libxml2-devel rpmbuild glib2-devel dbus-devel freetype-devel fontconfig-devel gcc-c++ expat-devel python-devel libXrender-devel zlib libpng freetype libjpeg fontconfig gd libxml2 pcre pcre-devel libpcre libconfuse libart_lgpl-devel 
  3. yum -y install ruby 
  4. yum -y install libdbi 

    yum安装rrdtool,可能之前的yum源没有此文件包,所以需要配置一个新的yum源。

 
  
  1. cd /etc/yum.repos.d/ 
  2. vim dag.repo 
  3.  
  4.             添加内容: 
  5.                [dag] 
  6.                name=Dag RPM Repository for Red Hat Enterprise Linux 
  7.                baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag 
  8.                gpgcheck=1 
  9.                gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt 
  10.                enabled=1 
  11.            保存退出 
  12. mv CentOS-Base.repo CentOS-Base.repo.old 
  13. yum install -y rrdtool perl-rrdtool rrdtool-devel 
  14. cd /root/softwares/pnp4nagios-0.6.6 
  15. ./configure --with-nagios-user=nagios --with-nagios-group=nagcmd 
  16. make all 
  17. make install && make install-webconf && make install-config && make install-init 

    添加pnp4nagios的配置文件

 
  
  1. cd /usr/local/pnp4nagios/etc/ 
  2. mv misccommands.cfg-sample misccommands.cfg 
  3. mv nagios.cfg-sample nagios.cfg 
  4. mv npcd.cfg-sample npcd.cfg 
  5. mv process_perfdata.cfg-sample process_perfdata.cfg 
  6. mv rra.cfg-sample rra.cfg 
  7. cd pages/ 
  8. mv web_traffic.cfg-sample web_traffic.cfg 
  9. cd ../check_commands 
  10. mv check_all_local_disks.cfg-sample check_all_local_disks.cfg 
  11. mv check_nrpe.cfg-sample check_nrpe.cfg 
  12. mv check_nwstat.cfg-sample check_nwstat.cfg 
  13. /etc/init.d/npcd restart     //启动pnp4nagios 

    修改nagios配置文件

 
  
  1. cd /usr/local/nagios/etc 
  2. vim nagios.cfg 
  3.  
  4.      #打开注释项: 
  5.        process_performance_data=1 
  6.  
  7.        host_perfdata_command=process-host-perfdata 
  8.  
  9.        service_perfdata_command=process-service-perfdata 
  10.  
  11.  cd objects/ 
  12. vim commands.cfg 
  13.  
  14.       修改perfdata 标红的command_line 
  15.  
  16.       # 'process-host-perfdata' command definition definecommand{         
  17.              command_name    process-host-perfdata         
  18.              command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl         
  19.              } 
  20.              # 'process-service-perfdata' command definition define command{         
  21.              command_name    process-service-perfdata         
  22.              command_line    /usr/local/pnp4nagios/libexec/process_perfdata.pl 
  23.              } 
  24. vim templates.cfg //添加小太阳模版,镶嵌在nagios页面上 
  25.  
  26.     ##### 添加pnp4nagios的模板 ####### 
  27.     define host { 
  28.        name host-pnp 
  29.        action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=_HOST_ 
  30.        register 0 
  31.        } 
  32.      define service { 
  33.  
  34.          name srv-pnp 
  35.  
  36.          action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$ 
  37.          register 0 
  38.              } 

    遇到的问题:

    一、访问nagios 页面,点击图表显示图标,报错如下:

    Kohana requires PHP 5.2 or newer.

    说明我们安装的php 版本过低,需要升级php
 
    二、访问nagios 页面,点击图表显示图标,报错如下:
    解决办法:(与yum 升级php 相似)
    找到php 比较新的yum 源,创建新的源,将原有的yum 源先屏蔽掉,使用新源。
 
  
  1. mv CentOS-Base.repo CentOS-Base.repo.old 
  2. vim updatephp.repo 
  3.             添加如下内容 
  4.             [abrmblings] 
  5.             name=Jason's Utter Ramblings Repo 
  6.             baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/ 
  7.             enabled=1 
  8.             gpgcheck=1 
  9.             gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka 
  10. yum update php -y 
  11. yum install php*-gd

Part4 安装nrpe和 OMSA,以及用nrpe检测OMSA

    下载安装nrpe

 
  
  1. wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.13.tar.gz 
  2. tar xzvf nrpe-2.13.tar.gz 
  3. cd nrpe-2.13 
  4. /configure && make all && make install-plugin && make install-daemon && make install-daemon-config 
  5. ll /usr/local/nagios/ 
  6. chown -R nagios:nagios /usr/local/nagios 

    添加nrpe检测OMSA配置文件

 
  
  1. mkdir -p /usr/local/nagios/etc/objects/Dell_OMSA 
  2. cd /usr/local/nagios/etc/objects/Dell_OMSA/ 

 
  
  1. vim dell_service_linux.cfg 
            其中添加内容:
 
  
  1. define service { 
  2.      host_name web112 
  3.      service_description check_omsa 
  4.      use generic-service 
  5.      check_command check_nrpe!check_omsa 
  6.      _ser_info dell omsa 
  7.      check_interval 10 
  8.      notification_options c,r 
  9.      }             

 
  
  1. vim /usr/local/nagios/etc/objects/localhost.cfg 

            添加如下内容:

 
  
  1. ################ 自定义主机 ################## 
  2. define host{ 
  3.     use linux-server,host-pnp 
  4.     host_name web112 
  5.     alias pnp4nagios 
  6.     address 192.168.144.112 

 
  
  1. vi /usr/local/nagios/etc/nagios.cfg 
            添加如下语句:
 
 
  
  1. cfg_file=/usr/local/nagios/etc/objects/Dell_OMSA/dell_service_linux.cfg 
 
  
  1. vi /usr/local/nagios/etc/nrpe.cfg 

            添加如下语句:

 
  
  1. command[check_omsa]=/usr/local/nagios/libexec/check_openmanage -b ctrl_fw=ALL\/ctrl_driver=ALL -p 

    下载安装OMSA检测插件

 
  
  1. cd /root/softwares/ 
  2. wget http://folk.uio.no/trondham/software/files/check_openmanage-3.7.3.tar.gz 
  3. tar xzvf check_openmanage-3.7.3.tar.gz 
  4. cp check_openmanage /usr/local/nagios/libexec/ 
  5. ll /usr/local/nagios/libexec/check_openmanage 
  6. chown -R nagios:nagios /usr/local/nagios/ 
  7. ll /usr/local/nagios/libexec/check_openmanage 
  8. /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d 
  9. /usr/local/nagios/libexec/check_nrpe -H localhost 
  10. /etc/init.d/nagios restart 
  11. /etc/init.d/npcd restart 

    被监控机器安装OMSA(非常easy)

 
  
  1. mkdir -p /usr/local/omsa 
  2. cd /usr/local/omsa 
  3. wget http://ftp.us.dell.com/sysman/OM_5.5.0_ManNode_A00.tar.gz 
  4. vim  /etc/redhat-release   //在行末添加Tikanga 
  5.     CentOS release 5.6 (Final)Tikanga 
  6. sh linux/supportscripts/srvadmin-install.sh -x  
  7. linux/supportscripts/srvadmin-services.sh start 

By default, OMSA web application runs on Port 1311 . Login to OMSA from web using the URL: https://{omsa-server-ip-address}:1311 using root as shown below. Please note that you can login only using HTTPS.

Prat5 邮件报警功能设置

 
  
  1. vim /usr/local/nagios/etc/objects/contacts.cfg 
            在最后添加如下内容:
 
  
  1. ############# system administrators ############# 
  2. define contact{ 
  3.     contact_name **** 
  4.     use generic-contact 
  5.     alias administrator01 
  6.     email 接受报警的邮箱01,例如:123456789@qq.com 
  7.   
  8.  
  9.  define contact{ 
  10.     contact_name **** 
  11.     use generic-contact 
  12.     alias administrator02 
  13.     email 接受报警的邮箱02 
  14.   
  15. define contact{ 
  16.     contact_name **** 
  17.     use generic-contact 
  18.     alias administrator03 
  19.     email 接受报警的邮箱03 
  20.  
  21.  define contact{ 
  22.      contact_name **** 
  23.      use generic-contact 
  24.      alias administrator04 
  25.      email 接受报警的邮箱04 
  26. ############# group of system administrators ########### 
  27. define contactgroup{ 
  28.     contactgroup_name system-admins 
  29.     alias Nagios Administrators 
  30.     members 刚才定义的contact_name,成员与成员之间用逗号分割 

 
  
  1. vim /usr/local/nagios/etc/objects/templates.cfg 

            将contact_groups 选项的admins修改为system-admins

            或者通过sed命令直接替换:

 
  
  1. sed 's/admins/system\-admins/g' /usr/local/nagios/etc/objects/templates.cfg 

    要成功发送邮件,还要开启smtp服务,需要启用sendmail或者相似应用。我在这里用的是系统的sendmail。

 
  
  1. /etc/init.d/sendmail start 

    发送测试邮件:

 
  
  1. echo 'Hello,nagios.I'm your administrator!!!' | mail -s 'mail test' *******@qq.com 

    如果邮件发送不成功,请检查tcp25端口是否在监听,并且查看防火墙设置是否放行25端口。

        至此,nagios的监控功能初步完成。之后需要做的就是把被监控节点一个一个的加进来了。如果觉得一台一台添加非常不fashion,well,自己去写批处理的脚本。

        That‘s all.