一、企业微信申请与配置
申请地址:https://work.weixin.qq.com/
1、填写企业信息注册企业微信:
2、创建部门并将用户移动到创建的部门并记录部门ID
3、创建配置微信应用
4、保存企业ID
二、配置Zabbix服务器
1、查看zabbix_server.conf配置文件中告警脚本存放位置
[root@zabbix ~]# find / -name "alertscripts"
/usr/local/zabbix/share/zabbix/alertscripts
2、配置微信告警API调用脚本,根据第一章节的参数进行填写
cd /usr/local/zabbix/share/zabbix/alertscripts
vim weixin.sh
#!/bin/bash
CropID='*****************' #填写企业ID
Secret='*****************************' #填写应用的Secret ID
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
#Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $4}')
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $10}')
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
function body() {
local int AppID=1000002 #填写创建的应用ID
local UserID=$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": "'" $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
3、配置脚本权限
chown zabbix:zabbix weixin.sh
chmod 755 weixin.sh
4、配置告警媒介
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
5、创建告警用户、添加报警媒介、权限
6、创建动作(触发器、操作动作、恢复动作)
标题内容:
{HOST.NAME}产生告警!
消息内容:
告警服务器组: {TRIGGER.HOSTGROUP.NAME}
告警服务器: {HOST.NAME}
服务器IP: {IPADDRESS}
时间: {EVENT.DATE} {EVENT.TIME}
等级: {TRIGGER.SEVERITY}
信息: {TRIGGER.NAME}
详情: {ITEM.NAME}:{ITEM.VALUE}
状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID: {EVENT.ID}
标题内容:
{HOST.NAME}恢复!
消息内容:
恢复服务器组: {TRIGGER.HOSTGROUP.NAME}
恢复服务器: {HOST.NAME}
服务器IP: {IPADDRESS}
时间: {EVENT.DATE} {EVENT.TIME}
等级: {TRIGGER.SEVERITY}
信息: {TRIGGER.NAME}
详情: {ITEM.NAME}:{ITEM.VALUE}
状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID: {EVENT.ID}
7、触发告警测试
通过重启服务器,灯操作触发告警就可以看到微信发送的信息。
然后可以在动作日志中看到
三、消息发送问题定位
我们在配置过程中可能会出现各种问题,分享两个发送消息的问题排查手法,来帮助定位问题。
1、通过报警媒介测试告警发送
2、通过Shell脚本测试消息发送
执行命令:sh weixin.sh hello hello hello