6. 微信报警
1. 我的企业微信中zabbix应用信息¶
# 登录企业微信后台,查看自己的应用信息,我的如下
#名称:zabbix应用
#1. AgentId
1000005
#2. Secret ID
# 手机上查看
#3. 企业ID(corpid)
# 企业微信后台查看
# 企业微信只要这些信息拿到手就可以了
2. 微信报警脚本¶
#1. 进入zabbix脚本目录
cd /usr/lib/zabbix/alertscripts
#2. 编写脚本
vim weixin.sh
# 写入以下内容
#!/bin/bash
CorpID=" " #1 你的企业id
Secret=" " #2. 你的SecretID
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=1000005 #3. 你的agentdid
local UserID="@all" # 发送的用户ID
local PartyID=1 # 部门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. 测试¶
#1.添加权限
chmod +x scripts/weixin.sh
chown -R zabbix:zabbix /usr/local/etc/scripts/
#2. 重启zabbix
kill -9 zabbix_server
zabbix_server
#3. 测试:
root@zabbix:/usr/lib/zabbix/alertscripts# ./weixin.sh test
{"errcode":0,"errmsg":"ok","msgid":"fcLc6UhB2absSaoEDgOVFByTAUSAmwAHO7AIHOz__yPZvB1SKbLDIkzuBshkF_t0SgsjIOFo0UMFDc_2v0dDaA"}r
# 此时微信就会收到信息‘test’
4. 添加微信报警媒介类型¶
# 管理-报警媒介类型-钉钉-克隆
# 输入名称:企业微信zabbix告警
# 类型:脚本
# 脚本名称:weixin.sh
# 脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
# 点击添加
5. 添加报警媒介¶
# user settings-报警媒介-添加
# 类型:企业微信
# 收件人:1 (貌似写啥都可以???)
# 点击添加
# 点击更新

6. 设置动作¶
# 配置-动作-钉钉群小皮蛋告警动作-克隆
# 修改名称:企业微信zabbix告警动作

#1.操作
# 只修改1处:仅送到:企业微信zabbix告警
# 其他不变
默认接收人:故障{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}
#2.恢复操作
# 只修改1处:仅送到:企业微信zabbix告警
# 其他不变
恢复主旨:恢复{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}
7. 触发报警测试¶
最后更新:
2022-02-25 03:53:42