开篇上脚本
脚本:
#!/bin/bash
###SCRIPT_NAME:weixin###
###send message from weixin for zabbix monitor###
###yangguang###
###V1-2016-06-12###
CropID='wx9a5706b19f1112f0'
Secret='jWPdGauAGusDWkETib9PEwnDacTQnIe-w-FhtHhSUD3rmsQ_ro87x8un8jbOAVrS'
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=2 # 部门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
1.创建媒体类型
名称自定义
脚本名称:这需要和服务器中的脚本名称一样。否则会在推送时候找不到脚本文件错误。
2.创建动作
主要是动作和操作
动作:服务器发生问题以及恢复后,通过脚本发送给终端的相关信息。
具体如下:
名称:告警
默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
默认信息:告警主机:{HOSTNAME1} {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
恢复信息
恢复主旨:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复信息:告警主机:{HOSTNAME1} {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
操作:发送具体人和发送方式等定义
3.发送的用户报警属性定义
4.服务器端配置。
打开zabbix_server.conf 找到如下几行
### Option: AlertScriptsPath
# Full path to location of custom alert scripts.
# Default depends on compilation options.
#
# Mandatory: no
# Default:
AlertScriptsPath=
/usr/local/zabbix/alertscripts ##自定义脚本的位置。
脚本内容为文章开头部分。
注意事项:复制粘贴后要修改下格式
:set fileformait=unix
5.企业公众账号设置:
a)注意不是微信订阅号是企业号。
b)需要提供如下信息给脚本获取
i.组织部门ID
ii.应用ID
iii.CropID
iv.Secret
v.成员账号
6.企业号设置(比较傻瓜)
新建组织架构添加微信报警组并新建成员
新建应用(关键)
新建管理组及权限
以上三张图片覆盖了我们需要的信息和操作。
注意企业号、企业号、企业号。重要事说三遍!
7.测试
每天三分钟,知识效率高。轻文章,更高效。
欢迎关注同名微信公众账号DevOps24h。