Zabbix7.0告警推送至飞书webhook(shell脚本)
获取飞书webhook url
Zabbix配置
http://127.0.0.1/zabbix.php?action=mediatype.list添加媒介类型

脚本参数添加三个值分别对应飞书URL、告警主题、告警信息:
# webhookURL示例
https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxxxxxxxxxxx
# 告警主题
{ALERT.SUBJECT}
# 告警信息
{ALERT.MESSAGE}
添加消息模板
这里添加“问题”跟“问题更新”,实际根据自己需求自行添加

添加完成后,报警媒介类型中就有了对应类型。

编辑创建shell脚本
创建shell脚本
点击测试,我们会发现报错信息:对应目录下并未有相应shell脚本,需要进入对应文件夹创建脚本
# 根据报错进入对应文件夹创建脚本
cd /usr/lib/zabbix/alertscripts/
# 创建编辑feishu_card_push.sh
vi /usr/lib/zabbix/alertscripts/feishu_card_push.sh#!/bin/bash
export PATH=$PATH:/usr/lib/zabbix/alertscripts/
# 日志文件路径
log_file="/var/log/zabbix/feishu_card_push.log"
# 写入日志函数
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> "$log_file"
}
# 从命令行获取参数
webhook_url="$1" # 第一个参数:Webhook URL
subject="$2" # 第二个参数:主题
msg="$3" # 第三个参数:消息内容
# 根据 subject 设置卡片标题 color
if [[ "$subject" == *"Problem"* ]]; then
color="red"
elif [[ "$subject" == *"Resolved"* ]]; then
color="green"
else
color="blue" # 默认颜色
fi
# 打印日志(用于调试)
#log "Webhook URL: $webhook_url"
#log "Template ID: $template_id"
#log "Subject: $subject"
#log "Message: $msg"
#log "Color: $color"
# 构建 JSON 数据
json_data=$(cat <<EOF
{
"msg_type": "interactive",
"card": {
"config": {
"wide_screen_mode": true,
"enable_forward": true
},
"elements": [
{
"tag": "div",
"text": {
"tag": "lark_md",
"content": "${msg}"
}
}
],
"header": {
"template": "${color}",
"title": {
"tag": "plain_text",
"content": "${subject}"
}
}
}
}
EOF
)
# 打印 JSON 数据并写入日志
#log "JSON Data: $json_data"
# 发送请求
response=$(curl -s -X POST "$webhook_url" \
-H "Content-Type: application/json" \
-d "$json_data")
# 打印响应并写入日志
log "Response: $response"
# 检查响应是否成功
if [[ "$response" != *"success"* ]]; then
log "Error: $response"
else
log "Message sent successfully."
fi
赋予脚本权限
chomd 755 /usr/lib/zabbix/alertscripts/feishu_card_push.sh测试消息推送

飞书将会推送如下信息
创建触发器

输入“动作名称”,添加“条件主机”

触发器绑定至用户
进入“操作”选项,绑定告警的用户或者

- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用CC BY-NC-ND 4.0协议,完整转载请注明来自 halo.taofile.cn。
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果


