• Nagios监控配置文件及监控流程


    1、安装路径/usr/local/nagios/下存在etc、bin、sbin、share、var 这五个目录。Nagios 各个目录用途说明如下:

    bin    Nagios 可执行程序所在目录
    etc   Nagios 配置文件所在目录
    sbin  Nagios CGI 文件所在目录,也就是执行外部命令所需文件所在的目录
    share        Nagios网页文件所在的目录
    libexec      Nagios 外部插件所在目录
    var   Nagios 日志文件、lock 等文件所在的目录
    var/archives     Nagios 日志自动归档目录
    var/rw      用来存放外部命令文件的目录
    ls /usr/local/nagios/etc/objects/
    commands.cfg contacts.cfg  localhost.cfg  printer.cfg switch.cfg  templates.cfg  timeperiods.cfg  windows.cfg
    每个文件或目录含义如下表所示:
    文件名或目录名     用途
    cgi.cfg           控制CGI访问的配置文件
    nagios.cfg         Nagios 主配置文件
    resource.cfg    变量定义文件,又称为资源文件,在些文件中定义变量,以便由其他配置文件引用,如$USER1$
    objects     objects 是一个目录,在此目录下有很多配置文件模板,用于定义Nagios 对象
    objects/commands.cfg    命令定义配置文件,其中定义的命令可以被其他配置文件引用
    objects/contacts.cfg        定义联系人和联系人组的配置文件
    objects/localhost.cfg       定义监控本地主机的配置文件
    objects/printer.cfg  定义监控打印机的一个配置文件模板,默认没有启用此文件
    objects/switch.cfg   定义监控路由器的一个配置文件模板,默认没有启用此文件
    objects/templates.cfg     定义主机和服务的一个模板配置文件,可以在其他配置文件中引用
    objects/timeperiods.cfg  定义Nagios 监控时间段的配置文件
    objects/windows.cfg        监控Windows 主机的一个配置文件模板,默认没有启用此文件。

    第一:定义监控哪些主机、主机组、服务和服务组;

    第二:定义这个监控要用什么命令实现;

    第三:定义监控的时间段;

    第四:定义主机或服务出现问题时要通知的联系人和联系人组。

    nagios.cfg内容详解:
    log_file=/usr/local/nagios/var/nagios.log   # 定义nagios日志文件的路径  
    cfg_file=/usr/local/nagios/etc/objects/commands.cfg     # “cfg_file”变量用来引用对象配置文件,如果有更多的对象配置文件,在这里依次添加即可。  
    cfg_file=/usr/local/nagios/etc/objects/contacts.cfg    
    cfg_file=/usr/local/nagios/etc/objects/hosts.cfg  
    cfg_file=/usr/local/nagios/etc/objects/services.cfg  
    cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg  
    cfg_file=/usr/local/nagios/etc/objects/templates.cfg  
    cfg_file=/usr/local/nagios/etc/objects/localhost.cfg       # 本机配置文件
    cfg_file=/usr/local/nagios/etc/objects/windows.cfg         # windows 主机配置文件  
    object_cache_file=/usr/local/nagios/var/objects.cache      # 该变量用于指定一个“所有对象配置文件”的副本文件,或者叫对象缓冲文件  
    precached_object_file=/usr/local/nagios/var/objects.precache  
    resource_file=/usr/local/nagios/etc/resource.cfg           # 该变量用于指定nagios资源文件的路径,可以在nagios.cfg中定义多个资源文件。  
    status_file=/usr/local/nagios/var/status.dat               # 该变量用于定义一个状态文件,此文件用于保存nagios的当前状态、注释和宕机信息等。  
    status_update_interval=10                                  # 该变量用于定义状态文件(即status.dat)的更新时间间隔,单位是秒,最小更新间隔是1秒。  
    nagios_user=nagios         # 该变量指定了Nagios进程使用哪个用户运行。  
    nagios_group=nagios       # 该变量用于指定Nagios使用哪个用户组运行。  
    check_external_commands=1     # 该变量用于设置是否允许nagios在web监控界面运行cgi命令;  
                                                               # 也就是是否允许nagios在web界面下执行重启nagios、停止主机/服务检查等操作;  
                                                               # “1”为运行,“0”为不允许。  
    command_check_interval=10s         # 该变量用于设置nagios对外部命令检测的时间间隔,如果指定了一个数字加一个"s"(如10s);  
                                                               # 那么外部检测命令的间隔是这个数值以秒为单位的时间间隔;  
                                                               # 如果没有用"s",那么外部检测命令的间隔是以这个数值的“时间单位”的时间间隔。  
    interval_length=60              # 该变量指定了nagios的时间单位,默认值是60秒,也就是1分钟;  
    # 即在nagios配置中所有的时间单位都是分钟。

    timeperiods.cfg文件详解:

    define contact{  
            name                            generic-contact    ; 联系人名称  
            service_notification_period     24x7               ; 当服务出现异常时,发送通知的时间段,这个时间段"24x7"在timeperiods.cfg文件中定义  
            host_notification_period        24x7               ; 当主机出现异常时,发送通知的时间段,这个时间段"24x7"在timeperiods.cfg文件中定义  
            service_notification_options    w,u,c,r            ; 这个定义的是“通知可以被发出的情况”。w即warn,表示警告状态,u即unknown,表示不明状态;  
                                                               ; c即criticle,表示紧急状态,r即recover,表示恢复状态;  
                                                               ; 也就是在服务出现警告状态、未知状态、紧急状态和重新恢复状态时都发送通知给使用者。  
            host_notification_options       d,u,r                   ; 定义主机在什么状态下需要发送通知给使用者,d即down,表示宕机状态;  
                                                                    ; u即unreachable,表示不可到达状态,r即recovery,表示重新恢复状态。  
            service_notification_commands   notify-service-by-email ; 服务故障时,发送通知的方式,可以是邮件和短信,这里发送的方式是邮件;  
                                                                    ; 其中“notify-service-by-email”在commands.cfg文件中定义。  
            host_notification_commands      notify-host-by-email    ; 主机故障时,发送通知的方式,可以是邮件和短信,这里发送的方式是邮件;  
                                                                    ; 其中“notify-host-by-email”在commands.cfg文件中定义。   
            register                        0                    ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL CONTACT, JUST A TEMPLATE!  
            }  
    define host{  
            name                            generic-host    ; 主机名称,这里的主机名,并不是直接对应到真正机器的主机名;  
                                                            ; 乃是对应到在主机配置文件里所设定的主机名。  
            notifications_enabled           1               ; Host notifications are enabled  
            event_handler_enabled           1               ; Host event handler is enabled  
            flap_detection_enabled          1               ; Flap detection is enabled  
            failure_prediction_enabled      1               ; Failure prediction is enabled  
            process_perf_data               1               ; 其值可以为0或1,其作用为是否启用Nagios的数据输出功能;  
                                                            ; 如果将此项赋值为1,那么Nagios就会将收集的数据写入某个文件中,以备提取。  
            retain_status_information       1               ; Retain status information across program restarts  
            retain_nonstatus_information    1               ; Retain non-status information across program restarts  
            notification_period             24x7            ; 指定“发送通知”的时间段,也就是可以在什么时候发送通知给使用者。  
            register                        0               ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!  
            }

    2、Nagios监控客户端流程及步骤

    1)Nagios客户端安装需要安装两个软件,nagios-plugins-1.4.14.tar.gz和nrpe-2.14.tar.gz,安装方法如下:

    wget http://nchc.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.14/nrpe-2.14.tar.gz;useradd nagios ;tar -xzf  nagios-plugins-1.4.14.tar.gz &&cd nagios-plugins-1.4.14 &&./configure --prefix=/usr/local/nagios &&make &&make install
    tar -xzf nrpe-2.14.tar.gz && cd nrpe-2.14 &&./configure --enable-ssl --with-ssl-lib &&make all && make install-plugin && make install-daemon && make install-daemon-config
    chown -R nagios:nagios /usr/local/nagios/ ;cd .. ;cp nrpe.cfg /usr/local/nagios/etc/nrpe.cfg
    启动nrpe客户端命令:/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

    2) Nrpe客户端配置

    修改vi /usr/local/nagios/etc/nrpe.cfg 修改默认配置段的内容如下,去掉#号,做相应修改。
    command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
    command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
    command[check_disk]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda2
    command[check_procs]=/usr/local/nagios/libexec/check_procs -w 50 -c 100 
    command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20 -c 10

    3)Nagios服务器Nrpe配置

    Nagios 服务器端也需要安装nrpe,同时需要定义Nrpe监控命令,写command.cfg末尾即可:
    define command{
         command_name check_nrpe
          command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
      }

    4) Nagios监控端客户机配置

    在192.168.0.112.cfg加入如下配置段,引用客户端nrpe.cfg里面配置的check_load命令,命令一般格式为:check_nrpe!command

    define service{
    
            use                              local-service     
    
            host_name                        192.168.0.112
    
            service_description               Current Load
    
            check_command                   check_nrpe!check_load
    
            }

     

    5) Nagios设置时间间隔

    max_check_attempts 3
    normal_check_interval 3
    retry_check_interval 2
    notification_interval 3

    Nagios每三分钟检测一次服务,当某次检测到服务状态为异常时,直接进入软态(1/3 soft state),此后,以每2分钟(retry_check_interval)的检测频率,再进行2次(一共进行3次检测,从而达到 max_check_attempts)检测,如果这两次检测服务都为异常,则直接进入硬态(hard state)。进入硬态后,Nagios以每3分钟(normal_check_interva)一次的频率检测服务,这与常态时是一样的;同时每3分钟(notification_interval)进行一次告警。

  • 相关阅读:
    Storm概念学习系列之storm出现的背景
    Storm概念学习系列之什么是实时流计算?
    Storm概念学习系列之storm-starter项目(完整版)(博主推荐)
    JAVA 毕业设计 辅导
    可视化的Redis数据库管理工具redis-desktop-manager的初步使用(图文详解)
    CentOS 7的安装详解
    GT-----如何做Android应用流量测试?
    性能测试开始前必知知识点
    【UI】自动化用例设计技巧
    国外免费接收短信验证码平台网站
  • 原文地址:https://www.cnblogs.com/legenidongma/p/10774114.html
Copyright © 2020-2023  润新知