获取飞书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

测试消息推送

飞书将会推送如下信息

创建触发器

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

触发器绑定至用户

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