Featured image of post Zabbix配置企业微信群(机器人)警告

Zabbix配置企业微信群(机器人)警告

企业微信机器人告警企业微信群聊里面增加机器人,机器人会提供发送信息的脚本进行实现的、创建企业微信机器人没有企业微信的可以自己在企业微信官网申请注册个企业,创建企业微信群至少个人以上这个后面需要使用到、。。。。。。。

企业微信机器人告警

企业微信群聊里面增加机器人,机器人会提供发送信息的URL

 python 脚本进行实现的

1、创建企业微信机器人

没有企业微信的可以自己在企业微信官网申请注册个企业,创建企业微信群至少 3 个人以上

这个 webhook 后面需要使用到

2、配置 zabbix server

2.1:配置脚本执行目录

定义脚本目录,我这里就选择了默认的目录

1
2
[root@zabbix-master ~]#  grep -Ev '^$|#' /etc/zabbix/zabbix_server.conf | grep ^A
AlertScriptsPath=/usr/lib/zabbix/alertscripts

2.2:创建脚本

进入该定义的脚本存放路径下创建用来推送告警消息的脚本

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[root@zabbix-master ~]# 
[root@zabbix-master ~]# cd /usr/lib/zabbix/alertscripts

[root@zabbix-master alertscripts]# vim wechat.py 

#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os

headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=36d51b45-162f6c9d13909" #这就是先前的webhook地址
def msg(text):
    json_text= {
     "msgtype": "text",
        "text": {
            "content": text
        },
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content

if __name__ == '__main__':
    text = sys.argv[1]
    msg(text)
~            

2.3:赋予脚本执行权限

1
2
3
4
[root@zabbix-master alertscripts]# chmod +x wechat.py
[root@zabbix-master alertscripts]# python wechat.py 你好
{"errcode":0,"errmsg":"ok"}
[root@zabbix-master alertscripts]# 

3、zabbix Web 页面配置

3.1:创建报警媒介

管理–> 报警媒介类型–> 创建媒介类型
新建一个企业微信的报警,脚本名称就是我们脚本名 wechat.py

3.2:创建动作

默认标题:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

故障{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}

恢复操作

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!


恢复{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、测试发送告警