运维监控

Prometheus 的演进之告警配置引擎

2020-03-16  本文已影响0人  啊哟喂_

一、背景介绍

我们知道 Zabbix 在监控界占有不可撼动的地位,功能强大。但是对容器监控显得力不从心。为解决监控容器的问题,思必驰引入了 Prometheus 技术.并和 OpsMind 共同研发了一整套监控平台和分级告警配置引擎系统。

思必驰的监控系统的演进经过如下几个阶段:

二、平台建设目标

建设新一代监控平台我们需要什么?

多样化的自主接入

接入的数据将不再只局限于基础监测,网络监测,而且从不同的角度来洞悉整个系统,那么你就需要方便可靠的监测数据采集系统。

指标的灵活配置

监测指标海量以后随之带来的则是配置问题,不同的监测指标有不同的度量值,不再是以前简单的逻辑运算,会变得相当复杂。

监测指标的可视化

把海量的监测指标有机的结合起来,针对某个系统来进行集中的 Dashboard 展示,或者是详尽的可视化的问题排查。

告警的配置和分级通知

为了避免告警风暴,让最有价值的告警信息出现并通知到相关的部门和小组,需要对不同告警对象进行分级管理。

平台的扩展能力

原生的 Prometheus 并没有一个很好的企业级解决方案,并且不支持集群化,需要管理和优化 Prometheus 进行企业平台的开发

通过引入 Prometheus 的企业级解决方案,辅以二次开发,以上问题得以跨越。

image image image

三、建设过程

今天我们主要讲一下告警配置引擎。

告警的通知形式

绝大部分公司,可能都没有考虑系统监控告警策略,一旦发生异常,就发邮件/短信通知系统负责人,这样可能导致这样一些问题:

告警的通知渠道

目前传统的四种文字告警的方式,其成本,到达率,实时性都不一样:

短信:成本高,实时性好,到达率高

邮件:成本低,实时性差,到达率高

钉钉/微信:成本低,实时性中,到达率中

为了解决上述问题,针对不同的服务,在不同的时间段,不同的员工层级,应该设定不同的告警策略,我们采用了 OpsMind 设计的告警配置引擎。他主要解决以下几个问题:

  1. 告警频率收敛策略:对同一个服务或者接口,应该在固定的时间内,只发送有限的告警,常见的方式是,按照1分钟1次限制告警次数,一来降低研发的紧张感与压力感,二来节省计算成本。
  2. 不同时段区分告警方式策略:工作日工作时段在公司时,通过邮件/钉钉/微信发送告警能更加节省成本;半夜或者周末发生故障时,通过邮件发送告警能保证实时性;另外可以通过时间段的设置屏蔽部分服务自动重启时所带来的误告警。
  3. 逐层上报告警策略:每个模块都应该有负责人,原则上告警会发送给模块的负责人,但如果告警连续一小时未恢复正常,告警会自动发送给系统负责人的直属 Leader,如果告警连续一个小时未恢复正常,告警会自动发送给系统负责人的二级 Leader。
  4. 黑白跳动策略:当系统由正常变为异常,异常恢复正常,出现正反的变化时,都应该发出告警。
  5. 告警分级策略:针对不同的告警对象设置不同的触发阈值,并推送对应负责人。实现一个指标项的告警规则在一个策略里完成配置。
  6. 筛查告警策略:通过存储引擎层面的扫描,筛查已经失效的告警策略,并通知负责人,做到重要告警不漏报。

四、总结

上一篇 下一篇

猜你喜欢

热点阅读