起因:公司线上zabbix只有简单的部署了邮件报警功能;
需求: 希望zabbix在线上实现短信报警及升级报警功能;
经过:
申请了5台线下内网测试服务器进行zabbix报警测试;
搭建过程略过,网上文档很多。(本人测试的版本为:官方2.1.0版)
报警
公司现在线上用的一些nagios报警,用的一些脚本及接口,脚本拿过来,直接修改了,测试了下,可以报警。
--一直到这里都很顺利。(ok,这些东西就不便于贴出来了,关于短信报警的可以借用飞信等文档)
问题:
①
因为是第一次用zabbix,第一感觉是中文界面挺好。于是直接上手去测试下报警功能。
谁知道一团糟,刚开始完全是没有思路在那乱添加(当时一团糟的操作现在肯定已经记不起来了)。
于是稍微思考了下,熟悉了下环境。然后算是配置成功了。(当时event与action之间的关系还是想不通,但是配置流程算是下来了。)
②
然后刚开始报警动作一直触发不了,很是郁闷呐。百思不得其解,去查日志,里面空的,屁都没有。问人吧,这边情况糟糕说不清楚,那边稀里糊涂的也不知道咋回事,瞎指挥。闲着没事,一个配置一个配置在那乱点,突然,手机收到了报警信息!当时高兴的,没有留意1分钟来了2条!对。2条,我当时定义trigger的时候确定是定义了1次。手机一直在响,一毛一条,虽然是公司的钱。。。但是手机的电是我的啊。于是跑到系统里面。改了下配置文件,只把日志打印了出来,把报警的规则给注释掉了。
就是这样,一次2条,不慌不忙。
本来想的是就这样,能报警就行。但是老大的意思是短信是要钱的,不能一次2条这么浪费吧。也是,于是想了下,是不是第一次乱搞的时候启动了1个守护进程在那呆着,然后第二次又是1个,然后就这样2条这么发。于是重启了下服务端server,然后no,还是2条这么在发。纠结。然后继续开始找配置。终于在动作里面发现了端倪:原来动作里面有一个默认的动作,然后不知道是自己之前动了他还是他自己改变的,然后就一直在那发,于是停止掉这个action。终于短信发1条了。笑。。
③
这个时候需求又出现了,短信是1分钟一条在那彪着的,这么发着,公司不心疼我还心烦的。这次头真的大了。找不到原因嘛。真悔恨搞zabbix之前没有好好去看会文档。。不管怎么搞一直都是1分/1条。
没有其他的办法了,找不到根源。于是出现了下面的插曲,确定找了好多人询问了下,所以整理了一下问了好多人。
自己琢磨分析了好久,找人探讨他的具体流程,囧+汗,N多用zabbix的亲都没细究这个问题。。好吧。问题还得自己解决。
于是我把原先的触发器啊,动作神马的全删掉了。重新做一次,记录每一个步骤!
然后。。。擦,竟然成功了!是按照我定义的动作来报警的,但是我之前的想法应该怎么来解释??显然这东西已经没人讨论了。
好吧,还是自己动手吧。于是自己模拟了几种情况来定制方案。
这个就是我测试的几个实验了。其中包括不同的触发器中的函数值,还有action中的问题。最后又在这个基础上测试了分层报警等等功能。
(其中有个小插曲,当我把动作里面的收件人改成admin的时候,短信动作是可以提取的,当我改成junqi或者yanzong用户的时候,发不出来。配置是完全一样的,最后找了下,是配置用户的时候没有给予权限。管理--用户--“user”--许可权。这里可能也跟之前我动作执行不了有一定的联系)
最后的结论是这样的。
一次报警的触发及实现:①满足trigger,然后trigger分为2个岔路,1个为时间event,另一个为动作action。然后报警的时间间隔及分层报警是由action中选项中的参数来定义的!有2个不错的文档分享给大家
分层报警(报警升级):http://www.linuxmr.com/2012/zabbix2_0617/179.htm
trigger中的函数的含义:http://pengyao.org/zabbix-triggers-functions.html
另外要感谢我的几个师兄(马哥教育)及zabbix技术监控群中的几个朋友对我的帮助。
PS:另外还有个问题现在还未解决。就是1分钟2次不同的报警的选项。时间间隔都是1分钟,隐约记得当时是没动过默认动作里面的东西的,,那么他为何还是按照1分钟1次发给我。这点到现在还有点不清楚。
也就是说①实例中,他发了2个邮件。频率都是1分钟,如果我当时动了我自己定义的动作里面的操作,那么为何系统默认的动作也是1分钟给我发一次。报警动作的时间间隔是否跟trigger有关系也就是trigger可以控制报警的频率这样。 如果有知道的童鞋或者大牛可以留言给我这个问题!或者是我当时真的操作错了。