IT技术分享

了解前沿IT技术

当前位置:首页>ITRM介绍>IT技术分享
全部 12 ITRM动态 3 业界新闻 3 IT技术分享 6

zabbix企业微信群机器人报警

最后更新:2019-07-02   

企业微信自2019年6月底升级2.8.7后新增了群机器人,对运维人员来说,用企业微信预警就更简单了。没有那么多东西要获取了。下面我们来实现:


1、打开企业微信群聊,添加群机器人,获取webhook地址

图片.png

图片.png

2、zabbix-server.conf 中配置脚本路径并编写脚本  默认位置 /etc/zabbix/zabbix_server.conf
  如果不对,可以用 find / -name zabbix_server.conf 命令查找
3、查看脚本执行目录,
  cat /etc/zabbix/zabbix_server.conf |grep AlertScriptsPath
  AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@server ~]# cd /usr/lib/zabbix/alertscripts/
4、在目录下创建如下脚本vim /usr/lib/zabbix/alertscripts/wxrob.py
  见末尾
5.赋予脚本可执行权限:chmod +x /usr/lib/zabbix/alertscripts/wxrob.py

6、新增报警媒介

类型 :脚本

参数:

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

图片.png

脚本代码(红色的改成自己的机器人)

#!/usr/bin/env python
#coding:utf-8
#zabbix企业微信群机器人
import requests,json,sys,os,datetime
webhook= "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=e140193c-742b-4a28-b522-********"
user=sys.argv[1]
text=sys.argv[2] + ' ' + sys.argv[3]
data={
    "msgtype": "text",
    "text": {
        "content": text,
        "mentioned_list":["wangqing","@all"],
        "mentioned_mobile_list":["@all"]

    }

}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/tmp/zabbix_wx.log"):
    f=open("/tmp/zabbix_wx.log","a+")
else:
    f=open("/tmp/zabbix_wx.log","w+")
f.write(" "+"--"*30)
if x.json()["errcode"] == 0:
    f.write(" "+str(datetime.datetime.now())+"    "+str(user)+"    "+"发送成功"+" "+str(text))
    f.close()
else:
    f.write(" "+str(datetime.datetime.now()) + "    " + str(user) + "    " + "发送失败" + " " + str(text))
    f.close()

7、注意蓝色部分 二选一即可,有名字就用名字,没名字可以用手机号,@all最简单啦

更多功能见官方机器人说明:https://work.weixin.qq.com/api/doc#90000/90136/91770

文本类型

{
   "msgtype": "text",
       "text": {
               "content": "广州今日天气:29度,大部分多云,降雨概率:60%",
               "mentioned_list":["wangqing","@all"],
               "mentioned_mobile_list":["13800001111","@all"]
                }
}
参数必须说明
msgtypetrue消息类型,此时固定为text
contenttrue文本内容,最长不超过2048个字节,必须是utf8编码
mentioned_listfalseuserid的列表,提醒群中的指定成员(@某个成员),@all表示提醒所有人,如果开发者获取不到userid,可以使用mentioned_mobile_list
mentioned_mobile_listfalse手机号列表,提醒手机号对应的群成员(@某个成员),@all表示提醒所有人

转载请保留本站地址哟!~~~~~~~~~~~~

上一篇:Zabbix使用企业微信报警

下一篇:没有了!

在线咨询

点击这里给我发消息 咨询专员

在线咨询

微信扫一扫

微信联系
返回顶部