Nagios (监控)

1.安装nagios
             前提:nagios使用web监控界面,所有需要安装web服务器(sudo apt-get install apache2 )
    sudo apt-get  install nagios3 nagios-plugins nagios-images     (如果没有安装邮件服务,则会自动安装Postfix。)
             安装过程会创建一个用户 nagiosadmin ,并要求设置改用户的密码(登录界面:192.168.1.10/nagios3 )

    nagios3的配置文件位于/etc/nagios3/目录下,其插件的配置文件位于/etc/nagios-plugins/目录下

2.配置
   2.1权限设置
         2.1.1将默认的账号nagiosadmin替换成ng3admin:
          sudo sed -i 's/nagiosadmin/ng3admin/g'  /etc/nagios3/cgi.cfg    ;验证失败
         2.1.2密码修改
           sudo htpasswd /etc/nagios3/htpasswd.users  nagiosadmin
         2.1.3添加账号(比如账号xiebo)
            sudo htpasswd /etc/nagios3/htpasswd.users  xiebo

         2.1.4登录监控界面
                http://192.168.1.10/nagios3/

   2.2启用外部命令
         默认情况下,出于安全考虑,nagios在默认配置中禁用了外部命令(指web服务通过CGI来对nagios进行的操作,比如临时禁用对某个服务的监控,立即执行对某个服务的状态检查等。)。
         如需要开启外部命令,则可以按照下列步骤启用它。修改nagios.cfg,将check_external_commands改为1:
         sudo vi /etc/nagios3/nagios.cfg
             [...]
             
check_external_commands=1
             [...]
 
     执行下面的命令修改权限:
         sudo service nagios3 stop

          sudo dpkg-statoverride --update --add nagios www-data 2710 /var/lib/nagios3/rw
          sudo dpkg-statoverride --update --add nagios nagios 751 /var/lib/nagios3
          (如果不适用dpkg-statoverride,单单用chown/chmod修改权限的话,在软件包升级apt-get upgrade时,权限会被覆盖掉。)

         sudo service nagios3 start


3.nagios监控设置
    3.1   Nagios3的主配置文件是/etc/nagios3/nagios.cfg,其他的配置文件都会被其调用。(其实都可以放在一个文件中,但为了条理清楚,管理方便而分开的)
     默认情况下,nagios3在安装的时候回创建一个/etc/nagios3/conf.d目录,并在该目录下创建一些配置文件。这些文件的配置内容,大多是nagios在安装的过程中自动检测得结果。他们的作用是:
      contacts_nagios2.cfg ---定义了联系人,用于发送通知;
      extinfo_nagios2.cfg ---要监控的主机和服务的扩展信息(比如为主机定义的图标等)
      generic-host_nagios2.cfg ---主机定义模块
      generic-service_nagios2.cfg ---服务定义模块
      host-gateway_nagios2.cfg --要监控的默认网关的定义
      hostgroup_nagios2.cfg --对监控的主机进行分组(比如servers,wireless,switches等等)
      localhost_nagios2.cfg ---本机监控定义
      services_nagios2.cfg -- 要监控的各个主机上的各种服务
     timeperiods——nagios2.cfg ---对监控,通知的时间段定义

(该目录下的所有.cfg文件都会被nagios读取,所以,完全可以在该目录下创建自己的配置文件)


3.2 联系人设置 (系统发生故障时发送通知给联系人)
      sudo vi /etc/nagios3/conf.d/contacts_nagios2.cfg
define contact{   #
        contact_name                    root            #联系人
        alias                           Root                   #别名
        service_notification_period     24x7      #24*7不间断的时间都愿意接收nagios发出来的通知(服务,主机的通知)
        host_notification_period        24x7
        service_notification_options    w,u,c,r     #服务通知选项;
        host_notification_options       d,r            #主机通知选项;
        service_notification_commands   notify-service-by-email      #邮件方式
        host_notification_commands      notify-host-by-email
        email                           [email protected]     #通知的接收者
        }

define contactgroup{  #联系人组
        contactgroup_name       admins
        alias                   Nagios Administrators
        members                 root      #成员
        }
 
 其中: service_notification_options针对“服务"的通知选项;w=Warning,服务状态为警告时;u=Unknown,未知;c=Critical,危急;r=Recoveries,恢复正常;f=Flapping,服务频繁重启时;n=None,不发送通知;
              host_notification_options  针对“主机”的通知选项;d=Down,主机宕机时;u=Unreachable,主机无法联系时;r=Recoveries,恢复正常;f=Flapping,频繁重启;n=None,不发送通知。


 3.3主机设置 
     可以创建自己的主机配置文件,只需要放在/etc/nagios3/conf.d/目录下,就会被nagios3加载。
    sudo vi /etc/nagios3/conf.d/hosts.cfg
         define host{
        use                     generic-host            #所使用的模块(这里就是generic-host_nagios2.cfg)
        host_name               localhost            #定义一个叫localhost的主机
        alias                   localhost_xiebo        #别名
        address                 127.0.0.1              #地址
        #parents     baidu      ;定义一个父主机(可以没有)
        }

3.4主机组设置
           主机分组后,在nagios监控界面上看起来会比较直观,不容易乱。  
      sudo vi /etc/nagios3/ conf.d/hostgroups_nagios2.cfg
     
# A simple wildcard hostgroup
define hostgroup {
        hostgroup_name  all
                alias           All Servers
                members         *                         # “*”表示所有主机
        }

# A list of your web servers
define hostgroup {
        hostgroup_name  http-servers
                alias           HTTP servers
                members         localhost , Web_server1         #一个组中如果有多个分组用逗号隔开
        }


3.5 服务设置
   使用nagios不单单用来监控主机,更重要的是用它来监控主机上各种服务。
           服务的配置比较复杂,因为不同的服务牵扯到各种不同的监控命令。nagios能否支持相应的服务要看是否安装了相应的插件;在/usr/lib/nagios/plugins/目录下面是已经安装的所有插件;他们的配置文件则位于/etc/nagios-plugins/config/目录下。
           一般来讲,这些插件可以满足日常需求,不过万一没有你需要的可以到下面的网站去找: www.nagiosplugins.org
   
    vi /etc/nagios3/conf.d/services_nagios2.cfg

      define service{
        use                             generic-service         ; 要使用的模板(/etc/nagios3/conf.d/generic-server_nagios2.cfg)
        host_name                       localhost              ;针对的主机
        service_description             Disk Space        ;对监控的服务的描述
        check_command                   check_all_disks!20%!10%     ;检查命令
        }

    
define service {
        
  use                         generic-service  
        hostgroup_name                  ssh-servers    ;针对的“主机组”的名称
        service_description             SSH            
        check_command                   check_ssh    
        notification_interval           0        ; 通知的时间间隔,设置为0,表示只通知一次;如果设置为60,表示每60分钟通知一次。  
}  




4.用NRPE进行远程监控  (这样就不需要再每台机器上安装nagios,也能获取敏感信息,比如剩余硬盘空间,进程数量,负荷等等)
      NRPE是Nagios Remote Plugin Executor的简称,可以让nagios在远程机器上执行本地检查命令。也就是说,安装NRPE Server的机器,虽然没有安装nagios,也和安装了差不多--远程的nagios可以像检测本机一样,对它进行只有本机上才能进行的各种检测。
     
   4.1安装nagios-nrpe-server:
      sudo apt-get install nagios-nrpe-server
                   修改/etc/nagios/nrpe.cfg 设置nagios服务器的IP地址,并定义检测命令和参数:
       vi /etc/nagios/nrpe.cfg
         [...]
         #把allowed_hosts改为nagios服务器的IP地址
         allowed_hosts=192.168.1.10
         [...]
          command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
         command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
         command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
         command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
         command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200 
         command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -e    #新增此行
         [..]

    4.2 重启nagios-nrpe-server服务
           sudo service nagios-nrpe-server restart

   4.3在安装nagios3的服务器上将安装nrpe服务的主机配置进去
         vi  /etc/nagios3/conf.d/142.cfg
define host{
       use generic-host
      host_name  142_wan
       alias     142_linux
      address    192.168.1.142
       parents                 gateway
           }   
#disk space
define service{
             use generic-service
             host_name 142_wan
             service_description  Disk Space
             check_command check_nrpe_larg!check_all_disks$HOSTADDRESS
              }   
#current users
define service{ 
             use generic-service
             host_name 142_wan
             service_description  Current Users
             check_command check_nrpe_larg!check_users$HOSTADDRESS
              }   
#total processes
define service{
             use generic-service
             host_name 142_wan
             service_description  Total Processes
             check_command check_nrpe_larg!check_total_procs$HOSTADDRESS
              }   
#currrent load
define service{
             use generic-service
             host_name 142_wan
             service_description  Current Load
             check_command check_nrpe_larg!check_load$HOSTADDRESS
              }   

说明:要在被检查的主机上(NRPE服务器上)执行什么样的检测,就在主机的/etc/nagios/nrpe.cfg文件中定义相关的命令,然后在nagios服务上用nrpe调用即可。
           check_nrpe_larg命令是由nagios-nrpe-plugin软件包提供,所以需要安装对应的软件包:
              sudo apt-get install nagios-nrpe-plugin


重启nagios3服务:   sudo service nagios3 restart

你可能感兴趣的:(网络,server,nagios)