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告警的目录下

效果展示:
相关推荐
夜莺云原生监控5 天前
夜莺监控 v8.0 新版通知规则 | 对接企微告警
企业微信·监控告警·夜莺监控·企微·企微告警
xiaozhanfeng8 天前
CentOS8+Zabbix7.2.4解决中文显示问题
zabbix
开源极客行12 天前
(二)企业级监控系统 - ZABBIX 部署
zabbix
大刘讲IT12 天前
Zabbix+AI大模型实战:智能故障诊断与工单预警系统设计
人工智能·zabbix
anguruanjian13 天前
安固软件指南:确保外发文件安全的全面策略
服务器·网络·安全·企业微信·安固软件
夜猫的兔子15 天前
企业微信console调试
前端·企业微信·conlose
乐维_lwops16 天前
zabbix“专家坐诊”第277期问答
zabbix
Tassel_YUE17 天前
Zabbix+Deepseek实现AI告警分析(非本地部署大模型版)
运维·数据库·人工智能·zabbix·运维开发·deepseek
leo·Thomas18 天前
Grafana接入Zabbix数据源
zabbix·grafana