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

效果展示:
相关推荐
SRETalk3 天前
Zabbix、Prometheus、Grafana、Nightingale,四个监控如何选型?
zabbix·grafana·prometheus·nightingale
荣--5 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
天空属于哈夫克312 天前
打造私域闭环:CRM 如何驱动企微外部客户触达
自动化·企业微信·api
梦想的旅途212 天前
企业微信外部群自动化:一期交付应聚焦双向会话闭环
java·开发语言·机器人·自动化·maven·企业微信
天空属于哈夫克312 天前
医疗私域与电商社群:企微自动化落地的行业差异
自动化·企业微信
挨踢诗人12 天前
企业微信报销审批 × 金蝶云星空 费用凭证集成解决方案
企业微信
qq_3494479512 天前
Zabbix自助发现监控机器配置
zabbix
mwmbfh13 天前
zabbix图表(图形/监控图)中文显示为方框/方块的解决办法
zabbix
江南风月14 天前
WGCLOUD保姆级教程最新版整理
运维·zabbix·运维开发·prometheus·日志审计
ElevenS_it18814 天前
Nginx日志监控告警实战:access_log解析+5xx突增+慢请求+异常IP自动告警完整方案(Filebeat+Zabbix)
运维·网络·tcp/ip·nginx·zabbix