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

本文介绍了一种在Zabbix中处理复杂触发器事件的方法,特别是在大规模环境中,如日志文件多种pattern和SNMP trap监控。当无法编写合适的恢复表达式时,可以通过创建动作关联API端点,实现手动确认并关闭事件。文章详细说明了如何设置和使用这个自动化解决方案,包括定义API属性、创建发送邮件的通知动作和一分钟后关闭事件的动作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天要讲的用例是,当找不到合适的方法来为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

在这里插入图片描述

注意:
‘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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值