对于运维监控平台建设的几点思考:
-
- 对于分布在不同网络区域的采集点,应进行数据汇聚,做到统一展示、统一告警。在这里采用了联邦集群模式
-
- Exporter 数据暴露存在一定的风险,认证、加密是应该考虑的事项。
-
- Grafana 建设数据展示图表时应符合业务需求,数据展示粒度应由浅至深、由粗到细,既能一目了然的了解所有采集点的大致信息,也能对其某个采集点进行深入了解。
-
- 在建设 Grafana 展示图表的过程中,需考虑对最值得关注的信息进行提取,比如所有的触发告警项。
-
- 在成千上万的采集点情景下,即使 Prometheus 已经对数据进行了压缩,也还是需要耗费大量的资源。因此,对于监控数据存储时间的要求一般不会太长,一两个月即可,既能直观的看到资源消耗趋势,也能尽可能的减少监控资源占用。
-
- 对于告警信息这类非持久化的数据,应考虑持久化,以便我们知道频发的故障点,也有利于我们定时输出运维报告。因此,我在这里引入了Alertsnitch工具将告警信息写入 MySQL 数据库中,再由 Grafana 查询 MySQL 数据库展示。
-
- PushGatewat 作为一个对监控范围的补充,根据我们的应用需求监控那些无法通过 Exporter 采集的数据,比如 Linux 下的进程资源使用情况、定时备份情况等。
-
- 告警信息为最终发送到管理员的信息,应做好过滤、筛选,防止狼来了的教训。在处理告警风暴的时候,可从时间函数、告警消息等待、告警消息分组、告警消息抑制、告警消息静默等方向入手。