一、什么是nagios

1.nagios 简介

        Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机以及服务,同时提供异常通知功能等。Nagios可 运行在Linux/Unix平台之上,同时提供一个可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等。

        Nagios是十分受欢迎的、开源且免费的计算机及网络系统监控软件。Nagios是“Nagios Ain‘t Gonna Insist On Sainthood”的缩写。它最早是在1999年以“NetSaint”发布。Nagios主要应用在Linux和Unix平台环境下的监控,但通过插 件,也可以监控MS Windows系统的主机。Nagios在LinuxCon 2010 Poll并选为最受欢迎的IT运维工具。它被Infoworld在2009年评为最佳开源软件,同时也是该年度的SourceForge社区的系统管理工 具最佳选择。Nagios也被很多知名企业所采用,包括AOL,DHL,At&t,欧莱雅,德州仪器,Siemens COM CZ,时代华纳有线,Yahoo等。


2.Nagios的主要功能特点:

- 监视网络服务 (SMTP, POP3, HTTP, NNTP, PING等)

- 监视主机资源 (进程, 磁盘等)

- 简单的插件设计可以轻松扩展Nagios的监视功能

- 服务等监视的并发处理

- 错误通知功能 (通过email, pager, 或其他用户自定义方法)

- 可指定自定义的事件处理控制器

- 可选的基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题,以及日志等等

- 可以通过手机查看系统监控信息


服务端(222.105.134.103)

rpm安装nagios首先需要安装扩展yum源

rpm -y install epel-release


rpm安装nagios

yum install -y httpd nagios nagios-pluginx nagios-plugins-all nrpe nagios-plugins-nrpe


安装后配置nagios登录密码

[root@localhost ]# htpasswd -c /etc/nagios/passwd nagiosadmin
New password:
Re-type new password:
Adding password for user nagiosadmin


修改nagios配置文件

vim /etc/nagios/nagios.cfg

检测配置文件是否正确

nagios -v  /etc/nagios/nagios.cfg

启动http和nagios

service httpd start;service nagios start

清除防火墙配置:iptables -F

浏览器访问http://ip/nagios


客户端配置(222.105.134.102)

搭建配置nagios

配置扩展源rpm -y install epel-release


rpm安装nagios

yum install -y httpd nagios nagios-pluginx nagios-plugins-all nrpe nagios-plugins-nrpe


vim /etc/nagios/nrpe.cfg 找到 “allowed_hosts=127.0.0.1”添加成"allowed_hosts=127.0.0.1,222.105.134.103"    #加入服务机的ip

找到"dont_blame_nrpe=0"改为"dont_blame_nrpe=1"

启动客户端:service nagios start



服务端本地监控客户机上本地才能监控的服务时,需配置服务端nagios配置文件,添加如下内容:

[root@localhost ]# vi /etc/nagios/objects/commands.cfg 

define command{

         command_name    check_nrpe

         command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

         }


服务端添加被监控主机(222.105.134.102)监控的项目

cd /etc/nagios/conf.d/

vim 222.105.134.102.cfg

define host {
             use            linux-server
                         ;定义监控主机
             host_name    222.105.134.102
             alias        134.102
             address      222.105.134.102
             }
   define service {
           use                    generic-service
           host_name              222.105.134.102
           service_description    check_ping
           check_command          check_ping!10.020%!200.0,50%
           max_check_attempts 5
           normal_check_interval 1
           }
   
   define service {
         use                      generic-service
         host_name                222.105.134.102
         service_description      check_ssh
         check_command            check_ssh
         max_check_attempts       5   #当nagios检测到问题时,一共尝试检测5次都有问题才会告警,如果该数值为1,那么检测到问题立即告警
        normal_check_interval 1   #重新检测的时间间隔,单位是分钟,默认是3分钟
        notification_interval 60  #在服务出现异常后,故障一直没有解决,nagios再次对使用者发出通知的时间。单位是分钟。如果你认为,所有的事件只需要一次通知就够了,可以把这里的选项设为0。 
}

define service{
         use                     generic-service
         host_name               222.105.134.102
         service_description     check_http
         check_command           check_http
         max_check_attempts 5
         normal_check_interval 1
 }
  
  define service {
        use                      generic-service
        host_name                222.105.134.102
        service_description      check_load
        check_command            check_nrpe!check_load
        max_check_attempts 5
        normal_check_interval 1
}

 
 define service {
        use                      generic-service
        host_name                222.105.134.102
        service_description      check_disk_hda1
        check_command            check_nrpe!check_hda1
        max_check_attempts 5
        normal_check_interval 1
}

 define service {
        use                      generic-service
        host_name                222.105.134.102
        service_description      check_disk_hda2
        check_command            check_nrpe!check_hda2
        max_check_attempts 5
        normal_check_interval 1
}

     监控磁盘是修改服务端的/etc/nagios/nrpe.cfg配置文件,修改如下所示

command[check_hda1]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
command[check_hda2]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda2
修改成:
command[check_hda1]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda1
command[check_hda2]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda2

即系统分区号必须要和配置文件中的分区号一致



      写入完成后   服务端重启nagios服务:/etc/init.d/nagios restart  

      客户端重启nrep服务:/etc/init.d/nrep restart