Prometheus 是一个用于容器和微服务的开源监控和警报工具包。 该项目深受许多不同组织的欢迎,无论其规模或行业如何。 该工具包具有高度可定制性,旨在提供丰富的指标,而不会给系统性能带来压力。 根据采用它的组织来看,Prometheus 已成为严重依赖容器和微服务的人们首选的主流开源监控工具。
Prometheus 于 2012 年在 SoundCloud 构思,于 2016 年成为 Cloud Native Computing Foundation (CNCF) 的一部分,2018 年 8 月,CNCF 宣布 Prometheus 是该组织历史上第二个“毕业”的项目。
Prometheus 为现代 DevOps 工作流程提供了一个关键组件:监控云原生应用程序和基础设施,包括另一个流行的 CNCF 项目 Kubernetes。
以下是一些 DevOps 组织如何将 Prometheus 的开源监控转化为运营优势。
信赖 Prometheus
金融服务巨头 Northern Trust 于 2017 年 6 月转向 Prometheus,不是为了应用程序监控,而是为了更好地了解其某些硬件,该公司架构师兼运营商 Alan Strader 表示。 “我们还获得容量和性能报告,以告知我们何时遇到问题,并将其用于预测和硬件增加,”他在 演示文稿中解释说。
虽然 Northern Trust 喜欢 Prometheus 的灵活性和粒度,但 Strader 承认其“相当陡峭的学习曲线”和高昂的前期成本,需要教育团队有关该工具包的知识。 “但我们认为它比商业解决方案便宜得多,因为每月或每年无需支付经常性的硬性费用,”Strader 说。 他说,Northern Trust 使用 Prometheus 来监控其平台上的 750 多个微服务。
对抗警报疲劳
当您的内容交付网络 (CDN) 由遍布全球的 116 个数据中心组成时,您需要密切关注一切,尤其是在您平均每秒处理 500 万个 HTTP 请求时。 Cloudflare 为超过 600 万个网站提供 DNS 和 DDoS 缓解服务。 它需要监控方面的帮助,尤其是在已经开始出现的“警报疲劳”方面,Cloudflare 平台运营团队的 Matt Bostock 说。
Cloudflare 在全球使用 188 台 Prometheus 服务器,以及 4 台顶级 Prometheus 服务器,用于警报关键生产问题、事件响应、事后分析和指标。
Bostock 说,该部署利用了 Prometheus Alertmanager,它可以对 Prometheus 警报进行去重。 “Alertmanager 按 POP 和警报名称对传入的警报进行分组,这有助于我们减少收到的警报噪音,”他解释说。 Cloudflare 还为症状而不是原因设置警报,Bostock 说这将减少整体警报量,并使组织能够更加主动。 “如果您[设置]针对机器或原因的警报,您将会收到大量警报,”他警告说。
使用一个服务来简化一切
在第一部故事片之后,总部位于蒙特利尔的 L'Atelier Animation 的开发人员在获得了一些空闲时间后,开始寻找其现有监控系统的替代方案。 据工作室的 IT 主管 Barthelemy Stevens 称,它拥有的是 Nagios、Graphite 和 InfluxDB 的混合体——“一个有太多移动部件的设置”。 该团队开始为其基础设施寻找新的监控选项,其中包括大约 300 个渲染刀片、150 个工作站和 20 个服务器,几乎所有东西都在基于 Linux 的 CentOS 上运行。
L'Atelier Animation 在确定了四个关键特征后选择了 Prometheus:它的 Node Exporter 可以自定义以从客户端获取任何数据; SNMP 支持消除了对第三方服务的需求; 它的警报系统优于 Nagios; 它拥有 Grafana 支持,Stevens 说。
这次升级让这家动画工作室有机会改变它监控一切的方式,并激发了从 Prometheus 数据派生的新自定义楼层地图的创建。 “使用一个服务来简化一切的设置要简单得多,”Stevens 说。 L'Atelier Animation 还在将软件许可证与 Prometheus 集成。 “这些信息将让艺术家们清楚地了解谁在使用什么以及在哪里,”Stevens 补充道。
推动更好的洞察力
Life360 是一款移动应用程序,用于家庭成员之间的位置、驾驶安全和信息共享,它在生产中管理着大约 20 项服务,主要来自移动客户端的位置请求,这些请求可能会激增至 150 多个实例。
Life360 基础设施工程师 Daniel Ben Yosef 说:“我们主要使用 MySQL、NSQ 和 HAProxy,我们发现所有[以前使用的]监控解决方案都非常片面,需要进行大量定制才能真正协同工作。”
该公司需要一种更好的方法来监控其 MySQL 多主集群和一个包含约 4TB 数据的 12 节点 Cassandra 环。 Prometheus 在初步测试中表现良好。“[概念验证]结果令人难以置信。” Ben Yosef 说。“MySQL 的监控覆盖率非常出色,我们也喜欢 Cassandra 的 JMX 监控,这方面一直非常缺乏。”
在有限地部署 Prometheus 后,Life360 报告在可见性和检测方面取得了很大进展,并设想将其用于其数据中心基础设施的其他部分。“当我们构建新服务时,Prometheus 正在成为我们进行检测的首选,并将帮助我们获得关于我们基础设施的非常有意义的警报和统计信息,”Ben Yosef 补充道。
检查容器
作为一家专注于改善癌症患者生活的数据公司,Cota Healthcare 丰富了医疗记录,以创建研究级数据,并将其与一套分析、可视化和管理工具结合在一起。 凭借其受托的数百万份患者记录,可见性和安全性对其业务至关重要。 随着 Cota 在云中迁移到 Kubernetes,该公司意识到需要监控和保护其容器环境。
Cota 的基础设施副总裁 Ashley Penney 说:“我们还知道我们需要了解一切。” “你不能运行一个你不知道发生了什么的系统——这是行不通的。” 为了获得关于其应用程序性能和行为的更深入信息,Cota 选择利用 Prometheus 指标和 Sysdig,Sysdig 是一种性能和安全监控解决方案,它利用 Prometheus 的自定义指标进行监控、警报和故障排除。
“从基础设施团队的角度来看,很高兴我们可以告诉我们的开发人员,‘使用 Prometheus 发出指标,我们将使用我们的监控工具来获取它们,’”Penney 说。“我们使用 Prometheus 为 Stackdriver 甚至 Google Cloud 生成指标。 并且还有大量的其他 Prometheus exporter 我们可以使用。”
评论已关闭。