找回密码
立即注册
发新帖

316

积分

0

好友

81

主题
发表于 2025-8-14 17:15:56 | 查看: 32| 回复: 3
一、钉钉机器人准备
  • 创建钉钉机器人

    • 打开钉钉群 → 右上角设置 → 智能群助手 → 添加机器人 → 自定义机器人
    • 设置机器人名称(如 Zabbix_Alert​),安全模式选择 自定义关键词,填写 Zabbix报警​
    • 复制生成的 Webhook URL(格式:https://oapi.dingtalk.com/robot/send?access_token=xxx​)


二、Zabbix报警脚本配置
创建钉钉报警脚本
在Zabbix服务器上创建脚本文件:

sudo vim /usr/lib/zabbix/alertscripts/dingding.py

内容如下(替换 YOUR_WEBHOOK_URL​ 为实际URL):



#!/usr/bin/env python3
import sys
import requests
import json

webhook_url = "YOUR_WEBHOOK_URL"  # 替换为你的Webhook URL

def send_dingding_message(message):
    headers = {'Content-Type': 'application/json'}
    data = {
        "msgtype": "markdown",
        "markdown": {
            "title": "Zabbix 报警",
            "text": f"**Zabbix报警**\n{message}"
        }
    }
    response = requests.post(webhook_url, headers=headers, data=json.dumps(data))
    return response.json()

if __name__ == "__main__":
    message = sys.argv[1]  # 接收Zabbix传递的参数
    send_dingding_message(message)


权限设置:

sudo chmod +x /usr/lib/zabbix/alertscripts/dingding.pysudo chown zabbix:zabbix /usr/lib/zabbix/alertscripts/dingding.py

安装依赖(如无requests库):

sudo pip3 install requests


三、Zabbix Web界面配置
  • 创建报警媒介类型

    • 进入 Administration → Media Types → Create media type

      • Name: DingTalk​
      • Type: Script​
      • Script name: dingding.py​
      • Script parameters: {ALERT.MESSAGE}​

  • 为用户关联钉钉媒介

    • 进入 Administration → Users → 选择用户(如 Admin​)
    • 切换到 Media 标签 → Add

      • Type: DingTalk​
      • Send to: 留空(脚本已包含URL)
      • 设置报警时段(如 7x24)

  • 配置触发器

    • 进入 Configuration → Hosts → 选择目标主机
    • 创建触发器(若不存在):

      • Name: High CPU Load on {HOST.NAME}​
      • Expression:
        {host:system.cpu.util.avg(5m)}>80  # CPU使用率>80%持续5分钟
      • Severity: Warning​ 或更高


  • 创建报警动作

    • 进入 Configuration → Actions → Create action

      • Name: Send to DingTalk​
      • Conditions:

        • Trigger severity >= Warning​
        • Host group = Your_Server_Group​
      • 操作配置(Operations):

        • Send to Users: Admin​(关联钉钉的用户)
        • Media type: DingTalk​
        • 消息内容模板:
        • **主机**: {HOST.NAME}
          **IP**: {HOST.IP}
          **问题**: {TRIGGER.NAME}
          **状态**: {TRIGGER.STATUS}
          **严重性**: {TRIGGER.SEVERITY}
          **值**: {ITEM.VALUE}
          **时间**: {EVENT.DATE} {EVENT.TIME}



四、测试报警
  • 手动触发高CPU负载(测试用):

    stress-ng --cpu 4 --timeout 300s  # 模拟高负载
  • 观察钉钉群消息,将收到如下告警:


**Zabbix报警**
**主机**: Server01
**IP**: 192.168.1.100
**问题**: High CPU Load on Server01
**状态**: PROBLEM
**严重性**: Warning
**值**: 95%
**时间**: 2023.10.01 14:30:00


常见问题排查
  • 无报警消息

    • 检查脚本权限:zabbix​ 用户需有执行权限
    • 查看Zabbix日志:tail -f /var/log/zabbix/zabbix_server.log​
    • 手动测试脚本:
      sudo -u zabbix /usr/lib/zabbix/alertscripts/dingding.py "Test message"

  • 钉钉安全设置
    确保消息中包含关键词 Zabbix报警​(与机器人设置匹配)
  • CPU监控项不存在
    确认主机已关联监控模板:Template OS Linux by Zabbix agent​

通过以上步骤,即可实现自动推送钉钉告警。


睡觉是向死亡的借贷,睡得越多越长,那么还款期也越长。
发表于 2025-8-14 17:16:52

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

发表于 2025-8-14 17:18:40



Problem: {EVENT.NAME}



**主机**: {HOST.NAME} <br>
**IP**: {HOST.IP} <br>
**问题**: {TRIGGER.NAME} <br>
**状态**: {TRIGGER.STATUS} <br>
**严重性**: {TRIGGER.SEVERITY} <br>
**值**: {ITEM.VALUE} <br>
**时间**: {EVENT.DATE} {EVENT.TIME}<br>
<font color=FF0000>**【请尽快确认故障现象】**</font>







已解决  {EVENT.DURATION}: {EVENT.NAME}




**主机**: {HOST.NAME} <br>
**IP**: {HOST.IP} <br>
**原问题**: {TRIGGER.NAME} <br>
<font color=0000FF>**【问题已经解决】**</font>


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

发表于 2025-8-14 17:21:16
最后需要确认你的用户里面的报警媒介添加了钉钉报警类型



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|企业IT论坛

GMT+8, 2025-10-26 18:31 , Processed in 0.076047 second(s), 24 queries .

快速回复 返回顶部 返回列表