打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
zabbix5.0企业微信报警
  • 先去申请企业微信,要以管理员的权限创建机器人,建完机器人后会有一串webhook,类似这种
?
1
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx509-4f42-xxxxxxxx
  • 测试这个钩子能不能用,具体使用方法可以看微信机器人文档
?
1
https://work.weixin.qq.com/help?doc_id=13376
  • 看完机器人文档后,需要写个python脚本调用这个钩子机器人,这个脚本放在/usr/lib/zabbix/alertscripts/目录下(注意服务器上要安装python3环境!
+ View Code?
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/local/python3/bin/python3
# coding:utf-8
# zabbix企业微信报警
import requests, json, sys, os, datetime
#微信钩子机器人地址
webhook = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxxxxxxxxxxxxxxxxxx"
#zabbix传过来的三个变量
user = sys.argv[1]
title = sys.argv[2]
text = sys.argv[3]
#每发送一次报警,就记一次日志
file = r"/var/log/zabbix/send2wechat.log"
#报警的信息
data = {
    "msgtype": "markdown",
    "markdown": {
        "content": title + "\n" + text
    }
}
#请求这个钩子机器人
headers = {'Content-Type': 'application/json'}
x = requests.post(url=webhook, data=json.dumps(data), headers=headers)
if os.path.exists(file):
    f = open(file, "a+")
else:
    f = open(file, "w+")
    f.write(" " + " - -" * 30)
    f.write("\n")
     
#记录日志
if x.json()["errcode"] == 0:
    f.write(" "+ str(datetime.datetime.now()) + " " + str(user) + " " + "发送成功" + " " + str(title) + "\n")
    f.close()
else:
    f.write(" "+ str(datetime.datetime.now()) + " " + str(user) + " " + "发送失败" + " " + str(title) + "\n")
    f.close()  
  • 去zabbix页面创建报警类型

    • 脚本名称就是刚才创建的python脚本

    • 故障报警信息(#和>都需要打上,markdown标记):
?
1
2
3
4
5
6
7
8
9
10
# 服务故障: <font color="warning">{EVENT.NAME}</font>
{
> 告警主机: **{HOST.NAME}**
> 主机地址: **{HOST.IP}**
> 监控项目: {ITEM.NAME}
> 当前取值: {ITEM.LASTVALUE}
> 告警等级: {TRIGGER.SEVERITY}
> 告警时间: {EVENT.DATE}-{EVENT.TIME}
> 事件ID: {EVENT.ID}
}
    • 类似这样

    •  故障恢复信息(#和>都需要打上,markdown标记):
?
1
2
3
4
5
6
7
8
9
10
11
# 故障恢复: <font color="info">{EVENT.NAME}</font>
{
> 主机名称: **{HOST.NAME}**
> 主机地址: **{HOST.IP}**
> 告警名称: {EVENT.NAME}
> 持续时长: {EVENT.DURATION}
> 恢复时间: {EVENT.RECOVERY.DATE}-{EVENT.RECOVERY.TIME} 
> 当前状态: {TRIGGER.STATUS}
> 当前取值: {ITEM.LASTVALUE}
> 事件ID: {EVENT.ID}
}
    • 类似这样

  • 创建发送报警的用户

 

 

 ***用户的报警媒介这必须加上刚刚创建的媒介,不然消息发不出去

 

 

  •  创建触发器动作

 

    • 条件是所有报警动作都触发条件

 

 

 

 

  •  触发器和监控项自己去创建,之后搞挂一个服务,企业微信上就会收到消息了

 
 

 

  •  zabbix服务器上的监控脚本日志

 

 

 --------------------------

根据限定条件,把领导想看的报警发到他们自己群里

依照上面的博客,在创建一个报警媒介

 

 

 在用户里面需要把刚刚创建的媒介也加上去

 

 

添加触发器动作,第二个动作限定好条件,这样再发消息,领导就能看到他想看到的了

 

 

 

  

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
zabbix的搭建及操作(4)实现邮件,钉钉,微信报警
jenkins+gitlab钩子+shell脚本基于git的tag实现App增量更新
zabbix 报警 进程数太多
快速获取API状态的三种方式
Nagios zabbix ganglia的相关参数分析和优缺点介绍
zabbix如何实现微信报警
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服