[日期:2017-11-08] | 来源:Linux社区 做者:wzlinux | [字体:大 中 小] |
1、企业微信注册php
微信的报警方式可让咱们随时随地接收到信息,加快问题的处理,比传统邮件更加方便,首先咱们先打开企业微信的地址 https://work.weixin.qq.compython
一、填写申请信息linux
二、下一步json
根据注册流程步骤进行后面的操做,直到注册成功。vim
2、企业微信配置c#
一、建立部门api
首先咱们要建立部门,相似于组,把相关的人员放到这个部门里面,建立部门以后,咱们会用到部门id,报警消息根据部门id发到部门的相关人员。服务器
根据本身的需求填写,所属部门也能够是现有部门的子部门,具备层级所属关系。微信
查看部门id,咱们之后会用到,我这里部门id是2。app
二、给部门增长人员
点击添加成员,而后让用户关注就能够了。
三、添加应用
用于消息发送的接口,这里咱们须要记住应用的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
=
"1"
#部门id 要是没部门为1
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。