构建报警平台为减轻zabbix负载压力大及智能收敛信息

这两天我和哥们参与了zabbix相关的开发,微微有点心得,给大家分享下 ~

首先分享下哥们的博客,http://www.furion.info/   里面可是很有干货哈~  他现负责公司的zabbix主要开发。

好了,咱们开始吧 ~

为什么要做告警平台? 到底是为什么? zabbx自己不就能发邮件么? 干嘛需要报警平台支持呢 ?

公司zabbix所监控的机器早就过万了,对于他们的报警触发,这边是调用smtplib通过exchange的smtp服务来发邮件,经常遇到3-5s之后才发件成功的情况,试想下zabbix发件那么多,又那么频繁,他的系统资源消耗是很多的。

其实有朋友说了,可以用postfix做扩展mta,这东西在人人网的时候,和公司的邮件大神交流过,得到的结果是,用postfix做第三扩展mta快是快了,但是增加了自己运维的成本,说白了就是没事找事,找si。 然后你给postfix是快了,但是呢,postfix里面的邮件还是会扔给exchange处理的。 所以这也不是我想要的。

把上面的话总结下,一句话,解决zabbix发信的负载问题。

欧了,那咱们就先把这些给理清楚,咱们让速度给提上来,最少不给zabbix一些额外的压力。

原文:http://rfyiamcool.blog.51cto.com/1030776/1408796

软件框架:

接口:

nginx lua/nginx tornado

队列:

redis

mq:

zeromq

数据库:

mongodb (文档型数据库,最适合做这个干练的事情)

后端daemon:

python gevent smtplib requests

报警的来源:

zabbix,nagios,各种形式的报警来源

这里先描述下,运转的一个例子,比较简单的流程:

1. 用户发信息

curl -d "sendmode=mail&[email protected]&sendtitle=服务器死掉了&sendcontent=1.1.1.1" http://xiaorui.cc/recpost

2. 我这边收到信息并插入到redis后,会立马给他return一个状态。

3. 后端起一个daemon专门处理队列,并通过zeromq来分发任务,里面用了0mq的rep/req 和pull push这两个方案。

4.  当本地节点或者是分布式的节点收到msgpack的信息后,会解析要发送的信息,发送,并返回状态。

5.  zeromq master端收到状态后,入库。

报警平台难道只有这些么?  当然不,其实报警平台最主要的核心是智能的分析和报警收敛,告警关联。

有很多重复性和有规律的邮件,短信,咱们可以统一发件,而不是每次都发。 因为收件人时常会懒得看邮件,因为太多了,烦了。那咱们有必要做一次统计方案。报警收敛,主要是体现在信息的整合,比如nginx1、nginx2、nginx3...  都开始狂爆502的网关错误,如果对方的接口加了支持调优的参数,我这边会延迟报警,然后把信息整合后再发送。例子是这样的,以后结果就是,每个人收到的短信和邮件都是精华。

原文:http://rfyiamcool.blog.51cto.com/1030776/1408796

再说下告警的关联,比如mongod数据大的时候很吃内存,引起了两个报警触发,一个是mongodb内存大了,还有一个是系统的内存比率大了。这个时候,可以做一些判断。 当然这些规则需要后期整理写入的。 我在后端的逻辑里面预留了这段代码的嵌入,以后可以做成一条条的匹配。

当然报警的智能收敛不是这么好搞的,毕竟他延迟了告警做相关的匹配。但个人认为利还是大于弊端的。

平台后期可以做大量的数据统计。

因为每次告警都是通过该平台接口来发邮件和发短信,我这边根据库里面的信息,做出那个哪台服务器,哪个业务,哪个时间段,哪种报警类型等等的统计。根据这些可以做定期的报表。

下面是我这十几天做的项目demo,现在已经接入了zabbix的接口,等再测试一段时间后,就替换zabbix报警接口 ~

运维平台可以很好的兼容手机端浏览器的样式,可以很好的在手机端舒展 !

通过二维码可直接访问。

这里是给开发和运维人员提供的报警的接口文档,提供了多个接口形式,字段除了必须那三个字段外,其余的可随意定义。

这是发送邮件的历史信息查看,可以通过各种选项配合正则来查询各种信息。

这里是可以清空队列和选择性的删除队列信息。

这是短信的历史记录接口,方便的各种查询。

这是大屏幕监控,现在做的有点粗糙,对于各种报警的级别还没有做细化,这报警平台页面后期可放在公司墙上的大屏幕,实时查看各种动向,对于重要的业务,会有声音的提醒。简单点的有 叮叮的声音,如果你的声音够磁性,可自己录音。 比如,xxx的nginx挂了,你妹的赶紧处理呀。

一个简单的调试页面:

数据的分析以后造成这个样子,这是我以前做的一个报警分析的东西 ~

还没有写完,待续~~~

构建报警平台为减轻zabbix负载压力大及智能收敛信息

时间: 2024-11-03 03:26:00

构建报警平台为减轻zabbix负载压力大及智能收敛信息的相关文章

如果发现服务器负载压力大可以看以下的日志

/var/log/btmp 记录错误的登陆尝试,执行lastb命令或者 last -f /var/log/btmp 查看不成功的登陆尝试./var/log/utmp 登陆和退出记录 由last 命令读取.即 last | less /var/run/utmp 记录当前登陆进系统的各个用户, 由who 命令读取./var/log/secure : linux 系统的安全日志, 记录用户登陆认证情况 原文地址:http://blog.51cto.com/13740508/2115377

zabbix企业应用之自动语音报警平台

我从2013年5月开始研究zabbix,研究的版本是2.0.6,到现在也马上2年了,目前生产版本还是2.0.6. 现在我公司1000+的服务器无论是物理机还是vmware.openstack的云主机.docker容器等等都使用zabbix进行监控. 当前监控方式为:zabbix=>proxy=>client 当前报警方式为:6个等级报警(未分类.消息.警告.一般严重.严重.灾难)全部通过短信或者邮件来通知,严重及其以上使用自动语音报警方式通知. 一.语音报警介绍 1.为什么使用语音报警 之前我

Ganglia与Centreon整合构建智能化监控报警平台

一.智能运维监控报警平台的组成 随着大数据时代的来临,运维工作的难度越来越大,每个运维人员都要面临不计其数的服务器和海量的数据,如何保证众多服务器和业务系统稳定高效地运行并尽量减少死机时间,成为考核运维工作的重要指标,而要实现大规模的运维,必须要有一套行之有效的智能运维监控管理系统,本章就详细介绍下如何构建一套完善的运维监控报警平台. 运维的核心工作可以分为运行监控和故障处理两个方面,对业务系统进行精确.完善的监控,保证能够在第一时间发现故障并迅速通知运维人员处理故障是运维监控系统要实现的基础功

linux监控平台介绍、zabbix监控介绍、安装zabbix

linux监控平台介绍 常见开源监控软件 cacti.nagios.zabbix.smokeping.open-falcon 等等. nagios和zabbix流行度很高. cacti.smokeping 偏向于监控基础的东西. cacti可以监控网络设备,它的图形表现得非常好,非常漂亮. IDC 机房比较喜欢用cacti.smokeping,因为适合监控网络设备. cacti.nagios.zabbix 服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存

Windows平台分布式架构实践 - 负载均衡(下)

概述 我们在上一篇Windows平台分布式架构实践 - 负载均衡中讨论了Windows平台下通过NLB(Network Load Balancer) 来实现网站的负载均衡,并且通过压力测试演示了它的效果,可以说还是非常的理想的.同时我们也收集到了不少的问题,比如说如何在这种分布式的架构下使用Session,NLB中有一台服务器挂掉了会导致对外暴露的地址无法访问,如果实现服务器之间的同步,如果更好的进行热修复等等,还有我们在上一篇中也提到了NLB所提供的功能是非常简单的,为了回答我们前面提到的问题

Linux监控平台介绍、zabbix监控介绍、安装zabbix、忘记Admin密码如何做

19.1 Linux监控平台介绍 cacti.nagios.zabbix.smokeping.open-falcon等等 cacti.smokeping偏向基础监控,成图非常漂亮 cacti.nagios.zabbix服务端监控中心,需要PHP环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图 open-falcon为小米公司开发,开源后受到诸多

Linux监控平台介绍, zabbix监控介绍,安装zabbix,忘记Admin密码如何做

Linux监控平台介绍 常见开源监控软件cacti.nagios.zabbix.smokeping.open-falcon等等 cacti.smokeping偏向于基础监控,成图非常漂亮 cacti.nagios.zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图 open-falcon为小米公司开发,开源后

六十四、Linux监控平台介绍、zabbix监控介绍、安装zabbix、忘记Admin密码如何做

一.Linux监控平台介绍 cacti.nagios.zabbix.smokeping.open-falcon等等 cacti.smokeping偏向于基础监控,成图非常漂亮 cacti.nagios.zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图. open-falcon为小米公司开发,开源后受到诸多大

Linux centosVMware Linux监控平台介绍、zabbix监控介绍、安装zabbix、忘记Admin密码如何做

一.Linux监控平台介绍 cacti.nagios.zabbix.smokeping.open-falcon等等 cacti.smokeping偏向于基础监控,成图非常漂亮 cacti.nagios.zabbix服务端监控中心,需要php环境支持,其中zabbix和cacti都需要mysql作为数据存储,nagios不用存储历史数据,注重服务或者监控项的状态,zabbix会获取服务或者监控项目的数据,会把数据记录到数据库里,从而可以成图 open-falcon为小米公司开发,开源后受到诸多大公