×

凌晨三点收告警短信?这波飞书集成操作,让95%运维人告别秃头

hqy hqy 发表于2025-12-13 00:58:31 浏览8 评论0

抢沙发发表评论

凌晨三点收告警短信?这波飞书集成操作,让95%运维人告别秃头

midnight, the sound of a phone buzzing wakes you up abruptly. "又是告警!"你猛地从床上坐起,眼睛酸涩地盯着手机屏幕。作为一名运维工程师,这样的场景几乎成了家常便饭。无论是深夜还是清晨,系统故障总能找到你的联系方式,仿佛在提醒你:科技24小时不眠不休,而人类却需要睡觉。

这种永无止境的“On-call”生活,不仅让运维人的头发日渐稀疏,也让这个行业面临着前所未有的挑战。我们不得不承认,在数字化时代,系统的稳定性和高效的故障响应能力已经成为企业的生命线。但问题是:如果告警系统真的不再延迟、不再冗余、甚至可以预测问题的发生,运维工程师会集体失业吗?🤔

别担心,今天这篇文章将带你解锁Zabbix7.2+飞书的完美结合,用三行代码告别 midnight panic,让告警信息飞入你的飞书,实现真正高效的故障响应。

前提条件准备

创建飞书群

登录飞书,创建飞书群组,群名称输入Zabbix告警通知 点击创建

Pasted image 20250214103554

打开飞书群设置,点击群机器人 进行添加

Pasted image 20250214103711

点击选择自定义机器人

Pasted image 20250214103748

填写机器人名称,为了良好的使用体验,推荐上传自定义头像。点击添加

Pasted image 20250214103845

webhook地址复制保存,后面会用到。对于安全设置,建议生产环境根据实际场景情况建议配置,点击完成

Pasted image 20250214103955

飞书会提醒上面的安全设置未配置,建议配置。

Pasted image 20250214104234

准备Python脚本

将下面的python脚本保存到/usr/lib/zabbix/alertscripts 路径下并给脚本起名为feishu.py

#!/usr/bin/python3
import requests
import json
import sys
import os
import datetime

url = ""#你复制的webhook地址粘贴进url内


defsend_message(message):
    payload_message = {
        "msg_type""text",
        "content": {
            "text": message
        }
    }
    headers = {
        'Content-Type''application/json'
    }

    response = requests.request("POST", url, headers=headers, data=json.dumps(payload_message))
    return response


if __name__ == '__main__':
    text = sys.argv[1]
    send_message(text)

执行命令为刚创建的脚本添加执行权限

chomod +x feishu.py

由于脚本引用了requests库,通常需要单独安装一下,此处可以根据你实际运行的情况选择。

# 使用 dnf 软件包管理器以管理员权限安装 Python 3 的 pip 工具
sudo dnf install python3-pip

# 使用管理员权限通过 pip3 将 pip 升级到最新版本
sudo pip3 install --upgrade pip

# 使用管理员权限通过 Python 3 的包管理工具 pip3 安装名为 “requests” 的库
sudo pip3 install requests

脚本测试


当我们完成上面的工作后,我们可以使用脚本来做一次测试,检查脚本是否生效。

 ./feishu.py "脚本测试"

当我们执行完成后,可以在飞书的群中看到机器人发送的消息 脚本测试

Pasted image 20250214104632

Zabbix 7.2 页面配置

配置报警媒介

登录Zabbix 7.2 管理页面上,点击 告警媒介创建媒介类型

Pasted image 20250211182644

创建报警媒介,填写下面的内容后,点击 消息模版

✅ 名称: 飞书
✅ 类型: 选择 脚本
✅ 脚本名称: 填写 feishu.py 这个名称要和我们刚才保存的python脚本名字一致。
✅ 脚本参数: 输入 {ALERT.MESSAGE}

Pasted image 20250214105230

点击消息模版添加

Pasted image 20250211183139

消息模版中的内容可以根据你的实际需求进行个性化配置,本文我们使用默认的消息模版添加 问题问题恢复 两个消息模版,点击更新

Pasted image 20250211183339

消息类型:问题
模版内容:
主题:Problem: {EVENT.NAME}
消息:
Problem started at {EVENT.TIME} on {EVENT.DATE}
Problem name: {EVENT.NAME}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}
Operational data: {EVENT.OPDATA}
Original problem ID: {EVENT.ID}
{TRIGGER.URL}
消息类型:问题恢复
模版内容:
主题:Resolved in {EVENT.DURATION}: {EVENT.NAME}
消息:
Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}
Problem name: {EVENT.NAME}
Problem duration: {EVENT.DURATION}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}
Original problem ID: {EVENT.ID}
{TRIGGER.URL}

点击测试 动作进行测试。测试正常的话会提示测试成功,同时飞书群里面也会有对应的消息。

Pasted image 20250214105456
Pasted image 20250214105509

创建告警动作

点击告警动作触发器动作创建动作 进行触发器动作创建。

Pasted image 20250211183937

触发器动作设置,名称为了更好的识别,可以使用飞书也可以根据你的需求随意填写。


条件根据你的实际需求进行设置。

Pasted image 20250214105558

点击操作 、添加 进行触发器动作配置,填写完成后点击更新

✅ 发送给用户组: 根据你的实际场景进行设置,默认组是zabbix administrator
✅ 发送给用户: 根据你的实际场景进行设置,默认演示使用admin用户
✅ Send to media type: 选择我们刚才创建的媒介飞书

Pasted image 20250214105735

重复上面的操作,完成 恢复操作的动作配置后,点击更新

Pasted image 20250214105811

配置完成

Pasted image 20250214105705

配置用户报警媒介

点击用户用户Admin

Pasted image 20250211184756

点击报警媒介添加

Pasted image 20250214110141

配置报警媒介,类型选择飞书、收件人建议使用飞书群名称。点击更新

Pasted image 20250214110105

功能验证

我们在服务器上手动触发了一些服务器异常,此时我们在飞书群中成功看到了告警消息。

Pasted image 20250214110442

凌晨三点手机不再亮,高效运维从此稳如磐石!

至此,Zabbix 7.2 告警与飞书机器人深度联动的全流程已部署完毕!跟着教程一步步操作下来,是不是发现看似复杂的系统集成其实只需几行配置就能轻松搞定?如果在创建飞书机器人、调试告警模板或是变量映射时遇到疑问,欢迎在评论区甩出你的问题,运维老司机在线帮你排雷!

如果你还想解锁更多实用技能,比如如何用Zabbix实现业务级健康度评分、如何通过飞书表格自动化生成故障报告,记得给文章点个「在看」并留言催更。后续我们会持续分享运维自动化的一线实战技巧,助你从「救火队员」进阶为「防御大师」,让系统稳定性与发量同步增长!

从此半夜告警不再扰人清梦,高效运维也能事半功倍!


打赏

本文链接:https://www.jingber.cn/post/3903.html 转载需授权!

分享到:

群贤毕至

访客

您的IP地址是: