今天要讲的用例是,当找不到合适的方法来为Zabbix trigger编写恢复表达式时该怎么办。即我们知道如何发现问题,但是却没有好方法来检测问题何时得到了解决。
一般会出现在大型环境部署中,比如说:
- 一个日志文件中有上百种pattern,我们要理解且需要这些pattern
- SNMP trap监控项 (snmptrap.fallback)中写有不同的pattern
在这些情况下,trigger很有可能配置成“Event generation mode: Multiple.”(事件生成模式:多个)。实际上这意味着,当“problematic metric”发生时,会额外生成一个事件。
目标:
我只需要收到一份有关记录的邮件,然后关闭事件。
一个变通的办法( 让我们姑且在这里称之为解决方案)是,我们可以定义一个动作,来做到:
关联一个API端点
手动确认事件并关闭事件
这一方法有效的最重要的原因是,事件发生,产生action时,在操作中可以知道问题的事件ID,也就是通过宏{EVENT.ID}得知。
要解决问题,我们需要安装全局API属性:
{$Z_API_PHP}=http://127.0.0.1/api_jsonrpc.php
{$Z_API_USER}=api
{$Z_API_PASSWORD}=zabbix