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”按钮。
页:
[1]