[图片] 企业微信机器人告警 目前网上有很多关于钉钉机器人告警的示例文章,我网上找了半天没找到关于企业微信机器人配合 zabbix 实现告警的文章,其实 2 者实现的方式都一样,都是通过 python 脚本进行实现的;我这里就写下实现的步骤,供大家参考。搭建 zabbix 的环境我这里就不写了,网上有很多搭建文章。 1 ..

Zabbix 企业微信机器人告警

企业微信机器人告警

目前网上有很多关于钉钉机器人告警的示例文章,我网上找了半天没找到关于企业微信机器人配合 zabbix 实现告警的文章,其实 2 者实现的方式都一样,都是通过 python 脚本进行实现的;我这里就写下实现的步骤,供大家参考。搭建 zabbix 的环境我这里就不写了,网上有很多搭建文章。


1、创建企业微信机器人

这里可以在企业微信群里中添加群机器人
image.png

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

image.png
这个 webhook 后面需要使用到

2、配置 zabbix server

2.1:配置脚本执行目录

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

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

2.2:创建脚本

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

[root@zabbix-server ~]# cd /usr/lib/zabbix/alertscripts

[root@zabbix-server 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=xxxxxxxx"   #这个是企业微信机器人生成的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:赋予脚本执行权限

[root@zabbix-server alertscripts]# chmod +x wechat.py

#测试脚本
[root@zabbix-server alertscripts]# python wechat.py 您好,监控测试

image.png

3、zabbix Web 页面配置

3.1:创建报警媒介

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

3.2:创建动作

image.png
image.png

3.3:创建动作

告警操作
image.png
默认标题:
故障{TRIGGER.STATUS},服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!

消息内容:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件 ID:{EVENT.ID}

恢复操作
image.png
默认标题:
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

消息内容:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件 ID:{EVENT.ID}

记得最后保存

4、测试发送告警

可以将被监控端的 agent 停止(首先保证该被监控主机有对应的监控项和触发器)
image.png
image.png

  • Zabbix
    19 引用 • 12 回帖
  • alert
    1 引用
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    113 引用 • 741 回帖 • 558 关注
回帖
请输入回帖内容...