jiabanl 发表于 2019-1-26 12:43:52

open

open-falcon 实现各自独立报警

  先来说说这篇文章要实现什么具体功能。这里只说配置思路,不去详细交大家怎么配置,只要理解各个配置的意义,就能很快配置出来。配置还是很简单的,我也就是1年多一点儿的工作经验,我连着装整个服务和配置分布式用了一个礼拜。所以说,各位大神应该更速度。
  前几天我接到新任务,要用a机房的 open-falcon 的 Portal 去管理配置b机房、c机房等机房的报警规则,但是报警又不能让a机房这边承担,必须要让各个机房各自报各自的警。意思就是从a机房这边登录open-falcon的管理端,可以在portal里配置b机房等其他机房的报警规则,触发报警后,报警邮件是由它们各自发出去的,并不是让a机房这边发送,a机房这边只提供配置规则,存储数据,制作图表,各个机房只负责发送自己的报警邮件。这样配置的原因是为了防止a机房那边judge服务挂了后,影响到其他机房的正常监控报警。只要a机房的mysql数据库不死,其他机房的监控报警都可以正常运行,别的机房监控挂了也不会影响其他机房。
  好吧~实在不知道怎么用简单明了的话来表达,以上这些啰嗦的解释希望看的人能看明白。想了想还是上个图比较好,上了两份一样的图是方便一边读一边看图理解。(黑色分割线左边为slave,右master)。如果想在master方绘图,那么参照亮蓝色的线。http://s4.运维网.com/wyfs02/M01/84/EB/wKiom1eXKBPh7K75AASIzGCPkkc269.png-wh_500x0-wm_3-wmp_4-s_999823426.png
  下面开始介绍思路:
  首先。slave(方便描述,把主的服务端a机房那边叫master,别的机房的叫slave)这边的报警所用到的组件分别是heartbeat server(hbs)、judge、alarm、邮件组件(我用的是mail-provider+sender)。那么是怎么用这几个组件去关联master那边来实现slave自己独立判断故障并且发送邮件呢?
  它们的数据是这样传输的:

  salve端的 agent将采集到的数据发送给slave这边的transfer,transfer将收到的数据给slave方的judge一份(slave方的judge用来判断报警用的),同时也将数据发送给master方的graph一份(这样就可以将曲线图在master端绘制了)。 这里我们只做报警功能,可以忽略发送给master方的graph的数据。salve端的judge在收到数据后,会到salve端的hbs(heartbeat server)内拿报警规则去和收到的transfer发来的数据判断对比是否触发报警,如果报警成立,那么salve端的judge会将报警数据发到salve端的的redis内,salve端的alarm发现salve端的redis内有数据,便会将信息推送给salve端的sender发出报警邮件。
  那么问题来了,salve端的hbs(heartbeat server)内的报警规则哪里来?
  我们的办法是,将salve端的hbs(heartbeat server)的hosts表数据配置为从master端同步过来,具体配置方法,在官方文档内有说明。这样,我们就可以实现在master端的portal内添加报警规则,添加规则后portal的数据写在musql的portal表内。我们开启3306的防火墙规则,这样我们就可以从slave端来拉取master端的报警规则了。
  最后说一句,open-falcon毕竟是中国人研发的,配置很容易理解,明白数据传输过程和工作原理,配置很简单的。不常写博客,不喜欢的希望不要喷。希望需要这样配置的人可以很快配置成功。

http://s4.运维网.com/wyfs02/M01/84/EB/wKiom1eXKBPh7K75AASIzGCPkkc269.png-wh_500x0-wm_3-wmp_4-s_999823426.png



页: [1]
查看完整版本: open