zabbix实现企业微信报警
Server 端服务器配置
[root@server ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
LogFile=/usr/local/zabbix/logs/zabbix_server.log
PidFile=/tmp/zabbix_server.pid
DBHost=172.20.10.2
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBSocket=/var/lib/mysql/mysql.sock
Include=/usr/local/zabbix/etc/zabbix_server.conf.d/*.conf
AlertScriptsPath=/usr/local/zabbix/scripts/
[root@server ~]# mkdir /usr/local/zabbix/scripts
[root@server ~]# cd /usr/local/zabbix/scripts/
配置脚本信息
[root@server scripts]# vim weixin.sh
#!/bin/bash
CorpID="ww2845a5a6fbac4c25" #我的企业下面的CorpID
Secret="K4a_Y5KIYLfKVrWEcpohR_PXSQBDdKpnr_tq8KbxEJY" #创建的应用那有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=cloud #第一步看的通讯录中的部门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
[root@server scripts]# chmod +x /usr/local/zabbix/scripts/weixin.sh
[root@server scripts]# chown -R zabbix:zabbix /usr/local/zabbix/scripts/
[root@server scripts]# killall -9 zabbix_server
[root@server scripts]# /usr/local/zabbix/sbin/zabbix_server
web端配置
创建报警媒介
参数格式
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
用户关联报警媒介
企业微信中的名字英文版
创建动作
操作,恢复,及确认操作模版
动作模版
默认时间为60秒发一次邮件
邮件格式如下
默认接受人内容标题: 故障{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}
创建操作
这操作 和 恢复操作 确认操作 都是一样的,这里没有做截图,都要和操作里面的配置一样就可以了自己输一下
确认好的页面
模拟故障vsftpd
[root@agent etc]# systemctl stop vsftpd
企业微信查看