共计 3573 个字符,预计需要花费 9 分钟才能阅读完成。
一、企业微信注册
微信的报警方式可以让我们随时随地接收到信息,加快问题的处理,比传统邮件更加方便,首先我们先打开企业微信的地址 https://work.weixin.qq.com
1、填写申请信息
2、下一步
根据注册流程步骤进行后面的操作,直到注册成功。
二、企业微信配置
1、创建部门
首先我们要创建部门,类似于组,把相关的人员放到这个部门里面,创建部门之后,我们会用到部门 id,报警消息根据部门 id 发到部门的相关人员。
根据自己的需求填写,所属部门也可以是现有部门的子部门,具有层级所属关系。
查看部门 id,我们以后会用到,我这里部门 id 是 2。
2、给部门增加人员
点击添加成员,然后让用户关注就可以了。
3、添加应用
用于消息发送的接口,这里我们需要记住应用的 id 以及 secret,用于发送 token 的获取,按照我们的设定,目前只有运维部的人员可以看到此应用,即可以通过此应用获取到报警信息。
记住这里的 Agentid 和 Secret。
4、获取企业 ID
三、测试微信消息发送接口
调用微信接口需要一个调用接口的凭证: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
调试成功页面如下。
四、报警脚本
1、编写 python 脚本
脚本使用的 python 版本为 2.7 以上,所以请安装 CentOS 7。
vim /usr/local/zabbix/alertscripts/wechat.py
#!/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)
chmod
+x
/usr/local/zabbix/alertscripts/wechat
.py
2、测试脚本
微信已经可以接收到消息,那脚本已经没有什么问题了。
五、Zabbix 配置
1、添加 Media types
首先需要在 zabbix server 的配置文件开启上面脚本的目录,然后才可以使用,我们添加两个参数,一个是报警的标题,一个是报警信息的内容,用于传给脚本的两个参数。
2、给用户添加报警媒介
3、创建 Action
服务器:{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。
更多 Zabbix 相关教程集合:
在 Ubuntu 16.04 服务器上安装 Zabbix 3.2 http://www.linuxidc.com/Linux/2017-07/145519.htm
CentOS 7 LNMP 环境搭建 Zabbix3.0 http://www.linuxidc.com/Linux/2017-02/140134.htm
Ubuntu 16.04 安装部署监控系统 Zabbix2.4 http://www.linuxidc.com/Linux/2017-03/141436.htm
Zabbix 监控安装部署及警报配置 http://www.linuxidc.com/Linux/2017-03/141611.htm
Zabbix 触发器表达式详解 http://www.linuxidc.com/Linux/2017-03/141921.htm
Ubuntu 16.04 下安装部署 Zabbix3.0 http://www.linuxidc.com/Linux/2017-02/140395.htm
CentOS 6.3 下 Zabbix 监控 apache server-status http://www.linuxidc.com/Linux/2013-05/84740.htm
CentOS 7 下 Zabbix 3.0 安装详解 http://www.linuxidc.com/Linux/2017-03/141716.htm
CentOS 7.4 安装 Zabbix 3.4 http://www.linuxidc.com/Linux/2017-09/147202.htm
64 位 CentOS 6.2 下安装 Zabbix 2.0.6 http://www.linuxidc.com/Linux/2014-11/109541.htm
ZABBIX 的详细介绍:请点这里
ZABBIX 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148418.htm