zabbix Action

通常,一个报警的产生,是这样的一个过程。

如果某种条件符合,那么报警。
抽象成计算机语言,就是:

    if (ConditionA == true){

    Alet();

    }

还可以选择给谁报警(哪个用户)、怎样报警(报警途径),具体如下:

    if (ConditionA == true){
    Alert(userA.email);
    Alert(userB.sms);
    }

如果处理问题不一定要报警,可以在服务器对于一些简单问题上运行一些命令的初步处理,比如Nginx挂了,自己就可以尝试的重启服务,则这又成了:

if (ConditionA == true){
Alert(email);
Alert(sms);
Excute(command);
}

再扩展一些,可能条件更复杂一些:

if (ConditionA == true && ConditionB != true){
Alert(email);
Alert(sms);
Excute(command);
}

这就是Zabbix的“报警”了,为什么这里的“报警”需要加上引号呢? 其实,发生问题后,去执行一些命令,这已经不是狭义上的“报警”了。在Zabbix 中,这个被定义为Action(动作) ,就是当某种Condition符合时,会进行一些操作,这些操作就叫做Action。 Condition译为“条件”,在Zabbix中,Action的触发是需要条件的,比如属于某个Host Group的Host,某个Trigger是Problem状态了,等等,,

在Zabbix中,报警的途径是依附于用户的。即不能直接将一个Action设置为给某个邮箱发邮件,一定要设置Action向某个用户发送报警,发送报警的途径是邮箱,那么就会发送到用户的预先设置邮箱地址。 这个邮箱地址叫做用户的Media ,即联系方式。

下面来介绍Action的设置。

1,Action

Action是Zabbix非常强大的功能,可以基于Event的不同状态,执行不同的操作。 最常见的就是报警时,将报警通过各种方式发送给对应的用户。

目前Zabbix支持Action动作根据下面所列出的Events触发。

  • Trigger Events:当Trigger的状态变化,即从OK 到 Problem 或从 Problem 到OK时都会产生。
  • Discovery Events:当发生网络Discovery的时候产生。
  • Auto Registration Events: 当有新的Zabbix Agent自动注册到Zabbix的时候产生。
  • Internal Events:当Item变为“异常”状态 或者Trigger变为“未知”状态时产生。

下面进入Action的配置。

  • 从菜单栏的“Configuration” → “Actions” 进入界面。
  • 在“Event source”下拉框中,可以选择只显示依赖于某种源头的Action。
  • 单击Action条目后,可以看到三个标签:“Action”、“Condition”、“Operations”。 “Action”用来定义Action本身的一些属性和说明;“Condition”用来定义触发Action的各种条件组合关系;“Operations”定义的是Action触发后的一些操作。


默认是建立基于Trigger Events的Action,如果需要其他的,选择对应的选项即可。

Action”标签,有下面的属性可以设置。

  • Name:唯一的Action名字。
  • Default subject:报警的默认标题。
  • Default message:报警的默认内容。
  • Recovery message:恢复消息,是否在报警恢复正常后发送消息。 Zabbix将“OK”状态的Trigger认为是一个恢复recovery event。 注意:如果使用了Escalation机制,Recovery event只会触发一次。对已Recovery的报警,可以像发出报警的邮件一样,设置报警标题和内容。

    以下几点需要注意:

    1,自定义的恢复信息,只针对Condition,是“Trigger value is PROBLEM”的生效。

    2,恢复信息只会发送给那些之前收到过关于这个Action报警信息的人。

    3,恢复信息和Action 依赖PROBLEM生成的Evnet维护同一份ACK状态。

    4,在Recovery信息中,EVENT.*Macro中的数据,都是基于出问题的Event,而不是Recovery。

    5,在Recovery信息中,EVENT.RECOVERY.* 表示的是出自Recovery event的数据。

    • Recovery subject:Recovery信息的标题。
    • Recovery message:Recovery信息中的内容。
    • Enabled: 是否启用这个Action。

2,Operation

Operation指的是Action触发以后具体的操作,在Zabbix中,可以定义下面这些操作:

  • 发送一条信息。
  • 执行一个命令(包括IPMI)。


对于discovery事件,还有额外的一些操作:

  • 添加一个Host。
  • 移除一个Host。
  • 启用一个Host。
  • 禁用一个Host。
  • 将Host添加到一个Host group。
  • 将Host从一个Host grou中删除。
  • 关联到一个Template。
  • 取消和一个Template的关联。


对于auto-registration事件,也有额外的一些操作:

  • 添加一个Host。
  • 禁用一个Host。
  • 添加Host到一个Host group。
  • 关联到一个Template。


在配置Action的Operation标签页时,可以看到目前配置的Operation,单击“New”按钮。 

原文地址:https://www.cnblogs.com/xianguang/p/6874613.html