Zabbix使用企业微信机器人进行信息发送

一、在企业微信添加群,并添加企业微信群机器人

注意:在企业微信机器人需要相应的权限 需要联系企业微信后台管理员来添加相应的权限,否则自己无法再企业微信群添加机器人

点添加之后会生成Webhook地址,脚本调用机器人时需要用到webhook地址

二、在zabbix-server服务添加脚本

在/usr/lib/zabbix/alertscripts下添加监控脚本wechat.py 便于zabbix-server 调用脚本

#!/usr/bin/python
# -*- coding: utf-8 -*-

import requests
import json
import sys

# 机器人的webhook地址
API_URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=b4fa7bb9-931c-4b53-a7b4-9ece748db98b"
# HTTP请求头部信息
HEADERS = {
    'Content-Type': 'application/json;charset=utf-8'
}

# 定义发送消息的函数
def send_text(text):
    # 构建消息体
    texts = {
        "msgtype": "text",
        "text": {
            "content": text
        }
    }
    # 发送HTTP POST请求
    response = requests.post(API_URL, json=texts, headers=HEADERS)
    # 打印响应内容(一般用于调试)
    print(response.content)

# 如果该文件被直接执行,则从命令行接收一个参数并将其发送到机器人的webhook地址
if __name__ == '__main__':
    if len(sys.argv) != 2:
        print("Usage: python send_text.py <text>")
        sys.exit(1)
    text = sys.argv[1]  # 获取命令行参数
    send_text(text)  # 发送消息

赋予脚本权限

chmod +x wechat.py

测试脚本

./wechat.py 123test

三、在zabbix-server网页端进行相应的配置

1、创建企业微信报警媒介类型

 

脚本参数: {ALERT.MESSAGE}

添加完成之后点添加即可  会在下面引用报警媒介类型

2、添加企业微信自动报警动作

添加条件

选择监控项添加触发器

选择主机——选择主机对应的监控项——点下面的选择  添加完成

添加第二条监控项

3、添加动作对应的操作

 添加操作

自己定义的发送消息

#主题
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
#消息
告警主机:{HOSTNAME1}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

添加恢复操作

自己定义的发送消息

#主题
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
#消息
告警主机:{HOSTNAME1}
告警地址:{HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

添加完成之后点添加即可

4、在用户资料添加企业微信报警媒介

到这里就操作完成了 可以添加对应的动作触发器 来进行测试是否成功

使用Zabbix实现企业微信机器人报警可按以下步骤操作: ### 添加监控脚本 在`/usr/lib/zabbix/alertscripts`目录下添加监控脚本`wechat.py`,该脚本用于Zabbix - server调用以实现信息发送。以下是脚本代码: ```python #!/usr/bin/python # -*- coding: utf-8 -*- import requests import json import sys # 机器人的webhook地址 API_URL = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=b4fa7bb9-931c-4b53-a7b4-9ece748db98b" # HTTP请求头部信息 HEADERS = { 'Content-Type': 'application/json;charset=utf-8' } # 定义发送消息的函数 def send_text(text): # 构建消息体 texts = { "msgtype": "text", "text": { "content": text } } # 发送HTTP POST请求 response = requests.post(API_URL, json=texts, headers=HEADERS) # 打印响应内容(一般用于调试) print(response.content) # 如果该文件被直接执行,则从命令行接收一个参数并将其发送机器人的webhook地址 if __name__ == '__main__': if len(sys.argv) != 2: print("Usage: python send_text.py <text>") sys.exit(1) text = sys.argv[1] # 获取命令行参数 send_text(text) # 发送消息 ``` 此脚本接收命令行传入的文本信息,并将其发送企业微信机器人的Webhook地址[^1]。 ### 配置Zabbix服务器 1. **修改`zabbix.conf`**:查看设置的脚本的默认路径,通过以下命令查看: ```bash [root@zabbix - server alertscripts]# grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf | grep AlertScriptsPath AlertScriptsPath=/usr/lib/zabbix/alertscripts ``` 设置后,Zabbix的Web端就可以在该路径下获取到脚本了[^2]。 2. **设置脚本**:在配置好脚本路径后,确保脚本具有可执行权限,可使用`chmod +x /usr/lib/zabbix/alertscripts/wechat.py`命令添加执行权限。 ### 配置报警信息内容 可以设置特定的报警信息内容,例如: ``` 主题: 告警主机:{HOSTNAME1} 故障! 告警主机:{HOSTNAME1} 告警IP:{HOST.IP} 告警时间:{EVENT.DATE} {EVENT.TIME} 告警等级:{TRIGGER.SEVERITY} 告警信息: {TRIGGER.NAME} 告警项目:{TRIGGER.KEY1} 问题详情:{ITEM.NAME} 当前状态:{TRIGGER.STATUS} 事件ID:{EVENT.ID} ``` 这样当有告警发生时,会按照该格式发送详细的告警信息企业微信机器人[^3]。 ### 相关问题 1. 企业微信机器人的Webhook地址如何获取? 2. 除了文本消息,Zabbix能否通过企业微信机器人发送图片或其他类型的消息? 3. 如果Zabbix服务器和企业微信机器人之间网络不通,如何排查问题? 4. 如何在Zabbix中设置不同严重等级的告警使用不同的消息模板发送企业微信? 5. 当脚本执行失败时,Zabbix有哪些日志可以用于排查问题?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值