当前位置: 首页 > news >正文

zabbix告警推送钉钉

一、钉钉端配置

  1. 创建一个群聊,群类型为“内部群”
    在这里插入图片描述
  2. 添加自定义机器人
  3. 复制保存【加签密钥】和【Webhook地址】后续脚本需要

二、zabbix服务器端配置

1. 创建专用目录

mkdir -p /usr/lib/zabbix/alertscripts/dingtalk
chmod 755 /usr/lib/zabbix/alertscripts/dingtalk进入目录
cd /usr/lib/zabbix/alertscripts/dingtalk

2. 编写钉钉告警脚本(Python3版本)

vim dingtalk.py

#!/usr/bin/env python3
import requests
import sys
import time
import hmac
import hashlib
import base64
import urllib.parse
import jsondef generate_sign(secret):"""生成钉钉加签字符串(Zabbix 6.4专用)"""timestamp = str(round(time.time() * 1000))secret_enc = secret.encode('utf-8')string_to_sign = f'{timestamp}\n{secret}'hmac_code = hmac.new(secret_enc, string_to_sign.encode('utf-8'), hashlib.sha256).digest()sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))return timestamp, signdef send_dingtalk(title, text, webhook, secret):"""发送消息到钉钉(支持Zabbix 6.4的Markdown格式)"""timestamp, sign = generate_sign(secret)headers = {"Content-Type": "application/json;charset=utf-8"}# Zabbix 6.4优化的消息格式(支持颜色和跳转)data = {"msgtype": "markdown","markdown": {"title": title,"text": text},"at": {"isAtAll": False}}# 带加签的完整URLurl = f"{webhook}&timestamp={timestamp}&sign={sign}"try:response = requests.post(url, json=data, headers=headers, timeout=8)result = response.json()if result.get("errcode") == 0:print("钉钉消息发送成功")return 0else:print(f"钉钉API错误: {result.get('errmsg')}")return 1except Exception as e:print(f"请求失败: {str(e)}")return 1if __name__ == "__main__":if len(sys.argv) < 5:print("用法: dingtalk.py <标题> <内容> <webhook> <secret>")sys.exit(1)# Zabbix 6.4会传递5个参数(含脚本名)title = sys.argv[1]text = sys.argv[2]webhook = sys.argv[3]secret = sys.argv[4]sys.exit(send_dingtalk(title, text, webhook, secret))

3.设置脚本权限

 赋予执行权限
chmod +x /usr/lib/zabbix/alertscripts/dingtalk/dingtalk.py
chown -R zabbix:zabbix /usr/lib/zabbix/alertscripts/dingtalk验证Python3路径(确保第一行#!/usr/bin/env python3正确)
which python3

在这里插入图片描述
测试脚本
在这里插入图片描述
python dingtalk.py <标题> <内容>

4.安装必要依赖(如未安装)

# 对于CentOS/RHEL
yum install -y python3-requests# 对于Ubuntu/Debian
apt-get install -y python3-requests

在这里插入图片描述

三、Zabbix Web界面配置

1. 创建媒介

告警——>媒介——>创建媒介类型
在这里插入图片描述
在这里插入图片描述
在用户配置中,添加报警媒介
在这里插入图片描述

2. 创建触发器动作

在这里插入图片描述
在操作选项卡中配置“默认操作”和“恢复操作”
在这里插入图片描述
自定义内容:
默认操作

主题: {EVENT.STATUS}: {TRIGGER.NAME}
消息: 
## {EVENT.STATUS}: {TRIGGER.NAME}**⏰ 触发时间**: {EVENT.DATE} {EVENT.TIME}  
**🖥 主机名称**: {HOST.NAME}  
**🌐 主机IP**: {HOST.IP}  
**❗ 严重级别**: {TRIGGER.SEVERITY}  
**📊 监控项**: {ITEM.NAME} = {ITEM.VALUE}  ---
**🔍 问题详情**:  
{TRIGGER.DESCRIPTION}[👉 点击查看问题详情]({TRIGGER.URL})

恢复操作

主题: 已恢复: {TRIGGER.NAME}
消息: 
## ✅ 问题已恢复: {TRIGGER.NAME}**🔄 恢复时间**: {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}  
**⏱️ 持续时间**: {EVENT.DURATION}  
**📊 恢复值**: {ITEM.NAME} = {ITEM.VALUE}  [查看详情]({TRIGGER.URL})

配置用户

建议只选严重和灾难级的事件来推送,不然消息就太多了。。。
在这里插入图片描述
自动推送成功
在这里插入图片描述


文章转载自:

http://XLVHFBZ5.zqdhr.cn
http://gcqLCznI.zqdhr.cn
http://Bykpz7Wp.zqdhr.cn
http://7x7oxUui.zqdhr.cn
http://mEtfayuj.zqdhr.cn
http://8BDwAK8q.zqdhr.cn
http://uRiOEMJJ.zqdhr.cn
http://XaaXUjJb.zqdhr.cn
http://vcLF4k1v.zqdhr.cn
http://1APJh2UL.zqdhr.cn
http://ZZAunELw.zqdhr.cn
http://jMgr2yl3.zqdhr.cn
http://czMMMtlx.zqdhr.cn
http://RQbhOuCk.zqdhr.cn
http://nW89Tmq0.zqdhr.cn
http://oVgLZc3r.zqdhr.cn
http://H3PA5WSo.zqdhr.cn
http://jZ9v1JSK.zqdhr.cn
http://CbSUdgRR.zqdhr.cn
http://PSgr94j7.zqdhr.cn
http://2TdaTCmD.zqdhr.cn
http://bDc6EBnH.zqdhr.cn
http://co5N4Y0M.zqdhr.cn
http://abNGId31.zqdhr.cn
http://jQg3jaLD.zqdhr.cn
http://5m9hZCT8.zqdhr.cn
http://YEs5Egh9.zqdhr.cn
http://ZSCqNgFg.zqdhr.cn
http://WwOWnAMZ.zqdhr.cn
http://oOJgyMQ1.zqdhr.cn
http://www.dtcms.com/a/376324.html

相关文章:

  • Android系统框架知识系列(二十):专题延伸:JVM vs ART/Dalvik - Android运行时演进深度解析
  • 关于在pycharm终端连接服务器
  • VPS、云服务器、独立服务器的区别是什么?新手服务器选择指南
  • 10. 游戏开发中的TCP与UDP
  • 第1章:操作系统和计算机网络
  • 在uniapp/vue项目中全局挂载component
  • 【ubuntu 24.04 LTS】真实实验部署ollama0.11.6+deepseekR1:1.5b+open-webUI
  • [万字长文]AJAX入门-常用请求方法和数据提交、HTTP协议-报文、接口文档、案例实战
  • 基于 Vue3 + VueOffice 的多格式文档预览组件实现(支持 PDF/Word/Excel/PPT)
  • 【Unity UGUI 交互组件——Scrollbar(8)】
  • 报错Failed to set ntp: NTP not supported
  • 零基础学AI大模型之读懂AI大模型
  • 《嵌入式硬件(六):ARM汇编核心内容总结》
  • 力扣刷题笔记-三数之和
  • WPF WriteableBitmap 高性能双缓冲图片显示方案
  • 如何优化WordPress中的图片提升网站性能
  • Word添加图/表题注
  • 十八、从0开始卷出一个新项目之瑞萨RZN2L使用ADC+DMA接收数据流
  • 日志文件-输出宏的实现
  • AI 帮我写单测:pytest 覆盖率提升 40% 的协作日志
  • RL【7-2】:Temporal-difference Learning
  • 50条常用的MySQL命令汇总
  • 宝塔SSL自动续签
  • Nginx SSL/TLS 配置
  • 剧本杀小程序系统开发:开启沉浸式社交娱乐新纪元
  • Nginx SSL 获取 SSL/TLS 证书(仅用于测试)
  • 激光频率梳 3D 轮廓测量 -- 平晶干涉法观察高精度平面度
  • HTTP快速入门
  • 【Unity UGUI 交互组件——Slider(7)】
  • Vue 3 实战:从零到一用 vue-pdf-embed 打造功能齐全的 PDF 查看器