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 代理
相关推荐
Robot_Nav18 小时前
Git 项目维护命令指南相关讲解
git·机器人·github
ZPC821018 小时前
MoveIt Servo 与自己编写的 Action Server 通信
人工智能·算法·机器人
zhanglianzhao19 小时前
Gazebo仿真机器人和相机时Gazebo ROS Control 插件偶发性加载失败bug分析
机器人·bug·ros·gazebo·ros_control
品尚公益团队19 小时前
飞书多维表使用和应用的创建
飞书
沫儿笙21 小时前
发那科焊接机器人二保焊节气阀
机器人
Mountain and sea21 小时前
KUKA 机器人 IO 注释一键导入工具使用教程
机器人
xiaoduo AI21 小时前
客服机器人支持快捷键操作吗?Agent 系统后台可自定义热键,客服效率能提升多少?
机器人
阿洛学长1 天前
闲鱼智能监控机器人:开源 AI 闲鱼多任务实时监控工具,可视化管理与精准筛选
人工智能·机器人·开源
BBTSOH159015160441 天前
VR每日简报2026.4.14
人工智能·机器人·vr·具身智能·人形机器人·机械手·遥操作
xiaoduo AI1 天前
客服机器人回答错误可自动撤回?智能 Agent 功能详解 + 消息撤回,发错答案快速补救?
大数据·人工智能·机器人