Ubuntu Zabbix 钉钉报警

news2025/6/2 4:06:54

文章目录

    • 概要
    • Zabbix警监控脚本
    • 技术细节
    • 配置zabbix告警

概要

提示:本教程用于Ubuntu ,zabbix7.0

Zabbix警监控脚本

提示:需要创建一个脚本

#检查是否有 python3 和版本
root@zabbix:~# python3 --version 
Python 3.12.3

在/usr/lib/zabbix/alertscripts/目录中创建一个名称为dingding_alert.py的Python脚本;内容如下;

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import requests
import json
import sys
import os
import datetime

# 钉钉机器人 Webhook 地址
webhook = "这里填写创建的机器人Webhook 地址"

# 日志文件路径
log_file = "/var/log/zabbix/dingding_alert.log"

# 参数检查
if len(sys.argv) < 4:
    print("Usage: dingding_alert.py <phone> <subject> <text>")
    sys.exit(1)

# 读取命令行参数
user = sys.argv[1]
subject = sys.argv[2]
text = sys.argv[3]

# ✅ 修改内容:加上关键词前缀 **这里要与钉钉安全设置的名称一致**
msg = f"【zabbix告警】\n{subject}\n{text}"

# 构造消息内容
payload = {
    "msgtype": "text",
    "text": {
        "content": msg
    },
    "at": {
        "atMobiles": [user],
        "isAtAll": False
    }
}

headers = {'Content-Type': 'application/json'}
now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")

# 确保日志目录存在
os.makedirs(os.path.dirname(log_file), exist_ok=True)

# 发送钉钉消息
try:
    response = requests.post(url=webhook, data=json.dumps(payload), headers=headers, timeout=5)
    result = response.json()

    with open(log_file, "a+") as f:
        f.write("\n" + "=" * 60)
        f.write(f"\n[{now}] 用户: {user}")
        f.write(f"\n请求状态码: {response.status_code}")
        f.write(f"\n返回结果: {result}")
        f.write(f"\n告警内容:\n{msg}")

        if result.get("errcode") == 0:
            f.write("\n发送状态: ✅ 成功\n")
        else:
            f.write("\n发送状态: ❌ 失败\n")

except Exception as e:
    with open(log_file, "a+") as f:
        f.write("\n" + "=" * 60)
        f.write(f"\n[{now}] 用户: {user}")
        f.write(f"\n异常发生: {str(e)}")
        f.write(f"\n告警内容:\n{msg}")
        f.write("\n发送状态: ❌ 失败\n")

技术细节

提示:必须条件
在这里插入图片描述
在这里插入图片描述

提示:创建一个存放dingding_alert存放日志的文件;

root@zabbix:~# touch /var/log/zabbix/dingding_alert.log
root@zabbix:~# chown zabbix:zabbix /var/log/zabbix/dingding_alert.log
#为脚本添加可执行权限;
root@zabbix:~# chmod a+x /usr/lib/zabbix/alertscripts/dingding_alert.py
#测试脚本的准确性;
root@zabbix:~# python3 /usr/lib/zabbix/alertscripts/dingding_alert.py 138000000 subject of testing "This is a test information."

在这里插入图片描述

配置zabbix告警

提示:创建报警媒介类型:
在这里插入图片描述
在这里插入图片描述
提示:脚本参数::

{ALERT.SENDTO}
#对应脚本中的,user=sys.argv[1](发给钉钉群中哪个用户)。

{ALERT.SUBJECT}
#发送的信息的标题,在”报表”的”动作日志”中可以看到。

{ALERT.MESSAGE}
#对应脚本中的,text=sys.argv[3](发送的报警内容)。

创建报警动作:
在这里插入图片描述
在这里插入图片描述
添加触发器动作:
在这里插入图片描述
这里以system name has changed为例,意味着如果设备的名称被修改,就会触发告警。
在这里插入图片描述
参数解读:

“主题”对应”钉钉告警”媒介中的:{ALERT.SUBJECT}
“消息”对应”钉钉告警”媒介中的:{ALERT.MESSAGE}

主题:
故障名称(触发器名称):{EVENT.NAME}

消息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

恢复操作基本相同,添加细节操作

主题:
故障恢复:{EVENT.NAME}

消息:
恢复主机:{HOSTNAME1}
恢复时间:{EVENT.DATE}{EVENT.RECOVERY.TIME}
主机IP:{HOST.IP}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

给用户添加报警媒介
在这里插入图片描述

在这里插入图片描述

触发告警
登录到交换机POE-S5735S;修改交换机的设备名称;等待几分钟,查看报警情况。
[POE-S5735S]sysname POE-SWITCH-2025

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2393468.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

threejs顶点UV坐标、纹理贴图

1. 创建纹理贴图 通过纹理贴图加载器TextureLoader的load()方法加载一张图片可以返回一个纹理对象Texture&#xff0c;纹理对象Texture可以作为模型材质颜色贴图.map属性的值。 const geometry new THREE.PlaneGeometry(200, 100); //纹理贴图加载器TextureLoader const te…

STM32 RTC实时时钟\BKP备份寄存器\时间戳

一、Unix时间戳 想要计算当地北京时间&#xff0c;需要根据经度和闰年之类的运算得到(c语言里面可以调用time.h的函数) 二、UTC/GMT&#xff08;科普&#xff09; 三、时间戳转化 C语言的time.h模块提供了时间获取和时间戳转换的相关函数&#xff0c;可以方便的进行秒计数器、…

Axure设计案例——科技感立体柱状图

想让你的数据展示告别平淡无奇&#xff0c;成为吸引全场目光的焦点吗&#xff1f;快来瞧瞧这个Axure设计的科技感立体柱状图案例&#xff01;科技感设计风格借助逼真的立体效果打破传统柱状图的平面感&#xff0c;营造出一种令人眼前一亮的视觉震撼。每一个柱状体都仿佛是真实存…

app获取相册权限是否意味着所有相片都可随时读取?

针对安卓手机相册的隐私安全问题&#xff0c;我也比较好奇&#xff0c;App授予了相册权限&#xff0c;真的能自动读取用户的照片吗&#xff1f;最近做了一个小实验&#xff0c;我开发了2个小App&#xff0c;这2个App安装的时候只授予了相册权限&#xff0c;没有授予其他任何权限…

2025年05月29日Github流行趋势

项目名称&#xff1a;agenticSeek 项目地址url&#xff1a;https://github.com/Fosowl/agenticSeek项目语言&#xff1a;Python历史star数&#xff1a;11898今日star数&#xff1a;2379项目维护者&#xff1a;Fosowl, steveh8758, klimentij, ganeshnikhil, apps/copilot-pull-…

第十一节:第一部分:正则表达式:应用案例、爬取信息、搜索替换

正则表达式介绍 String提供的正则表达式的方法的书写规则 正则表达式总结 正则表达式作用&#xff1a; 作用三&#xff1a;搜索替换 案例分析及代码&#xff08;图片解析&#xff09; 代码&#xff1a; 代码一&#xff1a;校验手机号和邮箱格式是否正确 package com.itheima.…

新能源集群划分+电压调节!基于分布式能源集群划分的电压调节策略!

适用平台&#xff1a;MatlabYalmip Cplex (具体操作已在程序文件中说明) 参考文献&#xff1a;基于分布式能源集群化分的电压调节策略[D]. 一、文献解读 1. 主要内容/创新点 提出了一种基于分布式能源集群化的电压调节策略&#xff0c;计及分布式能源的有功、无功调节能力&a…

端午安康 | 以匠心,致长远

端午节快乐 值此端午佳节&#xff0c;数图衷心感谢每一位合作伙伴与客户的信任相伴。 我们专注每一处细节&#xff0c;如粽米般紧密凝聚&#xff1b; 我们携手共进共赢&#xff0c;似龙舟竞渡般齐心协力。 未来&#xff0c;我们愿继续以创新为桨&#xff0c;与您共划时代新篇…

漫画Android:事件分发的过程是怎样的?

当用户触摸屏幕时&#xff0c;硬件层会捕获触摸信号&#xff0c;并将其转化为内核事件。 Android系统会通过InputManagerService和WindowManagerService等服务将这些事件包装成MotionEvent对象&#xff0c;并将其传递给Activity的dispatchTouchEvent()方法中&#xff0c;Activi…

2022 RoboCom 世界机器人开发者大赛-本科组(省赛)解题报告 | 珂学家

前言 题解 2022 RoboCom 世界机器人开发者大赛-本科组&#xff08;省赛&#xff09;。 感觉T5是最简单的&#xff0c;其他都不好做。 RC-u5 树与二分图 分值: 30分 思路: 容斥原理 树天然就是二分图&#xff0c;按深度d归类(偶数深度为S1&#xff0c;奇数深度为S2)&#x…

如何用ChatGPT提升学术长文质量

目录 一、关于让人工智能充当评审专家 二、关于分批次输入论文内容 三、来看看提示词 大家好这里是学术Anan&#xff0c;官网&#x1f449;AIWritePaper~ 论文完成初稿之后&#xff0c;一般情况下&#xff0c;宝子们还需要找专家给我们提出评审意见。找专家评审其实并不容易…

BKP(备份寄存器)和 RTC(实时时钟)

什么是BKP&#xff1f; 备份寄存器&#xff08;BackupRegister&#xff09;是42个16位的寄存器&#xff08;不同设备存在差异&#xff1a;20字节&#xff08;中容量和小容量&#xff09;/84字节&#xff08;大容量和互联型&#xff09;&#xff09;&#xff0c;可用来存储 最多…

【EdgeYOLO】《EdgeYOLO: An Edge-Real-Time Object Detector》

Liu S, Zha J, Sun J, et al. EdgeYOLO: An edge-real-time object detector[C]//2023 42nd Chinese Control Conference (CCC). IEEE, 2023: 7507-7512. CCC-2023 源码&#xff1a;https://github.com/LSH9832/edgeyolo 论文&#xff1a;https://arxiv.org/pdf/2302.07483 …

调试技巧总结

目录 一.调试1.什么是调试2.调试语义的分类2.1 静态语义2.2 动态语义 二.实用的调试技巧1.屏蔽代码2.借助打印3.查看汇编代码4.调试技巧总结 一.调试 1.什么是调试 调试&#xff0c;通俗易懂地说就是不断排查代码的错误&#xff0c;进行修正的过程&#xff0c;在写代码的时候…

ubuntu安装blender并配置应用程序图标

ubuntu安装blender并配置应用程序图标 下载blender安装包解压缩并安装启动blender添加应用程序启动图标 下载blender安装包 blender中文服务站的下载网址 这里选择Linux 64位的Blender 4.2.4 LTS。下载速度很快。下载得到 解压缩并安装 将下载的压缩包放在/opt目录下&#…

基于LBS的上门代厨APP开发全流程解析

上门做饭将会取代外卖行业成为新一轮的创业风口吗&#xff1f;杭州一位女士的3菜一汤88元套餐引爆社交网络&#xff0c;这个包含做饭、洗碗、收拾厨房的全套服务&#xff0c;正在重新定义"到家经济"的边界。当25岁的研究生系着围裙出现在客户厨房&#xff0c;当年轻姑…

Redisson学习专栏(三):高级特性与实战(Spring/Spring Boot 集成,响应式编程,分布式服务,性能优化)

文章目录 前言一、Spring Boot深度整合实战1.1 分布式缓存管理1.2 声明式缓存1.3 响应式编程 二、分布式服务治理2.1 服务端实现2.2 客户端调用2.3 高级特性2.4 服务治理功能 三、分布式任务调度引擎四、连接池配置与网络参数调优4.1 连接池配置4.2 网络参数调优4.3 集群模式特…

华为欧拉系统中部署FTP服务与Filestash应用:实现高效文件管理和共享

华为欧拉系统中部署FTP服务与Filestash应用:实现高效文件管理和共享 前言一、相关服务介绍1.1 Huawei Cloud EulerOS介绍1.2 Filestash介绍1.3 华为云Flexus应用服务器L实例介绍二、本次实践介绍2.1 本次实践介绍2.2 本次环境规划三、检查云服务器环境3.1 登录华为云3.2 SSH远…

基于Docker和YARN的大数据环境部署实践最新版

基于Docker和YARN的大数据环境部署实践 目的 本操作手册旨在指导用户通过Docker容器技术&#xff0c;快速搭建一个完整的大数据环境。该环境包含以下核心组件&#xff1a; Hadoop HDFS/YARN&#xff08;分布式存储与资源调度&#xff09;Spark on YARN&#xff08;分布式计算…

【大模型】Bert

一、背景与起源 上下文建模的局限&#xff1a;在 BERT 之前&#xff0c;诸如 Word2Vec、GloVe 等词向量方法只能给出静态的词表示&#xff1b;而基于单向或浅层双向 LSTM/Transformer 的语言模型&#xff08;如 OpenAI GPT&#xff09;只能捕捉文本从左到右&#xff08;或右到…