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

能否通过Zabbix API在系统中创建第三方应用触发的告警?

Zabbix通过API反向创建告警实现方案

完全可以实现。Zabbix没有提供直接"插入告警"的独立接口,但可以通过两种官方原生支持的路径,实现Slack等第三方平台反向在Zabbix侧生成标准告警,不需要修改源码或者操作底层数据库。

方案1:上报监控数据触发原生告警(生产环境推荐)

Zabbix的告警本质是监控项采集值命中触发器阈值后生成的问题事件,不需要强行构造告警数据,只要让第三方系统把需要触发告警的信息上报给Zabbix,配合提前配置好的触发器就能自动生成符合Zabbix全链路逻辑的告警,后续的告警收敛、通知、自愈、统计逻辑都能正常复用。
操作步骤:

  • 提前在Zabbix中创建独立的第三方告警主机组,比如命名为External_Alert_Sources,按告警来源(Slack、内部工单系统等)创建对应主机
  • 在对应主机上创建**Zabbix trapper(采集器)**类型的监控项,自定义键值比如external.alert.input,数据类型选文本,开启允许批量上报选项
  • 给该监控项配置触发器,可按需求设置触发规则:比如接收到非空上报内容时触发,匹配上报内容中的P0/P1/P2关键词映射对应告警级别,同时配置恢复规则,比如接收到resolved关键词时自动关闭告警
  • 第三方侧(比如Slack的快捷指令、工作流机器人)调用Zabbix item.push API或者zabbix_sender命令,把告警内容、级别、上报人信息推送到对应监控项,触发器命中规则后就会自动生成标准Zabbix告警。

调用示例:

curl -X POST http://<你的Zabbix服务地址>/api_jsonrpc.php \
-H "Content-Type: application/json-rpc" \
-d '{
    "jsonrpc": "2.0",
    "method": "item.push",
    "params": {
        "host": "Slack_Bot",
        "key": "external.alert.input",
        "value": "P1 支付网关回调超时 上报人:值班运维 来源:Slack生产告警群"
    },
    "auth": "<你的Zabbix API Token>",
    "id": 1
}'

方案2:直接创建手动事件(适合临时告警场景)

Zabbix 5.0及以上版本提供event.create接口,可以直接生成手动类型的问题事件,生成的告警会和原生触发的告警一样展示在问题列表、监控仪表盘,也能正常触发配置的通知动作。
注意事项:

  • 这类手动创建的事件不会自动恢复,需要后续调用event.acknowledge接口传入关闭动作参数,才能标记告警为已解决状态
  • 调用时必须填告警名称、告警级别、关联主机ID等必填参数,支持自定义标签标记告警来源

调用示例:

curl -X POST http://<你的Zabbix服务地址>/api_jsonrpc.php \
-H "Content-Type: application/json-rpc" \
-d '{
    "jsonrpc": "2.0",
    "method": "event.create",
    "params": {
        "name": "Slack上报:测试环境Redis连接数超限",
        "severity": 3,
        "hosts": [{"hostid": "10102"}],
        "tags": [{"tag": "alert_source", "value": "Slack"}]
    },
    "auth": "<你的Zabbix API Token>",
    "id": 2
}'

注意:绝对不要直接操作Zabbix后端数据库插入告警记录,这种方式绕过了Zabbix的事件状态机逻辑,会导致告警状态异常、关联通知不触发、版本升级后数据不兼容等问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 11:18:08