nagios event handler应用

默北 Nagiosnagios event handler应用已关闭评论11,5062字数 1682阅读5分36秒阅读模式

一. 介绍
nagios的事件处理(Event Handlers)可以在监控的主机或服务的状态发生变化时触发脚本或系统命令来对故障进行处理,事件处理在告警发出前发生。

事件处理会在下面情况下触发:
1). 主机或服务处于一个软态(SOFT)故障状态时;
2). 主机或服务处于一个硬态(HARD)故障状态时;
3). 主机或服务从软态或硬态的故障状态中初始恢复时;文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-event-handlers-application/

事件处理命令可以通过各种语言脚本来完成,脚本中需要处理下面的参数:
对服务的:$SERVICESTATE$、$SERVICESTATETYPE$和$SERVICEATTEMPT$;
对主机的:$HOSTSTATE$、$HOSTSTATETYPE$和$HOSTATTEMPT$;
脚本须检测这些作为命令行参数传入的值,并采取必要动作来处理这些值。文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-event-handlers-application/

下面通过一个简单的实例来说明,事件处理的用法。先易后难。在系统高负载的情况下,一般就登陆不了服务器,收集当时服务器状态对服务故障排查非常重要的。因此,在检测到系统负载报警的情况下,top下系统信息。文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-event-handlers-application/

二. nagios配置文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-event-handlers-application/

# mkdir /usr/local/nagios/libexec/eventhandlers
# cd /usr/local/nagios/libexec/eventhandlers/
# vim process_snapshot.sh
内容如下:
#!/bin/bash

case "$1" in
    OK)
        ;;
    WARNING)
        /usr/local/nagios/libexec/check_nrpe -H $4 -c process_snapshot
        ;;
    UNKNOWN)
        ;;
    CRITICAL)
        /usr/local/nagios/libexec/check_nrpe -H $4 -c process_snapshot
        ;;
esac
exit 0
# chmod +x process_snapshot.sh 
# chown -R nagios.nagios /usr/local/nagios/libexec/eventhandlers/

添加命令:文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-event-handlers-application/

# vim /usr/local/nagios/etc/objects/commands.cfg 
##########################################
#
#   event handlers
#
define command{
        command_name    process_snapshot
        command_line    $USER1$/eventhandlers/process_snapshot.sh $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ $HOSTADDRESS$
}

配置服务使用事件处理:文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-event-handlers-application/

define service{
        use                             local-service
        host_name                       localhost
        service_description             Current Load
        normal_check_interval           1
        check_command                   check_local_load!1.0,4.0,3.0!2.0,6.0,4.0
        event_handler                   process_snapshot
        }

打开全局事件处理文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-event-handlers-application/

# vi /usr/local/nagios/etc/nagios.cfg
enable_event_handlers=1

三. NRPE配置
更改nrpe配置文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-event-handlers-application/

# vi /usr/local/nagios/etc/nrpe.cfg
#定义执行的命令
command[process_snapshot]=top -cSb n 1 | tail -n +8 | sort -rn -k9 | head -n20 > /tmp/proc_snap.log 
#允许命令中带有参数
dont_blame_nrpe=1

如果使用脚本,需要给nagios执行脚本的权限文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-event-handlers-application/

# visudo
nagios ALL=(root) NOPASSWD:/usr/local/nagios/libexec/eventhandlers/XXXXXX.sh

四. 效果文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-event-handlers-application/

eventhandler文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-event-handlers-application/

eventhandler文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-event-handlers-application/

这里只要是负载告警了就会top下当前状态信息。后面应用将精确到HARD故障状态时触发处理。文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-event-handlers-application/ 文章源自运维生存时间-https://www.ttlsa.com/nagios/nagios-event-handlers-application/

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
默北
  • 本文由 发表于 07/05/2014 01:00:37
  • 转载请务必保留本文链接:https://www.ttlsa.com/nagios/nagios-event-handlers-application/