1、微信企业号注册
企业号注册:https://qy.weixin.qq.com/
选择企业号.
期间会让你输入你的邮箱和绑定你的微信
注册成功后,登陆 – 应用中心–新建应用–消息型应用
我们要在这里创建应用,因为要通过应用发送消息给部门成员
注意:这里要记住一个值,应用ID
设置—>功能设置—->权限管理—->新建管理组
管理员必须事先已经关注了企业号,并且已经设置好邮箱地址
新建用户组,并把Corpid 和Secret记下来
确定管理员可以读取通讯录,可以使用应用发消息。
我们要准备这些东西:
我们要取到这些信息:
打开http://qydev.weixin.qq.com/debug
Shell脚本原理
使用:
curl -s -G url
获取 AccessToken
使用:
curl –data url
传送凭证调用企业号接口
zabbix会传递三个参数给脚本,$1是消息接收账号,$2报警标题,$3报警内容
[root@zabbix-server ~]# find / -name “alertscripts” -type d ##查找下alertscripts路径
/usr/lib/zabbix/alertscripts
[root@zabbix-server ~]# vi /etc/zabbix/zabbix_server.conf ##在 zabbix_server.conf 添加alertscripts脚本路径
AlertScriptsPath=/usr/lib/zabbix/alertscripts
[root@zabbix-server ~]# vi /usr/lib/zabbix/alertscripts/weixin.sh
#!/bin/bash
#########################################################################
#########################################################################
# Functions: send messages to wechat app
# set variables
CropID=’wx393fc846aedxxxxx‘
Secret=’6OtQyX_yRRXYS1Ivlv7xSM9mlr7Hu06JU4FAQ23iynIf_8j2y3un7aWglLExxxxx‘
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=2 #企业号中的应用id
local UserID=”kai” #部门成员id,zabbix中定义的微信接收者
local PartyID=2 #部门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=消息类型及数据格式
授权
[root@zabbix-server]# chown zabbix:zabbix /usr/lib/zabbix/alertscripts/weixin.sh
[root@zabbix-server]# chmod +x /usr/lib/zabbix/alertscripts/weixin.sh
#测试:
[root@zabbix-server alertscripts]# bash weixin.sh test hello.world!
{“errcode”:0,”errmsg”:”ok”,”invaliduser”:”all user invalid”}
微信成功收到消息
#修改zabbix_server.conf文件,添加以下(脚本执行目录)
[root@zabbix-server]# vi /etc/zabbix/zabbix-server.conf
##weixin##
AlertScriptsPath=/usr/lib/zabbix/alertscripts
Zabbix-web前端设置
管理–报警媒介类型–创建媒体类型
管理—用户
配置—动作—创建动作
名称Report problems to test-msg
告警主题:
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}
恢复主题:
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}
你也可以改成中文
Default subject:{TRIGGER.STATUS}: {TRIGGER.NAME}
报警主机:{HOSTNAME}
报警 ip:{HOST.IP}
报警时间:{EVENT.DATE}:{EVENT.TIME}
触发器名称: {TRIGGER.NAME}
触发器状态: {TRIGGER.STATUS}
触发器等级: {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}
最后重启下
检验:
你在监控的主机下面
新建个比较敏感的触发器,然后就坐等~~
收到了