You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Zabbix监控REST API并在响应含"up":false时触发邮件告警?

一步步实现REST API含"up":false时的Zabbix邮件告警

别担心,我带你从零开始搞定这个需求,完全不懂Zabbix也能跟着操作!

1. 先搞定基础准备

  • 确保你的Zabbix Server(或者用来监控的Zabbix Agent)是5.0及以上版本(新版本原生支持HTTP Agent功能,操作更简单)
  • 先配置好Zabbix的邮件告警媒介:进入Zabbix前端的「管理」→「媒介类型」,创建一个SMTP类型的媒介,填好你的邮箱服务器信息(比如QQ邮箱的SMTP是smtp.qq.com,端口465,开启SSL);然后给需要接收告警的用户绑定这个媒介(「管理」→「用户」→编辑用户→「媒介」标签添加刚才的SMTP媒介)

2. 创建监控项:获取API响应内容

这一步是让Zabbix定期调用你的REST API,把响应内容拉回来:

  1. 进入「配置」→「主机」,如果没有合适的主机,可以创建一个虚拟主机(比如命名为API_Monitor),然后点击主机对应的「监控项」→「创建监控项」
  2. 填写监控项的关键信息:
    • 名称:起个好认的名字,比如「检查API运行状态响应」
    • 类型:选择「HTTP agent」
    • 键值:填写web.get["https://your-api-domain.com/your-api-path",,,"UTF-8"],把里面的URL换成你的实际API地址;后面的空参数分别对应端口(留空用默认80/443)、超时时间(默认即可)、编码(UTF-8一般没问题)
    • 类型信息:选择「文本」(因为我们要检查响应里的字符串内容)
    • 更新间隔:根据你的需求设置,比如30秒(表示每30秒调用一次API)
  3. 保存后,去「监测」→「最新数据」,找到这个监控项,确认它能正常获取到API的响应内容(如果显示"不支持"或空值,检查URL是否正确、API是否能被Zabbix服务器访问到)

3. 创建触发器:判断响应是否含"up":false

触发器是告警的触发条件,当监控项的内容符合要求时,就会进入告警状态:

  1. 进入「配置」→「主机」→对应主机的「触发器」→「创建触发器」
  2. 填写信息:
    • 名称:比如「API报告异常:响应含"up":false」
    • 严重性:根据需求选,比如「警告」或者「严重」
    • 表达式:这是核心,填写{API_Monitor:web.get["https://your-api-domain.com/your-api-path",,,"UTF-8"].str("\"up\":false")}=1
      • 解释:{主机名称:监控项键值.str("要匹配的字符串")}是Zabbix的文本匹配函数,当响应里包含"up":false时,这个函数返回1,等于1的时候触发器就会触发
      • 注意:字符串里的双引号要加转义符\,不然Zabbix会识别错误
  3. 保存触发器后,你可以手动让API返回包含"up":false的响应,测试触发器是否会变成「问题」状态

4. 创建动作:触发时发送邮件告警

动作是触发器触发后要执行的操作,这里就是自动发送邮件:

  1. 进入「配置」→「动作」→「触发动作」→「创建动作」
  2. 填写基本信息:
    • 名称:比如「API异常时发送邮件告警」
  3. 设置「条件」:
    • 点击「添加」,选择「触发器」→「等于」,然后选择刚才创建的那个触发器,确保只有这个触发器触发时才会执行动作
  4. 设置「操作」:
    • 点击「添加操作」,在「操作类型」里选「发送消息」
    • 「发送到用户组」:选择你要接收告警的用户组(或者直接选单个用户)
    • 「发送到媒介类型」:选择刚才配置的SMTP邮件媒介
    • 「消息主题」:自定义即可,比如API异常告警:{TRIGGER.NAME}
    • 「消息正文」:也可以自定义,比如:
      告警时间:{DATE} {TIME}
      告警内容:{TRIGGER.NAME}
      API地址:{ITEM.KEY}
      当前响应内容:{ITEM.LASTVALUE}
      
  5. 保存动作后,当触发器触发时,Zabbix就会自动给你发送告警邮件了

一些额外注意事项

  • 如果你的API需要认证(比如Token、用户名密码),在创建监控项的「HTTP agent」设置里,找到「HTTP头」,添加对应的认证头,比如Authorization: Bearer your-token-here
  • 测试顺序建议:先确保监控项能拿到正确响应,再测试触发器是否触发,最后测试邮件是否正常发送
  • 如果Zabbix服务器访问不到API,检查防火墙、网络策略,确保Zabbix服务器能连接到API的地址和端口

内容的提问来源于stack exchange,提问作者Mitul FG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:34:35