夜莺监控里的数据源挂了如何监控?如何尽快知悉?
SRETALK
2024-09-03 00:00:00
问题起因
夜莺监控支持配置数据源,并对数据源里的数据做告警判定,但是如果数据源本身挂了,如何快速知道呢?在添加数据源的时候是有判断连通性的,添加之后数据源异常应该如何监控呢?
数据源离线告警解决思路
这是典型的数据源离线告警问题,有一些解决思路:
- 夜莺监控直接提供内置产品功能,比如在告警规则里,增加一个“数据源连通性”告警类别,后面有精力的话会安排,目前还没有内置这个功能;
- 使用 Flashduty 这类第三方轻量级告警方案,之前写过一篇文章可以参考:《监控系统的自监控怎么做》
- 使用多个数据源互相监控,比如 A 数据源监控 B 数据源,B 数据源监控 A 数据源
本文重点介绍第三个解法。
数据源互相监控,及时发现数据源离线问题
所谓的 A 数据源监控 B 数据源,不是太准确,准确的架构如下:
上例使用的 agent 是 categraf,categraf 有一个 http_response 采集插件,用于探测 HTTP 地址的存活性,如果对端 HTTP 服务(这里就是 prom)挂了,categraf 会生成 http_response_result_code 的指标,只要监控这个指标就可以知道 prom 的存活性。告警规则的 promql 如下:
http_response_result_code != 0
当然了,你也可以使用 telegraf、blackbox_exporter 等工具,原理都是一样的。
如上,希望对你有帮助。