码迷,mamicode.com
首页 > 微信 > 详细

zabbix通过微信告警

时间:2016-07-29 19:22:31      阅读:374      评论:0      收藏:0      [点我收藏+]

标签:zabbix   微信告警   

zabbix version:3.0.3


先申请一个微信企业号:https://qy.weixin.qq.com

申请步骤略

技术分享


新增成员,添加成员后,会生成一个二维码,扫描关注

技术分享


创建应用(消息型应用),并给部门设置管理员(设置---权限管理--新建管理组):

技术分享技术分享

要确认管理员能读取通讯录,可以使用应用发送消息

注意:这时需要管理员的CorpID和Secret


我们要准备这些东西:

  • 一个微信企业号

  • 企业号已经被部门成员关注

  • 企业号里有一个可以发消息的应用

  • 一个授权管理员,可以使用该应用给成员发消息


我们要取到这些信息:

  • 成员账号

  • 组织部门ID

  • 应用ID

  • CropID

  • Secret


调用微信接口:

调用微信接口需要一个调用接口的凭证:access_token

通过 :CropID 、Secret才能获取到access_token,但是获取到的token有效期为两分钟

http://qydev.weixin.qq.com/debug

技术分享

Shell脚本

curl -s -G  url       获取 AccessToken

curl --data  url     传送凭证调用企业号接口

zabbix会传递三个参数给脚本,$1是消息接收账号,$2报警标题,$3报警内容


把脚本放到zabbix告警脚本目录下:

[root@localhost etc]# grep -i ‘^AlertScriptsPath‘ zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
[root@CentOS etc]# cd /usr/local/zabbix/share/zabbix/alertscripts
[root@CentOS alertscripts]# chmod 755 weixin.sh
[root@CentOS alertscripts]# chown zabbix:zabbix weixin.sh


登录zabbix webGUI:管理--报警媒介类型--创建媒介类型

技术分享

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

这三个参数在zabbix3.0上必须加上,否则无法发送消息


管理--用户--admin--报警媒介--添加:

技术分享


创建Trigger和Action(略),发送选择微信

技术分享

然后触发Action,然后调用微信发送消息:

技术分享


默认信息:

【恢复】 http请求返回值正确

告警主机:{HOST.NAME}

主机IP:  {HOST.IP}

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

告警等级:{TRIGGER.SEVERITY} 

告警信息:{TRIGGER.NAME}

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

事件ID:  {EVENT.ID}

触发器URL: {TRIGGER.URL}

Item values:

1. {ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}

2. {ITEM.NAME2} ({HOST.NAME2}:{ITEM.KEY2}): {ITEM.VALUE2}

3. {ITEM.NAME3} ({HOST.NAME3}:{ITEM.KEY3}): {ITEM.VALUE3}


微信脚本:

#!/bin/bash
###SCRIPT_NAME:weixin.sh###
###send message from weixin for zabbix monitor###
###wuhf###
###V1-2015-08-25###
CropID=‘wx6df0114cc6117cf0‘
Secret=‘uLmErUwbzGqfWkG-pyILzo3h4p3teJZdQeMD4MITN6LoBl3ORUVpPnd9Q174mXP7‘
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret" 
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=1                        企业号中的应用id
        local UserID=$1                          部门成员id,zabbix中定义的微信接收者
        local PartyID=3                          部门id,定义了范围,组内成员都可接收到消息
        local Msg=$(echo "$@" | cut -d" " -f3-)  过滤出zabbix中传递的第三个参数
        printf ‘{\n‘
        printf ‘\t"touser": "‘"$User"\"",\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 $1 $2 $3)" $PURL



本文出自 “鹏城-酱油瓶” 博客,谢绝转载!

zabbix通过微信告警

标签:zabbix   微信告警   

原文地址:http://yfshare.blog.51cto.com/8611708/1831785

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!