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

zabbix-server 配置告警

基于python环境

yum install python3
pip3 install requests

告警配置文件在

cd /usr/lib/zabbix/alertscripts/ cd /usr/local/share/zabbix/alertscripts
[root@localhost alertscripts]# ls
dingding.py
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import requests import json import sys import os import datetime webhook = "https://oapi.dingtalk.com/robot/send?access_token=自己的token11ca4841903f166d24e853502730985133d267ae0f1f8ea6c95d545edef4d768" log_path = "/usr/lib/zabbix/alertscripts/log/dingding.log" if len(sys.argv) != 4: print("参数错误:python3 dingding.py 手机号 标题 内容") sys.exit(1) user = str(sys.argv[1]).strip() subject = sys.argv[2] text = sys.argv[3] data = { "msgtype": "text", "text": { "content": f"{subject}{text}" }, "at": { "atMobiles": [], "isAtAll": False } } headers = {'Content-Type': 'application/json'} try: x = requests.post(url=webhook, data=json.dumps(data), headers=headers, timeout=10) res = x.json() print("钉钉接口返回:", res) except Exception as e: res = {"errcode": -999, "errmsg": f"请求异常:{str(e)}"} print("请求异常:", e) log_dir = os.path.dirname(log_path) if not os.path.exists(log_dir): os.makedirs(log_dir) with open(log_path, "a+", encoding="utf-8") as f: f.write("\n" + "--" * 30) now = str(datetime.datetime.now()) if res["errcode"] == 0: f.write(f"\n{now} 推送成功 内容:{subject}{text}\n")

测试

[root@localhost alertscripts]# ls dingding.py [root@localhost alertscripts]# python3 /usr/local/share/zabbix/alertscripts/dingding.py 11111111111 告警 来自Zabbix的测试消息 钉钉接口返回: {'errcode': 0, 'errmsg': 'ok'}

配置完成

钉钉加签设置

#!/usr/bin/env python3 # -*- coding: utf-8 -*- import requests import json import sys import os import datetime import time import hmac import hashlib import base64 # 钉钉机器人配置 webhook = "https://oapi.dingtalk.com/robot/send?access_token=自己的token11ca4841903f166d24e853502730985133d267ae0f1f8ea6c95d545edef4d768" secret = "自己secSEC111c25df8a37e56253eded6c7f51ddc96e414acd27258ac16cc96192d1769d7c1" log_path = "/usr/local/share/zabbix/alertscripts/log" # 参数校验 if len(sys.argv) != 4: print("参数错误:python3 dingding.py 手机号 标题 内容") sys.exit(1) user = str(sys.argv[1]).strip() subject = sys.argv[2] text = sys.argv[3] # 消息内容,如需关键词可拼接 content = f"告警 {subject}{text}" data = { "msgtype": "text", "text": { "content": f"{subject}{text}" }, "at": { "atMobiles": [user], "isAtAll": False } } headers = {'Content-Type': 'application/json'} # 加签核心逻辑 timestamp = str(round(time.time() * 1000)) sign_str = f"{timestamp}\n{secret}" hmac_obj = hmac.new(secret.encode("utf-8"), sign_str.encode("utf-8"), digestmod=hashlib.sha256) sign = base64.b64encode(hmac_obj.digest()).decode("utf-8") # 拼接带签名、时间戳的完整请求地址 send_url = f"{webhook}&timestamp={timestamp}&sign={sign}" try: x = requests.post(url=send_url, data=json.dumps(data), headers=headers, timeout=10) res = x.json() print("钉钉接口返回:", res) except Exception as e: res = {"errcode": -999, "errmsg": f"请求异常:{str(e)}"} print("请求异常:", e) # 自动创建日志目录写入日志 log_dir = os.path.dirname(log_path) if not os.path.exists(log_dir): os.makedirs(log_dir) with open(log_path, "a+", encoding="utf-8") as f: f.write("\n" + "--" * 30) now = str(datetime.datetime.now()) if res["errcode"] == 0: f.write(f"\n{now} 推送成功 接收人:{user} 内容:{subject}{text}\n") else: f.write(f"\n{now} 推送失败 接收人:{user} 错误信息:{res} 内容:{subject}{text}\n")
http://www.jsqmd.com/news/1208981/

相关文章:

  • 沉浸式音频技术:构建专注环境的Python实现方案
  • TVM与TensorRT混合优化:深度学习推理加速实战
  • 2026年Q3网架行业实力制造商解析:徐州鹏程钢结构工程有限公司全链条服务能力与工程实践 - 企业推荐官【官方】
  • 计算机毕业设计之特殊时期景点旅游系统
  • LLM应用安全防护实战:从威胁模型到部署LLM-Guard防火墙
  • IntelliJ IDEA 安装与配置全指南:Java 开发者高效工作流构建
  • 游戏服务端gate功能
  • 那个反复出现的 bug
  • RA4M2微控制器驱动OLED显示模块的I2C通信实战
  • 爱回收奢侈品回收靠谱吗?我用爱马仕Picotin做了一次全流程深度评测 - 资讯速览
  • 及时做APP开发实战(七)-专注时长实时累加实现
  • 雷达中国官方售后服务中心|服务热线及门店官方地址权威信息公告(2026年7月更新) - 亨得利钟表维修中心
  • 2026年最新AI agent面试(01)_Agent基础与推理范式
  • 贵阳人卖金真实体验全公开:五家门店逐个跑,足金K金铂金全搞定,24小时免费上门无隐藏费用 - 小城生活闲谈
  • 带标注的蜜蜂识别数据集,识别率88.6% ,8080张图,支持yolo,coco json,voc xml,文末有模型训练代码
  • Kimi K2.6长程会话实战:13小时稳定交互架构设计
  • 小孩也能看懂的算法笔记-排序算法day1
  • ABAP 没有 @Input 注解,真正对应的是参数契约、组件映射与 RAP 输入模型
  • HarmonyOS 应用开发《掌上英语》第8篇—项目实践指南
  • 工业智能体入门指南:收藏!小白也能看懂的大模型应用
  • 【第 005 讲】Python 中的进制表示与转换:整数进制 | 前缀表示 | 进制转换算法 | 小数转换 | 进制转换工具
  • 爱回收的黄金回收靠谱吗?我做了一次完整的数据核查测评 - 资讯速览
  • 2026上海汽车贴膜店新能源专篇:特斯拉、极氪、问界车主都在找的“专车专用”贴膜店 - GrowUME
  • 知识库建设的4个万能拆解公式:从问题到可执行知识
  • 北京企业股权离婚分割律师推荐,公司股权估值增值分割万商天勤刘潞律师 - 资讯速览
  • 工厂仓库降温性价比高的工业大吊扇供应商 - GrowUME
  • GPT-Live实时语音交互:双工通信与上下文管理技术解析
  • HH-Lol-Prophet:英雄联盟对局智能分析助手,选人阶段预判队友实力
  • 欧美用户访问慢完全对策:源站、CDN、机房选址三角决策
  • KV260视觉AI开发套件入门指南与实战配置