如今势态:
报警的方式可谓是八仙过海各显神通,如电话报警,短信报警,邮件报警,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
选择企业应用
选择创建应用
自定义填
创建应用后退出,点击刚才创建的应用进入
记录下这两个值:AgentId、Secret
然后选择企业
记录值:CorpId
可以使用企业微信的API接口测试一下
http://work.weixin.qq.com/api/devtools/devtool.php
返回值如下即为OK,可以写脚本引用
若返回错误代码请参考
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
选择创建用户
添加报警媒介
权限可以看情况分配,我这自己用可以给大一点
选择报警媒介类型
创建媒体类型 别忘点“更新”
选择配置-动作
创建动作
默认接收人:
故障:{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}
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_server的agent关闭看是否报警,然后再启动看是否有恢复通知