Zabbix 3.4.3之企业微信报警

简介:

一、企业微信注册

   微信的报警方式可以让我们随时随地接收到信息,加快问题的处理,比传统邮件更加方便,首先我们先打开企业微信的地址 https://work.weixin.qq.com

1、填写申请信息

9d283d0396604e4ec4dbb20fe6294559.png

2、下一步

    根据注册流程步骤进行后面的操作,直到注册成功。

二、企业微信配置

1、创建部门

    首先我们要创建部门,类似于组,把相关的人员放到这个部门里面,创建部门之后,我们会用到部门id,报警消息根据部门id发到部门的相关人员。

03fec13df11741fca6305f5d72c89962.png

    根据自己的需求填写,所属部门也可以是现有部门的子部门,具有层级所属关系。

0c2b4e2267779bc5cae5be63da2e406e.png

    查看部门id,我们以后会用到,我这里部门id是2。

e4fd7d7702fc8cb4fcacc2cbb8910e50.png

2、给部门增加人员

    点击添加成员,然后让用户关注就可以了。

26653f0405ab52696895ec281f93131a.png

3、添加应用

    用于消息发送的接口,这里我们需要记住应用的id以及secret,用于发送token的获取,按照我们的设定,目前只有运维部的人员可以看到此应用,即可以通过此应用获取到报警信息。

311572190a699c641f6c71ca0888375a.png

    记住这里的Agentid和Secret。

53cfbb397f4ade21abef37c4a8db2bbf.png

4、获取企业ID

fbf0aa495a73b3332353e8fa742cea02.png

三、测试微信消息发送接口

    调用微信接口需要一个调用接口的凭证:access_token,通过CropID 、Secret才能获取到access_token,但是获取到的token有效期为7200秒。

    我们可以通过下面的接口调试工具以及接口说明文档进行测试。

接口调试工具http://work.weixin.qq.com/api/devtools/devtool.php

接口说明文档https://work.weixin.qq.com/api/doc#10167

    调试成功页面如下。

d099e2d3043f145a21d6b218044e5e47.png

四、报警脚本

1、编写python脚本

     脚本使用的python版本为2.7以上,所以请安装CentOS 7。

vim /usr/local/zabbix/alertscripts/wechat.py 

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
42
43
44
45
#!/usr/bin/python
# -*- coding: utf-8 -*-
# zabbix notification confirmation script
# python2.7 or above
 
import  requests
import  json
import  os
import  sys
 
Toparty  =  "2"    #部门id
AgentID  =  4      #应用id
 
#修改为企业CropID和Secret
CropID  =  'wx8d46d3xxxxx993'
Secret  =  'QCjzy2lH2ZB7MUG6uowChyChPsOxxxxxxxxxxxxxxTVR4saIw3Ezznh'
 
#获取Token
Gtoken  = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" +  CropID  +  "&corpsecret="  +  Secret
headers  =  { 'Content-Type' 'application/json' }
json_data  =  json.loads(requests.get(Gtoken).content.decode())
token  =  json_data[ "access_token" ]
 
#消息发送接口
Purl  =  "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token="  +  token
 
#消息发送函数
def  msg(title,message):
     weixin_msg  =  {
          "toparty"  : Toparty,
          "msgtype"  "textcard" ,
          "agentid"  : AgentID,
          "textcard"  : {
              "title"  : title,
              "description"  : message,
              "url"  "www.wzlinux.com" ,
              "btntxt" : "更多"
           }
       }
     print  requests.post(Purl,json.dumps(weixin_msg),headers = headers)
 
if  __name__  = =  '__main__' :
     title  =  sys.argv[ 1 ]         #获取第一个参数
     message  =  sys.argv[ 2 ]       #获取第二个参数
     msg(title,message)
1
chmod  +x  /usr/local/zabbix/alertscripts/wechat .py

2、测试脚本

f4f6ab1f20d5e3db303b72c97af9edb2.png

    微信已经可以接收到消息,那脚本已经没有什么问题了。

五、Zabbix配置

1、添加Media types

    首先需要在zabbix server的配置文件开启上面脚本的目录,然后才可以使用,我们添加两个参数,一个是报警的标题,一个是报警信息的内容,用于传给脚本的两个参数。

84f487fc40043c870c98f80060753ea5.png

2、给用户添加报警媒介

f72cb38ddced0772342b01f4d2099d7b.png

3、创建Action

ce3eec4ce303d0ada67bb86f49dee783.png

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
服务器:{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}
}
  
  
服务器:{HOST.NAME}: {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}
}
  
  
服务器:{HOST.NAME}: 报警确认
{
确认人:{USER.FULLNAME} 
时间:{ACK.DATE} {ACK.TIME} 
确认信息如下:
"{ACK.MESSAGE}"
问题服务器IP:{HOSTNAME1}
问题ID:{EVENT.ID}
当前的问题是: {TRIGGER.NAME}
}

六、报警测试

    关掉zabbix agent。

b4cb0d8006e40bfb2b96407333160fa4.png



     本文转自 wzlinux 51CTO博客,原文链接:http://blog.51cto.com/wzlinux/1978967,如需转载请自行联系原作者



相关文章
|
6月前
|
监控
zabbix设置邮件报警
zabbix设置邮件报警
|
10天前
|
监控 关系型数据库 应用服务中间件
zabbix自定义监控、钉钉、邮箱报警
zabbix自定义监控、钉钉、邮箱报警,实验准备,安装,添加监控对象,添加自定义监控项,监控mariadb,监控NGINX,钉钉报警设置,邮件报警
129 0
|
8月前
|
运维 监控 小程序
【运维知识进阶篇】zabbix5.0稳定版详解2(自定义监控+报警+图形+模板)(三)
【运维知识进阶篇】zabbix5.0稳定版详解2(自定义监控+报警+图形+模板)(三)
52 0
|
8月前
|
运维 监控 测试技术
【运维知识进阶篇】zabbix5.0稳定版详解2(自定义监控+报警+图形+模板)(二)
【运维知识进阶篇】zabbix5.0稳定版详解2(自定义监控+报警+图形+模板)(二)
83 0
|
8月前
|
运维 监控 网络协议
【运维知识进阶篇】zabbix5.0稳定版详解2(自定义监控+报警+图形+模板)(一)
【运维知识进阶篇】zabbix5.0稳定版详解2(自定义监控+报警+图形+模板)
118 0
|
9月前
|
监控 机器人 Python
Zabbix-实现钉钉群报警
Zabbix-实现钉钉群报警
151 0
|
9月前
|
运维 监控 机器人
zabbix实现多个钉钉群报警
zabbix实现多个钉钉群报警
|
10月前
|
监控 机器人 Shell
zabbix邮件报警
zabbix邮件报警
124 0
|
10月前
|
监控 安全 前端开发
zabbix数据库分离和邮件报警
zabbix数据库分离和邮件报警
80 0
|
11月前
|
监控 机器人
zabbix 电话报警技巧
Zabbix是一款开源的企业级监控系统,可以监控网络、服务器、应用程序等各种资源。在监控过程中,及时的告警通知是非常重要的,本文将介绍如何在Zabbix中配置电话、短信、飞书、钉钉、微信和邮件报警
371 0

热门文章

最新文章

推荐镜像

更多