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

Zabbix—企业微信报警群通消息通知

   这个需要在企业微信里面创建群,在群里创建机器人,之后复制机器人的Webhook:

https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxhttps://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=aeb6c635-6ff9-4fbc-991d-617c5ba16d6d

Python脚本:

#!/usr/bin/env python
# _*_coding:utf-8 _*_

import requests, sys, json, time
import urllib3

urllib3.disable_warnings()


def SendMessageURL(User, Subject, Messages):
    ###机器人的Webhook
    URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" #企微Webhook地址
    HEADERS = {"Content-Type": "application/json"}
    Data = {
        "msgtype": "markdown",
        "markdown": {
            "content": "# \n <font color=\"warning\">%s</font> \n <font color=\"info\">%s</font> \n <@%s>" % (
            Subject, Messages, User),
            # "mentioned_list" : [User],
            # "content": \<font color="warning">Subject</font>  \n  Messages,
            # "mentioned_list" :[User],
            ###因为是故障告警群,所以需要@all,这个看自己选择
            "mentioned_list": [User, "@all"]
            # "mentioned_mobile_list" : ["xxxxxxxx","@all"]
        }
    }
    r = requests.post(url=URL, headers=HEADERS, json=Data, verify=False)
    print(r.json())


if __name__ == "__main__":
    SENDTO = str(sys.argv[1])
    SUBJECT = str(sys.argv[2])
    MESSAGE = str(sys.argv[3])
    Status = str(SendMessageURL(SENDTO, SUBJECT, MESSAGE))
    print(Status)



##############################################################
这段代码的主要功能是向企业微信群发送一条Markdown格式的消息,并且可以@指定的用户或所有人。下面我将逐行解释代码的功能和实现方式。

首先,代码使用了#!/usr/bin/env python作为Shebang,这是 Unix-like 系统中用于指定脚本解释器的语法,表示这个脚本应该使用系统中找到的Python解释器来运行。

然后,设置了编码声明# _*_coding:utf-8 _*_,确保代码文件是以UTF-8编码的,这样可以正确处理中文等多字节字符。

接下来,导入了必要的模块:

requests:用于发送HTTP请求。

sys:用于命令行参数处理。

json:用于JSON数据的处理。

time:虽然在这个脚本中没有用到,但可能在将来会用到。

urllib3:用于禁用安全请求警告。

通过urllib3.disable_warnings()禁用了requests库的警告信息,这样在运行脚本时不会看到关于证书验证的警告。

定义了一个函数SendMessageURL(User, Subject, Messages),这个函数接收三个参数:

User:要@的用户。

Subject:消息的主题。

Messages:消息的内容。

在函数内部:

定义了企业微信机器人的Webhook URL,这个URL是通过企业微信的管理后台生成的,用于向指定的群发送消息。

设置了请求头HEADERS,指定内容类型为JSON。

构建了要发送的JSON数据Data,其中:

msgtype设置为markdown,表示消息类型是Markdown。

markdown字段中包含content,这是一个包含Markdown格式的字符串,其中使用了HTML标签来设置字体颜色,具体来说:

<font color="warning">用于标记主题,颜色为警告色。

<font color="info">用于标记消息内容,颜色为信息色。

<@%s>用于在消息中@指定的用户。

mentioned_list字段用于指定要@的用户列表,这里包括了传入的用户和@all,表示同时@指定用户和所有人。

使用requests.post方法发送POST请求,传递URL、headers和json数据,并关闭SSL验证(verify=False),这在生产环境中不推荐,因为会绕过证书验证,存在安全风险。

打印了请求的响应JSON。

在if __name__ == "__main__":块中:

从命令行参数中获取接收者、主题和消息内容。

调用SendMessageURL函数发送消息,并打印返回的状态。

总结一下,这个脚本的功能是通过企业微信机器人API发送一条带Markdown格式的消息,并且可以@指定的用户或所有人。脚本接受三个命令行参数:接收者、主题和消息内容。
 zabbix告警脚本参数

    需要把脚本放到zabbix告警的目录下

效果展示:

相关文章:

  • Doris:联邦认证
  • 新安装的cursor安装不了插件
  • 2025-3-17 腾讯云-大数据方向-成都面试
  • JavaScript变量声明与DOM操作指南
  • Vue.js 插槽(Slot)详解:让组件更灵活、更强大
  • OracleCdc和MysqlCdc区别详解
  • Android Audio基础(53)——PCM逻辑设备Write数据
  • SpringCloud网关:Gateway路由配置与过滤器链
  • Visual Studio Code安装配置优化全攻略:打造高效开发环境
  • 在 Ubuntu 中配置 NFS 共享服务的完整指南
  • 玩转 Tailwind CSS:深入解析函数与指令
  • 【JavaEE】-- SpringBoot快速上手
  • 全网首创/纯Qt/C++实现国标GB28181服务/实时视频/云台控制/预置位/录像回放和下载/事件订阅/语音对讲
  • 最新版Chrome浏览器加载ActiveX控件技术--allWebPlugin中间件一键部署浏览器扩展
  • Kafka详解——介绍与部署
  • 封装红黑树实现map和set(部分常用接口)(C++)
  • Redis的IO多路复用机制:高效的网络通信设计
  • Redis常用数据类型和使用常见以及基本操作举例(适合初学者,以医药连锁管理系统为背景)
  • 安装并使用anaconda(宏观版)
  • https握手过程
  • 招行一季度净利372.86亿降2.08%,营收降逾3%
  • 日趋活跃!2024年我国数据生产总量同比增长25%
  • 党旗下的青春|83岁仍在“下生活”,他说生活是创作的源泉
  • 伊朗港口爆炸已造成25人死亡,灭火行动已近尾声
  • 著名统计学家、北京工业大学应用数理学院首任院长王松桂逝世
  • 经济日报:AI时代如何寻找“你的赛道”