Zabbix 飞书机器人告警配置

Zabbix 飞书机器人告警配置主要使用 Zabbix 原生的 Webhook 媒介类型,通过 JavaScript 脚本调用飞书机器人 API 发送告警消息。


📋 前置条件

  • Zabbix 版本 4.4.4 或更高(Webhook 功能从该版本开始支持)
  • 已创建飞书群组并添加自定义机器人

🔧 步骤一:创建飞书机器人并获取 Webhook 地址

  1. 在飞书群组中,点击 群设置 → 群机器人 → 添加机器人 → 自定义机器人

  2. 设置机器人名称和头像,完成安全设置(可选用自定义关键词或 IP 白名单)

  3. 复制生成的 Webhook 地址 ,格式类似:

    复制代码
    https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxxxxxxxxxx
  4. 建议在安全设置中添加关键词如 "Zabbix""告警",或配置服务器 IP 白名单

🔧 步骤二:Zabbix 配置 Webhook 媒介类型

  1. 登录 Zabbix Web 界面,进入 管理 → 报警媒介类型
  2. 点击右上角 创建媒介类型,按以下内容配置:
配置项 填写内容
名称 Feishu (或自定义名称)
类型 Webhook
参数 添加三个参数: • Message{ALERT.MESSAGE}Subject{ALERT.SUBJECT}To{ALERT.SENDTO} (注意:参数名称必须与脚本中使用的 params.Messageparams.Subjectparams.To 对应)
脚本 见下方 JavaScript 代码
超时时间 30s

📝 Webhook 脚本内容(飞书专用)

javascript 复制代码
try {
    // 获取传入的参数
    var params = JSON.parse(value),
        req = new HttpRequest(),
        // 飞书消息格式(文本消息)
        msg = {
            msg_type: "text",
            content: {
                text: params.Subject + "\n" + params.Message
            }
        },
        resp;

    // 设置 HTTP 请求头
    req.addHeader("Content-Type: application/json");

    // 发送 POST 请求到飞书机器人 Webhook 地址
    resp = req.post(params.To, JSON.stringify(msg));

    // 检查响应状态码
    if (req.getStatus() != 200) {
        throw "Response code: " + req.getStatus();
    }

    // 返回响应结果
    resp = JSON.parse(resp);
    return JSON.stringify(resp);
} catch (error) {
    throw "Failed with error: " + error;
}

注意 :Zabbix 5.4 以下版本中,HttpRequest 对象名可能为 CurlHttpRequest,请根据版本调整。

🔧 步骤三:配置消息模板(可选)

  1. 在媒介类型编辑页面,点击 消息模板 标签

  2. 添加 消息类型(如"问题"、"问题恢复")

  3. 自定义主题和内容,支持宏变量,例如:

    • 主题故障告警: {TRIGGER.NAME}

    • 内容

      复制代码
      主机: {HOST.NAME}
      状态: {TRIGGER.STATUS}
      严重性: {TRIGGER.SEVERITY}
      时间: {EVENT.DATE} {EVENT.TIME}
      详情: {TRIGGER.DESCRIPTION}
      当前值: {ITEM.LASTVALUE}
  4. 若不自定义,系统将使用默认的 {ALERT.SUBJECT}{ALERT.MESSAGE}

🔧 步骤四:配置用户接收告警

  1. 进入 管理 → 用户,选择需要接收告警的用户(如 Admin)
  2. 报警媒介 标签页,点击 添加
  3. 选择类型为刚创建的 Feishu
  4. 收件人 填写步骤一中复制的 飞书机器人 Webhook 地址
  5. 设置告警级别、启用时间等

🔧 步骤五:配置动作(Action)触发告警

  1. 进入 配置 → 动作 → Trigger actions ,点击 创建动作
  2. 名称:填写如"发送飞书告警"
  3. 条件:根据需要设置触发条件(如主机组、触发器级别等)
  4. 操作 标签页:
    • 点击 新增
    • 操作类型:发送消息
    • 发送到用户:选择配置了飞书媒介的用户
    • 仅送到:选择 Feishu 媒介
  5. 恢复操作 标签页同样配置,用于发送恢复通知

✅ 步骤六:测试告警

  1. 在媒介类型列表中找到刚创建的 Feishu,点击右侧 测试
  2. 在弹出的窗口中:
    • Subject 填写测试主题
    • Message 填写测试内容
    • To 填写飞书机器人 Webhook 地址
  3. 点击 测试,飞书群应收到测试消息

🧪 验证与排错

查看发送日志

  • 管理 → 报警媒介类型 选择媒介后点击 测试 可查看详细响应
  • 报表 → 动作日志 可查看告警发送历史

常见错误解决

错误 原因 解决方案
cannot read property 'subject' of undefined 未正确配置参数或参数名不匹配 检查媒介类型的 参数 配置,确保参数名为 SubjectMessageTo,并与脚本中的 params.Subject 对应
Response code: 400/403 Webhook 地址无效或安全设置问题 检查飞书机器人地址是否正确,确认安全设置(关键词/IP白名单)已配置
无响应 网络不通或超时 检查 Zabbix Server 能否访问飞书 API,可配置 HTTP 代理
相关推荐
深念Y12 小时前
飞书桥接 Claude Code / Codex 踩坑实录:从部署、魔改到重装
机器人·飞书·远程·codex·工作·claudecode
八月瓜科技14 小时前
豆包启动付费会员测试,承诺基础服务永久免费,免费AI时代是否终结?
数据库·人工智能·科技·深度学习·机器人
卧室小白1 天前
zabbix-动作
zabbix
地平线开发者1 天前
挑战杯“揭榜挂帅”|机器人领域·地平线赛题发布!共探智慧环卫清扫车新未来
人工智能·机器人
2601_957964871 天前
48V系统轻型巡检机器人锂电池完整设计方案要求(工业级智能巡检平台标准)【浩博电池】
人工智能·机器人
jerryinwuhan2 天前
人工智能工程技术(智能机器人应用)基于赛教融合的项目递进式课程体系
人工智能·机器人
hoiii1872 天前
基于STM32的扫地机器人源码工程
stm32·单片机·机器人
2zcode2 天前
基于MATLAB的家用场景下扫地机器人路径规划研究设计
开发语言·matlab·机器人
YJlio2 天前
用女娲蒸馏 Mark Russinovich 排障思维:打造 Windows 桌面运维专家 Skill
运维·windows·飞书·ai办公·多维表格·飞书v7.63·飞书问卷