[日期:2017-11-08] | 来源:Linux社区 做者:wzlinux | [字体:大 中 小] |
1、企业微信注册php
微信的报警方式可让咱们随时随地接收到信息,加快问题的处理,比传统邮件更加方便,首先咱们先打开企业微信的地址 https://work.weixin.qq.compython
一、填写申请信息linux
二、下一步apache
根据注册流程步骤进行后面的操做,直到注册成功。json
2、企业微信配置vim
一、建立部门c#
首先咱们要建立部门,相似于组,把相关的人员放到这个部门里面,建立部门以后,咱们会用到部门id,报警消息根据部门id发到部门的相关人员。api
根据本身的需求填写,所属部门也能够是现有部门的子部门,具备层级所属关系。服务器
查看部门id,咱们之后会用到,我这里部门id是2。微信
二、给部门增长人员
点击添加成员,而后让用户关注就能够了。
三、添加应用
用于消息发送的接口,这里咱们须要记住应用的id以及secret,用于发送token的获取,按照咱们的设定,目前只有运维部的人员能够看到此应用,便可以经过此应用获取到报警信息。
记住这里的Agentid和Secret。
四、获取企业ID
3、测试微信消息发送接口
调用微信接口须要一个调用接口的凭证: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
调试成功页面以下。
4、报警脚本
一、编写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
二、测试脚本
微信已经能够接收到消息,那脚本已经没有什么问题了。
5、Zabbix配置
一、添加Media types
首先须要在zabbix server的配置文件开启上面脚本的目录,而后才可使用,咱们添加两个参数,一个是报警的标题,一个是报警信息的内容,用于传给脚本的两个参数。
二、给用户添加报警媒介
三、建立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}
}
6、报警测试
关掉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