官方博文 | 通过Zabbix API 自动关闭问题

举报
Zabbix中国 发表于 2021/02/08 10:21:09 2021/02/08
【摘要】 今天要讲的用例是,当找不到合适的方法来为Zabbix trigger编写恢复表达式时该怎么办。即我们知道如何发现问题,但是却没有好方法来检测问题何时得到了解决。一般会出现在大型环境部署中,比如说:一个日志文件中有上百种pattern,我们要理解且需要这些patternSNMP trap监控项 (snmptrap.fallback)中写有不同的pattern在这些情况下,trigger很有可能...


今天要讲的用例是,当找不到合适的方法来为Zabbix trigger编写恢复表达式时该怎么办。即我们知道如何发现问题,但是却没有好方法来检测问题何时得到了解决。

一般会出现在大型环境部署中,比如说:

  • 一个日志文件中有上百种pattern,我们要理解且需要这些pattern

  • SNMP trap监控项 (snmptrap.fallback)中写有不同的pattern

在这些情况下,trigger很有可能配置成“Event generation mode: Multiple.”(事件生成模式:多个)。实际上这意味着,当“problematic metric”发生时,会额外生成一个事件。


目标:

我只需要收到一份有关记录的邮件,然后关闭事件。


一个变通的办法( 让我们姑且在这里称之为解决方案)是,我们可以定义一个动作,来做到:

  1. 关联一个API端点

  2. 手动确认事件并关闭事件

这一方法有效的最重要的原因是,事件发生,产生action时,在操作中可以知道问题的事件ID,也就是通过宏{EVENT.ID}得知。


要解决问题,我们需要安装全局API属性:

{$Z_API_PHP}=http://127.0.0.1/api_jsonrpc.ph

{$Z_API_USER}=api

{$Z_API_PASSWORD}=zabbix

图片


注意:

‘http://127.0.0.1/api_jsonrpc.php’ 表示前端服务器与systemd:zabbix-server在同一个服务器上运行。如果不在同一服务器,我们需要写一个Zabbix GUI的前端地址并添加'api_jsonrpc.php'。


我们会有两个action。首先会发送邮件通知:

图片


一分钟后,第二个action是关闭事件:


图片

以下的bash代码段必须全部添加进去。复制粘贴即可,无需做任何更改。

url={$Z_API_PHP}
user={$Z_API_USER}
password={$Z_API_PASSWORD}

# authorization
auth=$(curl -sk -X POST -H "Content-Type: application/json" -d "{
\"jsonrpc\": \"2.0\",

\"method\": \"user.login\",
\"params\": {
\"user\": \"$user\",
\"password\": \"$password\"

},

\"id\": 1,
\"auth\": null
}
" $url | \
grep -E -o "([0-9a-f]{32,32})")

# acknowledge and close event

curl -sk -X POST -H "Content-Type: application/json" -d "{
\"jsonrpc\": \"2.0\",
\"method\": \"event.acknowledge\",
\"params\": {
\"eventids\": \"{EVENT.ID}\",
\"action\": 1,
\"message\": \"Problem resolved.\"
},
\"auth\": \"$auth\",
\"id\": 1
}" $url

# close api key
curl -sk -X POST -H "Content-Type: application/json" -d "{
\"jsonrpc\": \"2.0\",
\"method\": \"user.logout\",
\"params\": [],
\"id\": 1,
\"auth\": \"$auth\"
}
" $url


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。