告警OnCall事件中心建设方法白皮书
题,发出几万条告警都是正常的。 第三个原因是渠道错配。一些不重要的告警也使用打扰性很高的渠道发出,用户可能会觉得单一渠道不可 靠,想用多个渠道同时发送的方式来保障告警触达率,这也属于告警规则配置不合理的范畴。 第四个原因是预期内的维护动作导致的。比如程序升级变更,如果进程重启时间过长,可能会导致关联的 服务告警,或者某个机器重启,忘记提前屏蔽了,也会产生一堆关联告警。 这种产品,一定程度上是可以解决一些告警过多的问题,但如果能从告警规 则的源头做好优化,自然是事半功倍。很多公司的告警规则配置没有原则可循,每次故障复盘先看告警是 否漏报,一线工程师为了不背锅,自然是尽量多地提高告警覆盖面,但这么做的后果,就是告警过多,无 效告警占多数,长此以往,工程师疲惫不堪。 那么告警规则的配置应该遵照一个什么原则呢?虽然每个公司业务不同,总有一些通用的原则可循吧?的 确如此,这里我分享一下我个人的做法,希望对你有所启发。 查哪些方面,按照一个什么方式执行动 作,应该有一个手册参考。如果告警发生之后没有后续动作,那这个告警的意义就不大了。在 Nightingale 的告警规则配置页面,可以看到一个专门的 Runbook 配置,Grafana 的告警配置页面, 也有一个 Runbook 的选项,就能看出他们对它的重视程度。 这个原则看起来是不是很合理?但是真要落地的时候,又会发现紧急需要处理的告警事件通常容易对应0 码力 | 23 页 | 1.75 MB | 1 年前3PromQL 从入门到精通
的结果: 如果我们认为内存可用率小于60就是有问题的,想找出所有有问题的数据,只要在 promql 中 拼上 < 60 即可: 1 如上的方法,其实就是告警引擎的核心逻辑。告警规则里会要求用户配置promql以及执行频 率,告警引擎就会根据执行频率周期性执行,每次执行的时候就是拿着promql去查询,promql 中带有阈值,即上例中的 <60,所以如果所有机器的内存可用率都很高,比如维持在80~90, 警事件。 当然,有的时候,偶尔一次触发了阈值我们认为不算啥事,希望连续触发多次才告警,此时就要 使用 prometheus alerting rule 的 for 关键字,或者夜莺中的持续时长的配置,表示在一个时 间范围内多次执行,每次都触发了才告警。 像上例触发了3个告警事件,如果后面继续周期性使用promql查询查不到数据了,就说明最新 的mem_available_percent数据不再小于60,即告警恢复。 l就返回空,即 使已经有99台机器挂了,还剩最后一台机器在上报监控数据,这个promql也仍然返回空。 所以实际上,如果我们想要对100台机器使用absent_over_time做失联告警,就要配置100条告 警规则,每个规则里的promql都要把机器标识信息写上。 ? 对于拉模式的监控系统,比如 Prometheus,很容易判断机器失联,因为 pull 不到数据 了,就知道 target0 码力 | 16 页 | 2.77 MB | 1 年前31.6 利用夜莺扩展能力打造全方位监控系统
监控数据采集,all in one的agentd Agentd 进程存 活 端口监 控 插件脚 本 日志监 控 网络设 备 中间件 类 数据库 类 • 支持在web上配置采集策略,不同的采集可以指定 不同的探针机器、目标机器,便于管理和知识传 承 • 独创在端上流式读取日志,根据正则提取指标的 机制,轻量易用,无业务侵入性 • 内置集成了多种数据库中间件的采集以及网络设0 码力 | 40 页 | 3.85 MB | 1 年前3
共 3 条
- 1