zabbix微信告警

环境点击查看

注册一个企业微信官网

在这里插入图片描述
进入后台管理
在这里插入图片描述
拉一个用户
在这里插入图片描述
创建一个应用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下载脚本(这步保留个人看法)

[root@chenshuyi requests-2.18.3]# wget https://github.com/X-Mars/Zabbix-Alert-WeChat.git
--2021-06-07 13:24:41--  https://github.com/X-Mars/Zabbix-Alert-WeChat.git
正在解析主机 github.com (github.com)... 13.229.188.59
正在连接 github.com (github.com)|13.229.188.59|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 301 Moved Permanently
位置:https://github.com/X-Mars/Zabbix-Alert-WeChat [跟随至新的 URL]
--2021-06-07 13:24:41--  https://github.com/X-Mars/Zabbix-Alert-WeChat
再次使用存在的到 github.com:443 的连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:未指定 [text/html]
正在保存至: “Zabbix-Alert-WeChat.git”

    [  <=>                                       ] 169,901      800KB/s 用时 0.2s

2021-06-07 13:24:42 (800 KB/s) - “Zabbix-Alert-WeChat.git” 已保存 [169901]

[root@chenshuyi requests-2.18.3]#

编写脚本(以下脚本仅供参考)

1 #!/usr/bin/env python
1 #!/usr/bin/env python
  2 #-*- coding: utf-8 -*-
  3 #comment: zabbix 接入微信报警脚本
  4 import requests
  5 import sys
  6 import os
  7 import json
  8 import logging
  9
 10 logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %    (levelname)s, %(message)s', datefmt = '%a, %d %b %Y %H:%M:%S', filename = os.path    .join('/usr/lib/zabbix/alertscripts','weixin.log'),filemode = 'a')
 11
 12 corpid='ww6f9da3e4a93787c2'
 #自己的
 13 appsecret='NaRann1kAlEa5_C5laSvh0HmTBKWUDAKI2jsYFNhrAw'
 #自己的
 14 agentid=1000002
 #自己的
 15 #获取 accesstoken
 16 token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&cor    psecret=' +
 17 appsecret
 18 #print(token_url)
 19 req=requests.get(token_url)
 20 accesstoken=req.json()['access_token']
 21
 22 #发送消息
 23 msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + ac    cesstoken
 24 touser=sys.argv[1]
 25 subject=sys.argv[2]
 26 #toparty='3|4|5|6'
 27 message=sys.argv[3]
 28 params={
 29 "touser": touser,
 30 # "toparty": toparty,
 31 "msgtype": "text",
 32 "agentid": agentid,
 33 "text": {
 34 "content": message
 35 },
 36 "safe":0
 37 }
 38
 39 req=requests.post(msgsend_url, data=json.dumps(params))


注意:以上脚本以及获取途径只供参考(无论如何,你获取到正确的脚本就可以了)

[root@chenshuyi alertscripts]# ll 
总用量 4 
-rw-r--r--. 1 zabbix zabbix 0 6月 7 13:44 wechat.log
-rwxr-xr-x. 1 zabbix zabbix 1594 6月 7 14:23 wechat.py 
[root@chenshuyi alertscripts]#

测试

[root@chenshuyi alertscripts]# ./wechat.py "hao" "现在'date'" 
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wwcdc49cc9a8b17d4d&corpsecret=kjljPsZHsDqtk0vufRZWupqzOPUd2Ra4NeLgSgFk8yQ {u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'}

在这里插入图片描述

定时推送状态(每分钟一次)

在这里插入图片描述

定时器调用脚本(命令详解https://www.runoob.com/linux/linux-comm-crontab.html)

[root@chenshuyi alertscripts]# crontab -e 33 22 * * * /usr/lib/zabbix/alertscripts/backup.sh * * * * * /usr/lib/zabbix/alertscripts/wechat.py "chenshuyi status" "`date` It is OK!" ~

PS:分钟0-59 时钟0-23 天数1-31 月数1-12 星期几0-7
在这里插入图片描述
如果想实现定时推送备份之类的其实有很多方式,可以自己写程序也是可以的。

在这里插入图片描述

### 配置 Zabbix 使用微信进行告警推送 #### 一、准备工作 为了实现 Zabbix微信告警功能,需要完成以下几个方面的配置:Zabbix Server 端的报警媒介设置、微信告警脚本编写以及企业微信 API 应用的创建。 --- #### 二、具体操作步骤 ##### 1. 创建企业微信应用并获取相关参数 在企业微信管理后台中创建一个新的应用,并记录以下信息: - **CorpID**: 企业的唯一标识。 - **AgentId**: 应用的 ID。 - **Secret**: 应用的安全密钥。 这些参数将在后续的脚本中被使用[^1]。 ##### 2. 安装依赖库 确保服务器上已安装 Python 和 `requests` 库。如果未安装,可以通过以下命令安装: ```bash pip install requests ``` ##### 3. 准备微信告警脚本 进入 `/usr/lib/zabbix/alertscripts/` 目录,并克隆或上传告警脚本: ```bash cd /usr/lib/zabbix/alertscripts/ git clone https://github.com/X-Mars/Zabbix-Alert-WeChat.git cp Zabbix-Alert-WeChat/wechat.py . chmod +x wechat.py ``` 编辑 `wechat.py` 文件,填写之前从企业微信获取到的相关参数(如 CorpID, Secret, AgentId)。以下是脚本的关键部分示例: ```python #!/usr/bin/env python # -*- coding:utf-8 -*- import sys import json import requests CORP_ID = 'your_corpid' # 替换为企业微信的CorpID SECRET = 'your_secret' # 替换为应用的Secret AGENT_ID = 'your_agentid' # 替换为应用的AgentId def get_token(): url = f"https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={CORP_ID}&corpsecret={SECRET}" response = requests.get(url).json() return response['access_token'] def send_message(user, message): token = get_token() url = f'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={token}' data = { "touser": user, "msgtype": "text", "agentid": AGENT_ID, "text": {"content": message}, "safe": 0 } response = requests.post(url, data=json.dumps(data)) return response.text if __name__ == '__main__': user = sys.argv[1] msg = sys.argv[2] result = send_message(user, msg) print(result) ``` 注意替换占位符中的实际值[^2]。 ##### 4. 配置 Zabbix 报警媒介 登录 Zabbix Web 界面,在“Administration” -> “Media types” 中新增一种媒体类型: - 名称:WeChat - 类型:Script - 脚本名称:`wechat.py` - 参数: - `{USER.NAME}` - `{ALERT.MESSAGE}` 保存后,继续前往“Users”页面,为指定用户绑定该 WeChat 媒体类型,并输入接收消息的企业微信用户名。 ##### 5. 测试告警功能 触发一次测试事件,验证是否能够成功接收到来自 Zabbix微信告警消息。如果没有正常工作,请检查日志文件 `/var/log/zabbix/zabbix_server.log` 或者重新核对企业微信的应用权限和网络连通性[^3]。 --- #### 三、注意事项 - 如果运行环境不支持 Python,则可以考虑采用 Shell 脚本方式替代,例如按照引用说明新建 `weixin.sh` 并填充相应逻辑[^4]。 - 确认防火墙允许访问外部服务地址(即企业微信接口 URL),否则可能导致请求失败。 --- #### 四、总结 上述方法展示了如何利用自定义脚本配合企业微信平台来扩展 Zabbix告警能力。通过合理规划各环节之间的协作关系,最终实现了高效便捷的消息传递机制。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值