Zabbix 添加企业微信告警,并记录告警持续时长。(本文主要针对设备离线进行监控)
准备工作:
首先使用企微账户创建企微群(友情提醒:创建的企微群内只可以邀请企微账户,邀请微信账户后,后续告警无法接收,因为机器人会失效)
一、添加企微群机器人
打开企微群聊天框,点击右上角…功能选项,选择→消息推送→添加→自定义机器人名称,添加完成后,机器人会随机分配一个webhook 链接地址。如下图所示


二、服务器后端配置:
1. 登陆Zabbix服务器后端:进入脚步存放目录
cd /usr/lib/zabbix/alertscripts/ #Zabbix 动作脚本默认存放目录
2. 新建脚本:添加一个Python的脚本文件
vim /usr/lib/zabbix/alertscripts/your_script.py #编辑脚本
3. 脚本内容:可以直接复制以下代码到文件内,并保存退出。
#!/usr/bin/python
#-*- coding: utf-8 -*-
import requests
import json
import sys
import os
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "" #这个是企业微信机器人生成的webhook地址,修改为你的即可。
def msg(text):
json_text= {
"msgtype": "text",
"text": {
"content": text,
"mentioned_mobile_list":["17777777777","17666666666","15555555555"] #这个是企业微信机器人自动艾特群里成员,修改为群成员手机号即可。
},
}
print requests.post(api_url,json.dumps(json_text),headers=headers).content
if __name__ == '__main__':
text = sys.argv[1]
msg(text)
脚本验证测试:
python wechat_alert_user.py "设备离线告警测试,谢谢!!!"
三. Zabbix 前端配置:
1. 添加新的用户:新建用户和组,也可以使用现有账户(用户必须有监控设备 监控项的读权限,用于接收告警通知)
2. 添加报警媒介:管理→媒介

3. 用户配置:将用户告警媒介与创建的脚本关联,这里将用户的报警媒介选择刚刚创建的媒介名称。

4. 添加动作,用于调用脚本执行脚本内容;可以根据自己的监控内容进行添加监控条件。

动作操作编辑:
用户组:选择用户所在组,没有组直接选择用户。
仅发到:选择之前添加的媒介
自定义内容:勾选
主题:{HOSTNAME1}设备离线告警!
消息:填写以下信息
告警通知:{HOSTNAME1}设备离线告警!
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级: 灾难
告警项目: {TRIGGER.NAME}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
确认信息:请确认下设备的运行状态(电源、链路)
告警恢复操作编辑:
用户组:选择用户所在组,没有组直接选择用户。
仅发到:选择之前添加的媒介
自定义内容:勾选
主题:恢复通知:{HOSTNAME1}离线状态已恢复!
消息:填写以下信息
恢复通知:{HOSTNAME1}离线状态已恢复!
恢复主机:{HOSTNAME1}
恢复时间:{EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
恢复项目: {TRIGGER.NAME}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
四、可以自行针对监控设备进行手动触发告警,查看企微群是否可以接收告警。
企微消息收到样子如下:

有错误的地方欢迎指出,有疑问欢迎留言!
共同进步,互相学习!
祝君顺利!
本文来自博客园,作者:Hope·,转载请注明原文链接:https://www.cnblogs.com/Hope-/p/19153204
浙公网安备 33010602011771号