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

 

 

 

企业微信查看

 

posted @ 2019-05-18 09:33  #赵程#  阅读(3454)  评论(2编辑  收藏  举报