一、系统环境
操作系统:centos6.5
Zabbix版本:3.0.5
事先安装并启动zabbix_server
二、申请微信企业号
2.1申请企业号(步骤省略)
选择类型企业号
主体类型为团队
2.2新建组织机构并添加企业成员
在组织架构中新建一个部门
新增成员并关注企业号
2.3新建消息应用
应用中心添加应用
消息型应用
记住该应用ID号
2.4权限配置
设置 权限管理 新建管理组
添加管理员(企业号创建者无法管理)
记住corpid和Secret
2.5微信接口调用
调用微信接口需要一个调用接口的凭证:access_token
通过CorpID和Secret可以获得access_token
微信企业号接口调试地址: http://qydev.weixin.qq.com/debug
输入CorpID和Secret得到红框内的返回值代表连接成功
三、脚本配置
3.1编写shell脚本
vim /usr/local/zabbix/share/zabbix/alertscripts/weixin.sh
#!/bin/bash
CropID='xxxxxxxxxx'
Secret='xxxxxxxxxx'
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
#get acccess_token
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="zabbix" #部门成员id,zabbix中定义的微信接收者
local PartyID=2 #部门id,定义了范围,组内成员都可接收到消息
local Msg=$(echo "$@" | cut -d" " -f3-) #过滤出zabbix传递的第三个参数
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 $! $2 $3)" $PURL
红色字体按实际情况配置
3.2配置权限
chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/weixin.sh
chmod +x /usr/local/zabbix/share/zabbix/alertscripts/weixin.sh
测试脚本
cd /usr/local/zabbix/share/zabbix/alertscripts/
bash weixin.sh test "微信报警"(微信能收到消息)
3.3脚本调用
vim /usr/local/zabbix/etc/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
四、zabbix_web前段配置
创建媒体类型
用户添加报警媒介
创建触发器动作
告警主题:
{TRIGGER.STATUS}: {TRIGGER.NAME}
\n主机名:{HOSTNAME}
ip地址:{HOST.IP}
触发时间:{EVENT.DATE} {EVENT.TIME}
事件: {TRIGGER.NAME}
状态: {TRIGGER.STATUS}
事件ID: {EVENT.ID}
恢复主题:
\n主机名:{HOSTNAME}
ip地址:{HOST.IP}
触发时间:{EVENT.DATE} {EVENT.TIME}
事件: {TRIGGER.NAME}
状态: {TRIGGER.STATUS}
事件ID: {EVENT.ID}
到这一步就配置完成了,下面进行测试
关闭某台win服务器的agent服务或某个磁盘剩余空间小于20%