增强您的监控堆栈:将 InfluxDB 添加到 Prometheus 节点
作者:Jessica Wachtel / 开发者
2024年6月20日
导航到
Prometheus 是无数开发者和组织的首选可观测性工具,原因良好。这个流行的开源工具不需要任何前期成本,也不会导致供应商锁定。Prometheus 的快速入门使其非常适合希望快速启动云监控之旅的组织。
然而,将 Prometheus 作为可观测性指标的单一来源存在一些缺点。Prometheus 是为了用作单一节点而构建的。它面临的问题与所有单一节点工具相关的挑战相似。尽管这并不是完全避免使用该软件的理由,但它使得 Prometheus 不适合作为关键任务应用唯一的可观测性平台。但有一个解决方案。在现有的堆栈中添加 InfluxDB 不会改变 Prometheus 的工作流程,并添加企业级功能,如数据持久性和高可用性。本文的其余部分将重点介绍 Prometheus 的功能以及它如何与 InfluxDB 一起工作。
Prometheus:基础知识
Prometheus 是一种基于指标的监控系统,可以提供对连接的系统和服务洞察。它收集和存储指标作为时间序列数据,即任何带有时标的存储数据。这使用户能够更好地理解特定时间点的指标。Prometheus 提供了一系列库和服务器组件的工具链,允许用户公开、收集和记录指标。
Prometheus 与几乎所有技术堆栈原生兼容。它通过暴露 HTTP 端点以拉取指标来收集指标,该端点提供 Prometheus 可以理解的基于文本的指标传输格式。基于文本的指标格式促进了无缝的指标收集,即使开发人员无法使用专门的客户端库来跟踪和公开指标也是如此。一旦数据进入 Prometheus,开发人员就可以深入了解他们的系统。Prometheus 在实时监控和短期存储方面表现出色。
当涉及到警报和仪表板时,开源仪表板和警报软件 Grafana 是 Prometheus 的首选伴侣。Grafana 帮助技术人员和非技术人员发现数据洞察。Grafana 提供了易于理解的、开箱即用的仪表板,可以“直接工作”。Grafana 还为希望构建自定义仪表板的开发人员提供了模板。Grafana/Prometheus 连接非常受欢迎,Grafana 的 Prometheus 社区是其最成熟的之一。
Prometheus:挑战
普罗米修斯是一个单节点系统。虽然这本身并没有什么错误,但许多适用于关键任务和企业级系统的功能都缺失了。关键任务应用程序需要高可用性和数据持久性,这是单个节点无法提供的。普罗米修斯没有内置的数据复制机制,这对于数据持久性是必需的。这意味着如果现有的机制或硬盘出现故障,用户将遇到数据丢失。
由于普罗米修斯无法保证高可用性,它无法保证避免计划外的停机时间,并且偶尔会关闭。这也会导致无法恢复的数据丢失。最后,由于其大小,普罗米修斯无法很好地扩展或提供任何长期存储。但是,有一种简单的方法可以保护应用程序免受所有这些问题的侵害。在普罗米修斯旁边添加一个专门构建的时间序列数据库InfluxDB,并将单节点转变为高可用性、关键任务和企业级可观察性系统。
InfluxDB:解决方案
InfluxDB 是一个耐用、可扩展的企业级时间序列数据库,与 普罗米修斯 协同工作。开发人员可以在不改变普罗米修斯操作方式的情况下向现有的普罗米修斯堆栈添加 InfluxDB,并体验使用普罗米修斯进行关键任务应用程序的所有好处。开箱即用的 InfluxDB 提供高可用性和数据持久性。InfluxDB 与任何工作负载一起扩展,并且没有强制保留策略。InfluxDB 以高度压缩的 Apache Parquet 文件形式持久化数据,并在低成本对象存储中无限期存储数据。
InfluxDB 非常适合与普罗米修斯协同工作,因为它是有很少几个能够支持普罗米修斯数据的数据库之一。普罗米修斯数据以其高基数而闻名。InfluxDB 3.0 支持无界基数,这意味着组织可以以任何他们偏好的分辨率收集数据。通过将数据发送到 InfluxDB 来获取基于普罗米修斯的洞察。由于 Parquet 是一个通用标准,InfluxDB 是普罗米修斯和开放数据生态系统中可用的最先进数据分析工具之间的门户。
InfluxDB 提供自托管、本地、单租户和多租户云产品,所有这些都与普罗米修斯兼容。以下是如何在不更改数据收集工作流程的情况下将 InfluxDB 添加到现有普罗米修斯堆栈的两种选择。
企业级堆栈
从同一来源同时向普罗米修斯和 InfluxDB 写入数据将减轻由单节点架构引起的任何问题。InfluxDB 备份确保高可用性、冗余和可扩展性。双重写入提供安全性,如果普罗米修斯在数据收集期间发生故障,则继续数据收集。如果没有备份,任何故障都会导致永久数据丢失。
这种架构允许开发人员从 InfluxDB 查询仪表板或继续使用普罗米修斯作为他们指标的主要来源。InfluxDB 与 Grafana 兼容,因此对查询两个数据库感兴趣的组织可以在一个窗口中完成。如果开发人员正在使用 InfluxDB 作为备份并在普罗米修斯突然不可用的情况下需要查看数据,他们可以在需要时打开 Grafana 连接。
备份普罗米修斯指标
InfluxDB 的 Telegraf 插件 提供了将普罗米修斯数据简单导入 InfluxDB 的功能。
直接从普罗米修斯向 InfluxDB 发送数据比仅使用普罗米修斯提供了更多的数据持久性和长期存储。然而,如果普罗米修斯突然不可用,它并不能防止数据丢失。开发人员还可以在企业级堆栈构建中向 InfluxDB 发送普罗米修斯指标。
普罗米修斯和 InfluxDB:更佳的组合
将 InfluxDB 添加到 Prometheus 堆栈中,可以在不改变组织对数据视图和分析方式的前提下,使 Prometheus 的不足之处得到完善。有许多资源可以帮助您充分利用 InfluxDB 和 Prometheus。了解更多关于 InfluxDB 的信息,请点击这里。了解更多关于 InfluxDB 的 Prometheus Telegraf 插件,请点击这里。