加入收藏 | 设为首页 | 会员中心 | 我要投稿 新余站长网 (https://www.0790zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

使用Prometheus时都踩过哪些坑?

发布时间:2021-03-13 13:26:29 所属栏目:动态 来源:互联网
导读:隔中,内存用量有一个瞬时小尖峰,那么这次小尖峰我们是观察不到的; 再比如 QPS、RT、P95、P99 这些值都只能估算,无法和日志系统一样做到 100% 准确,下面也会讲一个相关的坑。 放弃一点准确性得到的是更高的可靠性,这里的可靠性体现为架构简单、数据简单

隔中,内存用量有一个瞬时小尖峰,那么这次小尖峰我们是观察不到的;

再比如 QPS、RT、P95、P99 这些值都只能估算,无法和日志系统一样做到 100% 准确,下面也会讲一个相关的坑。

放弃一点准确性得到的是更高的可靠性,这里的可靠性体现为架构简单、数据简单、运维简单。假如你维护过 ELK 或其它日志架构的话,就会发现相比于指标,日志系统想要稳定地跑下去需要付出几十倍的机器成本与人力成本。既然是权衡,那就没有好或不好,只有适合不适合,我推荐在应用 Prometheus 之初就要先考虑清楚这个问题,并且将这个权衡明确地告诉使用方。

首先做好自监控

不知道你有没有考虑过一个问题,其它系统都用 Prometheus 监控起来了,报警规则也设置好了,那 Prometheus 本身由谁来监控?

答案是”另一个监控系统”,而这个监控系统可以是另一个 Prometheus。按照官方的 quickstart 或 helm 部署的 Prometheus 单实例自己监控自己的,我们当然不能指望一个系统挂掉之后自己发现自己挂了。

因此我强烈建议在上生产环境之前,一定要确保至少有两个独立的 Prometheus 实例互相做交叉监控。交叉监控的配置也很简单,每台 Prometheus 都拉取其余所有 Prometheus 的指标即可。

还有一个点是警报系统(Alertmanager),我们再考虑一下警报系统挂掉的情况:这时候 Prometheus 可以监控到警报系统挂了,但是因为警报挂掉了,所以警报自然就发不出来,这也是应用 Prometheus 之前必须搞定的问题。这个问题可以通过给警报系统做 HA 来应对。除此之外还有一个经典的兜底措施叫做 “Dead man’s switch”: 定义一条永远会触发的告警,不断通知,假如哪天这条通知停了,那么说明报警链路出问题了。

不要使用 NFS 做存储

如题,Prometheus 维护者也在 issue 中表示过不支持 NFS。这点我们有血泪教训(我们曾经有一台 Prometheus 存储文件发生损坏丢失了历史数据)。

尽早干掉维度过高的指标

(编辑:新余站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读