1:申请企业号:获取CorpID,Secret
2:添加脚本
目录位置:/usr/lib/zabbix/alertscripts/
脚本内容:
#!/bin/bash
#set -x
#运维工程师
CorpID=" ***************** " #我的企业下面的CorpID
Secret=" ********************** " #创建的应用那有Secret
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CorpID&corpsecret=$Secret"
Token=$(/usr/bin/curl -s -G $GURL |awk -F\": '{print $4}'|awk -F\" '{print $2}')
#echo $Token
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Token"
function body(){
local int agentid=1000002 #改为AgentId 在创建的应用那里看
local UserID=$1 #发送的用户位于$1的字符串
local PartyID=2 #第一步看的通讯录中的部门ID
local Msg=$(echo "$@" | cut -d" " -f3-)
printf '{\n'
printf '\t"touser": "'"$UserID"\"",\n"
printf '\t"toparty": "'"$PartyID"\"",\n"
printf '\t"msgtype": "text",\n'
printf '\t"agentid": "'"$agentid"\"",\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
3:在脚本目录下测试
[root@localhost alertscripts]# bash weixin.sh ceshi
返回信息:{“errcode”:0,“errmsg”:“ok”,“invaliduser”:“ceshi”} 测试成功
4:配置zabbix
1)配置管理-用户
添加用户
添加报警媒介
设置权限
2)配置报警媒介类型
脚本参数:{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
3)配置 配置-动作
创建动作
故障发生信息设置
默认接收人:
故障:{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障!
默认信息:
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件标识:{EVENT.ID}
故障恢复信息设置
默认接收人:
恢复:{TRIGGER.STATUS}, 服务器:{HOSTNAME1}:{TRIGGER.NAME}已恢复!
默认信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
5验证是否成功
将zabbix_server的agent关闭看是否报警,然后再启动看是否有恢复通知. 5分钟左右。 微信收到报警,配置成功。