配置zabbix通过微信报警企业微信报警

如今势态:

报警的方式可谓是八仙过海各显神通,如电话报警,短信报警,邮件报警,QQ报警,微信报警等等。

电话报警:一般都是使用别的平台的工具,平台给你提供一个接口供你使用,大多数为限量收费款

短信报警:一般是服务器安装串口GSM短信猫(也有其他平台提供这种接口),zabbix可以使用他来发送短信通知给管理员

邮件报警:一般是在server端安装邮件的客户端如sendEmail等,写脚本给zabbix进行调用,触发后发邮件给管理员

Q Q 报警:一般使用Mojo-Webqq的perl模板和cpanm包管理工具,然后登录webQQ.给zabbix进行调用

微信报警:一般就是使用微信企业号进行操作的,也有的是直接用python调用微信接口进行报警

经过辩论决定使用邮件和微信报警两种方式,

电话报警太吵,半夜打电话只为网络抖动,很是头疼呢

短信报警的方式不太在意(一般我的短信里都是会员了,打折了。。根本不看)

工作中最长使用的就是微信了,普及,开源,而且免费!!!

QQ和邮件报警如果有需要的在文章末尾评论下,我再给写,今天先出微信报警

如果你现在没有企业微信的话,可以申请一个微信企业号

微信企业号可能是团队式的不是公司式的,操作可能不太一样,但大体一致

企业号的申请和配置方法可参考:http://blog.51cto.com/wuhf2015/1688614

本文配置步骤:

 https://work.weixin.qq.com/api/doc#10013

第一个要记录的值:部门ID:35

配置zabbix通过微信报警企业微信报警

选择企业应用

配置zabbix通过微信报警企业微信报警

选择创建应用

配置zabbix通过微信报警企业微信报警

自定义填

配置zabbix通过微信报警企业微信报警

创建应用后退出,点击刚才创建的应用进入

配置zabbix通过微信报警企业微信报警

记录下这两个值:AgentId、Secret

 然后选择企业

 配置zabbix通过微信报警企业微信报警

记录值:CorpId

配置zabbix通过微信报警企业微信报警

可以使用企业微信的API接口测试一下

http://work.weixin.qq.com/api/devtools/devtool.php

配置zabbix通过微信报警企业微信报警

返回值如下即为OK,可以写脚本引用

配置zabbix通过微信报警企业微信报警

若返回错误代码请参考

https://work.weixin.qq.com/api/doc

https://work.weixin.qq.com/api/doc#10649

写脚本:

[root@check1 alertscripts]# pwd
/usr/local/zabbix/share/zabbix/alertscripts
[root@check1 alertscripts]# vim wechat.sh
#!/bin/bash
#set -x
#运维工程师 王初一
CorpID="********"                   #我的企业下面的CorpID
Secret="***************"            #创建的应用那有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=1000066   #改为AgentId 在创建的应用那里看
        local UserID=$1             #发送的用户位于$1的字符串
        local PartyID=35            #第一步看的通讯录中的部门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@check1 alertscripts]# grep alertscripts /etc/zabbix/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts

 告警测试:

[root@check1 alertscripts]# bash wechat.sh WangJinLong 告警测试 注意这是一条告警测试信息
{"errcode":0,"errmsg":"ok","invaliduser":""}

配置zabbix通过微信报警企业微信报警

测试没有问题,开始配置zabbix

配置zabbix通过微信报警企业微信报警

选择创建用户

配置zabbix通过微信报警企业微信报警

添加报警媒介

配置zabbix通过微信报警企业微信报警

权限可以看情况分配,我这自己用可以给大一点

配置zabbix通过微信报警企业微信报警

选择报警媒介类型

配置zabbix通过微信报警企业微信报警

创建媒体类型   别忘点“更新”

配置zabbix通过微信报警企业微信报警

选择配置-动作

配置zabbix通过微信报警企业微信报警

创建动作

配置zabbix通过微信报警企业微信报警

默认接收人:

故障:{TRIGGER.STATUS},服务器:{HOSTNAME1}发生:{TRIGGER.NAME}故障!

默认信息:

告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件标识:{EVENT.ID}

配置zabbix通过微信报警企业微信报警

配置zabbix通过微信报警企业微信报警

Recovery operations

默认接收人:

恢复:{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}

配置zabbix通过微信报警企业微信报警

配置zabbix通过微信报警企业微信报警

将zabbix_server的agent关闭看是否报警,然后再启动看是否有恢复通知

配置zabbix通过微信报警企业微信报警

上一篇:java学习2-java的基本数据结构


下一篇:一个依靠STL vector的接口进行申请和回收管理的内存池类( c++ 封装)