Zabbix 实现微信(WeChat)告警


1.1 微信企业号注册与使用

企业号注册:https://qy.weixin.qq.com/

1.1.1 申请微信公众号

blob.png

1.1.2 申请时记得选择团队。

blob.png

 

1.2 企业号使用教程

2.1、通讯录添加企业员工

登录新建的企业号,通过提前把企业成员信息添加到组织或者部门,需要填写手机号、微信号或邮箱,通过这样方式让别人扫码关注企业公众号,为了后面企业号推送消息给企业成员。

1.2.1 在组织架构中,新建二级组,并添加相关人员,注意添加人员的账号要记清楚。后期zabbix发送邮件时需要填写用户名

blob.png

1.2.2 新建应用,应用类型选择消息型
blob.png

1.2.3 选择部门

blob.png

1.2.4 权限管理

blob.pngblob.png

1.3 服务端脚本调用原理

1.3.1 设置脚本执行路径,编辑zabbix_server.conf文件,添加一行

AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts/
 [root@zabbix alertscripts]# cat wechat.sh
#!/bin/bash
#########################################################################
# File Name: wechat.sh
# Author: guoxiangfu
# Email: 978299310@qq.com
# Created Time: Mon Jul 10 17:20:49 CST 2017
#########################################################################
# Functions: send messages to wechat app
# set variables
CropID='xxxxxx'
Secret='M3FMhnFh8nTI6SxLAEbbLLZaj-1BpZIyqkJRskeMMUXObGx4mfQsAg7Jw-nUMXe9'
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
#get acccess_token
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $4}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
#
function body() {
local int AppID=10                        #企业号中的应用id
local UserID="touser"                        #部门成员id,zabbix中定义的微信接收者
local PartyID=8                           #部门id,定义了范围,组内成员都可接收到消息
local Msg=$(echo "$@" | cut -d" " -f3-)   #过滤出zabbix传递的第三个参数
printf '{\n'
printf '\t"touser": "'"$UserID"\"",\n"
printf '\t"toparty": "'"$PartyID"\"",\n"
printf '\t"msgtype": "text",\n'
printf '\t"agentid": "'" $AppID "\"",\n"
printf '\t"text": {\n'
printf '\t\t"content": "'"$Msg"\""\n"
printf '\t},\n'
printf '\t"safe":"0"\n'
printf '}\n'
}
/usr/bin/curl --data-ascii "$(body $! $2 $3)" $PURL
http://qydev.weixin.qq.com/wiki/index.php?title=消息类型及数据格式

1.3.1.1  测试:

sh wechat 111 eee “test hello.world!”
{"errcode":0,"errmsg":"ok","invaliduser":"all user invalid"}

1.3.2 python脚本

1.3.2.1  脚本下载

wget https://guoxiangfu.com/wechat

1.3.2.2  修改的地方

注意:需要修改4处:

u  18行、19

u  69行、71 

u  说明下,69行是你的组部门id号,agentid是你应用id号。。。。 记得修改脚本权限,属主

1.3.2.3  可以显示成功

[root@oldboyed-37 alertscripts]# ./wechat guoxiangfu 555 555
{u'invalidparty': u'1000002', u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'}

1.3.3 设置脚本的启动用户为zabbix,并给脚本可执行权限

chown zabbix:zabbix /usr/local/zabbix/share/zabbix/alertscripts/wechat
chmod +x /usr/local/zabbix/share/zabbix/alertscripts/wechat

1.3.4 修改完成重启zabbix_server

/etc/init.d/zabbix_server restart


1.4 Zabbix-web前端设置

1.4.1 设置通知媒介

blob.png

1.4.2 创建用户

blob.png

blob.png

1.4.3 创建触发动作及发送内容

1.4.3.1  告警主题:

Default subject:{TRIGGER.STATUS}: {TRIGGER.NAME}
 
Trigger host:{HOSTNAME}
Trigger ip:{HOST.IP}
Trigger time:{EVENT.DATE}:{EVENT.TIME}
Trigger: {TRIGGER.NAME}
Trigger status: {TRIGGER.STATUS}
Trigger severity: {TRIGGER.SEVERITY}
Trigger URL: {TRIGGER.URL}
 
Item values:
{ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}
{ITEM.NAME2} ({HOST.NAME2}:{ITEM.KEY2}): {ITEM.VALUE2}
 
Original event ID: {EVENT.ID}

1.4.3.2  恢复主题:

Default subject:{TRIGGER.STATUS}: {TRIGGER.NAME}
Trigger host:{HOSTNAME}
Trigger ip:{HOST.IP}
Trigger time:{EVENT.DATE}:{EVENT.TIME}
Trigger: {TRIGGER.NAME}
Trigger status: {TRIGGER.STATUS}
Trigger severity: {TRIGGER.SEVERITY}
Trigger URL: {TRIGGER.URL}
 
Item values:
{ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}
{ITEM.NAME2} ({HOST.NAME2}:{ITEM.KEY2}): {ITEM.VALUE2}
Original event ID: {EVENT.ID}

blob.pngblob.png

设置完成记得新增或更新(add&update)

1.4.4 测试微信告警发送

1.4.4.1  去客户端停到一个服务

[root@oldboyed-37-2 ~]# service mysqld stop
Shutting down MySQL. SUCCESS!

1.4.4.2  主动触发相关trigger告警,

blob.png

1.4.4.3  查看微信发送状态

 

blob.png


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

                                                     


打赏 支付宝打赏 微信打赏

最后编辑于:2017/07/11作者: 富华运维空间

发表评论

动态鼠标蜘蛛网特效