APP下载
报价宝  ›  科技  › 

ZABBIX3.2通过企业微信报警

报价宝 来源:baojiabao.com 发布时间:2019-10-12 14:52:00 11月15日更新
报价宝综合消息ZABBIX3.2通过企业微信报警

公司最开始使用的邮件报警形式,但是用了一段时间发现实时性和检视上效果不是很好。于是打算使用企业微信像聊天一样来进行报警。

步骤:

1、企业微信上各种ID资讯和应用准备

首先登陆企业微信管理后台

记录好CorpID

在企业微信管理后台建立一个应用

设定好对应的报警人等资讯,设定好可见范围(某些人或者某个部门),记录好这里的AgentId 和 Secret

记录着3个资讯即可。

测试

wget https://raw.githubusercontent.com/OneOaaS/weixin-alert/master/weixin_linux_amd64

./weixin_linux_amd64 --corpid=ww9a86b983140c4039 --corpsecret=p1NFDde3dWC4a2xZ_LM1QXMNW9h_inQjR0ZkNj2ogPI --msg="test12332" --user=monitor --agentid=1000002

{"errcode":0,"errmsg":"ok","invaliduser":""}

提示:

--corpid= 我们企业里面的id

--corpsecret= 这里就是我们Secret里面的id

-msg= 内容

-user=我们邀请使用者的账号

因为指令码是编译过的,无法进行编辑,我们可以使用./wechat -h or --help 检视

说明文件:https://work.weixin.qq.com/api/doc#10167

界面文件:http://qydev.weixin.qq.com/wiki/index.php?title=%E4%B8%BB%E5%8A%A8%E8%B0%83%E7%94%A8

除错工具:http://work.weixin.qq.com/api/devtools/devtool.php

zabbix-server端设定

下载安装requests(python指令码呼叫到)

/usr/local/python2.7.9/bin/pip install requests

编辑好python指令码

zabbix预设指令码存放位置:

检视 zabbix_server.conf 配置档案 AlertScripts 指令码放置路径:

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

#!/usr/local/python2.7.9/bin/python2.7

# -*- coding: utf-8 -*-

# zabbix notification confirmation script

# python2.7 or above

import requests

import json

import os

import sys

#Toparty = "2" #部门id

AgentID = 1000005 #应用id

#修改为企业CropID和Secret

CropID = 'ww4ea11111189822'

Secret = 'ibHasd23423sdf4asdasdDSAstEA7XinGhgaFA0'

#获取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(user, title, message):

weixin_msg = {

"touser" : user,

"msgtype" : "text",

"agentid" : AgentID,

"text" : {

"content" : "%s %s" %(title, message)

},

}

print requests.post(Purl,json.dumps(weixin_msg),headers=headers)

if __name__ == '__main__':

user = sys.argv[1] #获取第一个引数

title = sys.argv[2] #获取第二个引数

message = sys.argv[3] #获取第三个引数

msg(user, title, message)

其他展示效果格式:

{

"touser" : "qy01ed14fb35f912079c395d425f",

"msgtype" : "news",

"agentid" : 1000005,

"news" : {

"articles" : [

{

"title" : "title",

"description" : "message",

"url" : "www.xlcwnet.com",

"picurl" : "http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png",

"btntxt":"阅读全文"

}

]

}

}

{

"touser" : "qy01ed14fb35f912079c395d425f",

"msgtype" : "textcard",

"agentid" : 1000005,

"textcard" : {

"title" : "title",

"description" : "message",

"url" : "www.xlcwnet.com",

"btntxt":"更多"

},

}

{

"touser" : "qy01ed14fb35f912079c395d425f",

"msgtype" : "text",

"agentid" : 1000005,

"text" : {

"content" : "你的快递已到,请携带工卡前往邮件中心领取。 出发前可检视邮件中心视讯实况,聪明避开排队。"

},

}

测试:

[[email protected] alertscripts]# ./weixin.py XXX subject body

zabbix 前端设定

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

设定收到报警的人员,在企业微信管理界面找到每个人的ID号,多个接收人以"|"符号来分开。

设定触发报警时候传送格式

大家可以参考下,直接复制过去用

告警主题:

[{TRIGGER.SEVERITY}]服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障!

告警内容:

地址:{HOST.IP}

告警主机: {HOSTNAME1}

主机分组: {TRIGGER.HOSTGROUP.NAME}

告警时间: {EVENT.DATE} {EVENT.TIME}

告警等级: {TRIGGER.SEVERITY}

告警资讯: {TRIGGER.NAME}

告警专案: {TRIGGER.KEY1}

问题详情: {ITEM.NAME}:{ITEM.VALUE}

当前状态: {TRIGGER.STATUS}

事件 ID: {EVENT.ID}

告警恢复内容:

1恢复主题:

2[{TRIGGER.SEVERITY}]服务器:{HOSTNAME1}{TRIGGER.NAME}已恢复!

3恢复内容:

4告警主机: {HOSTNAME1}

5主机分组: {TRIGGER.HOSTGROUP.NAME}

6告警时间: {EVENT.DATE} {EVENT.TIME}

7告警等级: {TRIGGER.SEVERITY}

8告警资讯: {TRIGGER.NAME}

9告警专案: {TRIGGER.KEY1}

10问题详情: {ITEM.NAME}:{ITEM.VALUE}

11当前状态: {TRIGGER.STATUS}

12事件 ID: {EVENT.ID}

至此设定完成!

测试

建立主机 test15 ,设定个没有使用的 IP 为地址

日常使用效果

文章标签: 报价宝 降噪耳机价格 耳机价格 红米手机价格 华为手机价格 小米手机价格 电视机价格 笔记本电脑价格 笔记本价格 汽车价格 手机价格 汽车价格 笔记本价格 笔记本电脑价格 红米手机价格