Giter Club home page Giter Club logo

zabbix-alert-wechat's Introduction

Zabbix-Alert-WeChat zabbix 微信 等各类告警脚本

作者:火星小刘 邮箱:[email protected]

关注作者B站,一起学习运维开发 https://space.bilibili.com/439068477

B站火星小刘

包含脚本

  1. 企业微信应用消息脚本 wechat.py
  2. 企业微信群机器人脚本 wechat-robot.py
  3. 钉钉机器人脚本 dingtalk-robot.py
  4. 飞书机器人脚本 feishu-robot.py
  5. 企业微信应用消息python2版本脚本 wechat-py2-old.py

交流群

https://www.zabbix.com/cn/integrations/wechat 本项目zabbix官方推荐位列第一,值得信赖

2023-09-08 更新

  1. 添加钉钉机器人支持 dingtalk-robot.py

  1. 添加飞书机器人支持 feishu-robot.py

2023-09-05 重要更新

  1. 添加同时兼容 python2 与 python3 的告警脚本 wechat.py
  2. 原有python2 告警脚本 重命名为 wechat-py2-old.py

企业微信群机器人脚本 wechat-robot.py

企业微信应用消息脚本 wechat.py

2018-10-13

  1. 添加token缓存支持:避免频繁获取token 进而导致接口被限制
  2. token过期,脚本将重新获取token,并再次执行之前发送操作

2018-07-09

如何将报警同时发送给多个用户

  1. 企业微信支持3种发送方式:针对用户发送(需要用户在企业微信中的id)针对部门发送(需要部门id)针对标签发送(需要标签id,通讯里---标签)
  2. 对应去掉下图的注释即可 群发设置

2017-11-23

转载必须注明本项目地址
https://github.com/X-Mars/Zabbix-Alert-WeChat 本脚本的出现离不开广大zabbix用户,大家可以免费试用,但不要用来盈利

2017-08-08

  1. 全部重写,代码更简洁易读
  2. 舍弃原有simplejson,使用requests模块
  3. 支持python2

需要具备一下条件

  • 注册微信企业号(团队类型) 点击注册   或    注册企业号微信 [点击注册](https://work.weixin.qq.com/)
  • 近期腾讯把微信企业号升级为了企业微信,本脚本完全兼容。

安装组件

  1. 安装方法一
pip install requests
pip install --upgrade requests
  1. 安装方法二
wget https://pypi.python.org/packages/c3/38/d95ddb6cc8558930600be088e174a2152261a1e0708a18bf91b5b8c90b22/requests-2.18.3.tar.gz
tar zxvf requests-2.18.3.tar.gz
cd requests-2.18.3
python setup.py build
python setup.py install

下载安装脚本

git clone https://github.com/X-Mars/Zabbix-Alert-WeChat.git  
cp Zabbix-Alert-WeChat/wechat.py /etc/zabbix/alertscripts  
chmod +x /etc/zabbix/alertscripts/wechat.py  

企业微信设置

通讯录设置

登陆企业微信控制台
点击顶部 通讯录 添加子部门(运维部),并添加用户
点击(运维部)后方的三个竖行圆点,记录 部门ID

创建应用

点击顶部 应用中心,创建应用,应用名称为 zabbix报警
可见范围,添加刚刚新建的子部门(运维部)
点击 zabbix报警,记录 AgentIdSecret

应用权限设置

点击顶部 我的企业,权限管理,新建普通管理组,名称填写 zabbix报警组
点击修改 通讯录权限,勾选(技术部)后方的管理
点击修改 应用权限,勾选刚刚创建的 zabbix报警
点击刚刚创建的 zabbix报警组,记录左侧的 CorpID 与 Secret

收集企业微信相关信息

  1. 记录 应用ID
  2. 记录 CorpID 与 Secret
  3. 记录 子部门(运维部)ID

zabbix设置

  1. 添加示警媒介

管理-->示警媒介

名称填写 微信报警,类型选择 脚本,脚本名称填写 wechat.py(Python3 使用 wechat-py3.py)

管理-->用户-->示警媒介

类型选择 微信报警,收件人添加 微信企业号通讯录内的,用户帐号

完成

Star History

请给该项目一个star,您的点赞就是对我最大的支持与鼓励 Star History Chart

License

996ICU License

zabbix-alert-wechat's People

Contributors

x-mars avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zabbix-alert-wechat's Issues

配置过程中遇到的一点小问题

首先表示感谢,你的脚本非常好用!
配置过程中发现几个小问题,在此提一下。

报警脚本默认存放路径应该是:

/usr/local/share/zabbix/alertscripts
或者 AlertScriptsPath 指定的其它位置。

需要提供以下三个宏作为脚本参数:

  • {ALERT.SENDTO}
  • {ALERT.SUBJECT}
  • {ALERT.MESSAGE}

加上 "toparty" 会始终给整个部门发消息,不需要的话建议注释掉。
如单独给某几人发,还可选择在企业号通讯录给用户打标签,用 "totag" 发消息。

代码里有几个空行多加了空格,建议去掉。

zabbix4.0 使用脚本报错 Permission denied: 'config.json'

最近新搭建的zabbix server 4.0,使用了最新的wechat.py,记得以前版本是没有生成config.json,现在新版本脚本生成了config.json,报错是没权限,我已经给config.json配了777权限和chown zabbix,依然还是相同的报错,麻烦看看是什么问题?

Traceback (most recent call last):
File "/usr/lib/zabbix/alertscripts/wechat.py", line 73, in
Status = SendMessage(User,Agentid,Subject,Content)
File "/usr/lib/zabbix/alertscripts/wechat.py", line 35, in SendMessage
Token = GetTokenFromServer(Corpid, Secret)
File "/usr/lib/zabbix/alertscripts/wechat.py", line 24, in GetTokenFromServer
file = open('config.json', 'w')
IOError: [Errno 13] Permission denied: 'config.json'

告警中文乱码

测试修改为如下方式后,中文显示正常。
wechat

` datas = json.dumps(Data, ensure_ascii=False).encode('utf-8')

r = requests.post(url=Url,data=datas)`

建议加缓存

因为gettoken接口每天有调用次数限制,建议将获取到的token缓存起来,避免超出次数限制。

python3.9.9企业微信脚本报错

Traceback (most recent call last):
File "/usr/local/zabbix/scripts/wechat-robot.py", line 6, in <module>
import sys, requests
ModuleNotFoundError: No module named 'requests'

webhook

请问大佬,这个有支持企业微信markdown,卡片形式的告警么

错误

提示这个错误?
usr/lib/zabbix/alertscripts/zabbix-wachat.sh: line 3: import: command not found
/usr/lib/zabbix/alertscripts/zabbix-wachat.sh: line 4: import: command not found
/usr/lib/zabbix/alertscripts/zabbix-wachat.sh: line 7: syntax error near unexpected token reload' /usr/lib/zabbix/alertscripts/zabbix-wachat.sh: line 7: reload(sys)'

请教个问题,Python脚本命令行执行ok,zabbix类似wechat调用失败

内网我有个报警平台,zabbix服务器无外网权限,而是通过内网的报警平台发微信报警。
仿照wechat写了个python脚本,调用内网接口,命令行手工执行ok,格式类似:
./gochat.py "xxxxxx(工号)" “主题” “内容”
返回结果正常,如下:
{"errmsg":"ok","errcode":0}
微信接收正常。
但在zabbix里类似wechat配置好介质类型和用户介质后,没有生效,不知哪里的问题?
在zabbix_server.log里没看到相关日志。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.