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脚本:

cpp 复制代码
#!/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告警的目录下

效果展示:
相关推荐
杨了个杨89821 小时前
Zabbix告警通知设置
zabbix
A_QXBlms2 天前
企微多账号自动化运营——消息规则与群发实战
自动化·企业微信·rxjava
A_QXBlms2 天前
企微多账号管理的踩坑经验与最佳实践
企业微信
bingyan03712 天前
openclaw-连接企业微信
企业微信·openclaw
A_QXBlms4 天前
基于企微官方API+定时任务+标签分群分批发送,突破单日群发次数限制
企业微信
QDYOKR1684 天前
一文了解什么是OKR
大数据·人工智能·笔记·钉钉·企业微信
wzl202612134 天前
自动化脚本模拟人工操作 — 基于RPA绕过企微API次数限制
自动化·企业微信·rpa
企微增长观察4 天前
企微管家Claw+SCRM联动方案:AI驱动的私域运营闭环
人工智能·企业微信
wzl202612135 天前
企微私域工具免费版vs付费版:多账号管理与企业风控技术实现
企业微信
wzl202612135 天前
企微私域工具免费版vs付费版:数据统计API差异与自动化报表脚本实现
大数据·自动化·企业微信