Observability:使用 Elastic Observability 摄取和分析 Prometheus 指标

2023年 10月 11日 60.0k 0

作者:Jenny Morris

在监控和可观察性领域,Prometheus 凭借其强大的数据收集机制、灵活的查询功能以及与其他工具的集成以实现丰富的仪表板和可视化,已成长为云原生环境中监控的事实上的标准。

Prometheus 主要是为短期指标存储而构建的,通常将数据保留在内存或本地磁盘存储中,重点是实时监控和警报而不是历史分析。 虽然它提供了对当前指标值和趋势的宝贵见解,但它可能会带来经济挑战,并且缺乏深入历史分析、长期趋势检测和预测所需的强大功能和能力。 这在具有大量目标或高数据摄取率且指标数据快速积累的大型环境中尤其明显。

许多组织评估其独特需求并探索提高 Prometheus 监控和可观察能力的途径。 一种有效的方法是将 Prometheus 与 Elastic® 集成。 在这篇博文中,我们将展示 Prometheus 与 Elastic 的集成,强调 Elastic 如何以经济高效的方式通过广泛的历史分析、异常检测和预测来提升指标监控。

将 Prometheus 与 Elastic 无缝集成

将云原生应用程序配置为以 Prometheus 格式公开指标的组织可以使用 Prometheus 集成将指标无缝传输到 Elastic。 Elastic 使组织能够结合通过 Elastic 广泛集成收集的所有其他数据来监控其指标。

转到集成并找到 Prometheus 集成。

为了从 Prometheus 服务器收集指标,使用了 Elastic Agent,并通过 Fleet 服务器对 Elastic 代理进行集中管理。

将 Elastic Agent 注册到 Fleet 后,用户可以选择以下方法将 Prometheus 指标引入 Elastic。

1. Prometheus collectors

Prometheus 收集器连接到 Prometheus 服务器并从 Prometheus 导出器提取指标或抓取指标。

2. Prometheus 查询

Prometheus 查询针对 Prometheus Query API 执行特定的 Prometheus 查询。

3. Prometheus 远程写入

Prometheus remote_write 可以从配置了 remote_write 设置的 Prometheus 服务器接收指标。

摄取 Prometheus 指标后,你可以选择在 Metrics Explorer 中以图形方式可视化数据,并根据标签(例如主机、容器等)进一步对其进行细分。

你还可以在 Discover 中查询指标数据,并在详细信息面板中浏览各个文档的字段。

使用 Elastic 的数据分层机制存储历史指标

通过将 Prometheus 指标导出到 Elasticsearch,组织可以延长保留期并获得历史分析指标的能力。 Elastic 根据数据使用频率和不同数据集的性能需求来优化数据存储和访问。 目标是有效管理和存储数据,确保数据在需要时保持可访问性,同时控制存储成本。

获取 Prometheus 指标数据后,你有各种保留选项。 你可以设置数据在热层中驻留的时间,该层使用高 IO 硬件 (SSD),并且价格较高。 或者,你可以将 Prometheus 指标移至热层,采用经济高效的硬件(例如旋转磁盘 (HDD)),同时保持一致且高效的搜索性能。 冷层镜像热层的基础设施以存储主数据,但使用 S3 进行副本存储。 如果出现节点或磁盘故障,Elastic 会自动从 S3 恢复复制索引,确保搜索性能与热层相当,同时降低磁盘成本。

冻结层(frozen tier)允许直接搜索存储在 S3 或对象存储中的数据,无需重新水化。 目的是进一步降低访问频率较低的 Prometheus 指标数据的存储成本。 通过将历史数据移至冻结层,组织可以优化其存储基础设施,确保最新的关键数据保留在更高性能的层中,而访问频率较低的数据则经济地存储在冻结层中。 这样,组织就可以执行历史分析和趋势检测,识别模式并做出明智的决策,并以经济高效的方式保持对监管标准的遵守。

更有效地存储云原生指标的另一种方法是使用 Elastic 时间序列数据流 (TSDS)。 TSDS 可以更有效地存储指标数据,并且比常规数据流节省约 70% 的磁盘空间。 下采样功能将固定时间间隔内的指标汇总为单个汇总指标,从而进一步减少所需的存储空间。 这不仅可以帮助组织减少指标数据的存储费用,还可以简化指标基础设施,使用户更容易通过统一的界面将指标与日志和跟踪关联起来。

高级分析

除了 Metrics Explorer 和 Discover 之外,Elasticsearch® 还提供更高级的分析功能,使组织能够对其 Prometheus 指标数据获得更深入、更有价值的见解。

Prometheus 集成开箱即用,提供默认的概览仪表板。

通过 Metrics Explorer 或 Discover,用户还可以轻松地在 Elastic Lens 中编辑其 Prometheus 指标可视化,或从 Lens 创建新的可视化。

Elastic Lens 使用户能够通过动态可视化直观地探索和可视化数据。 这种用户友好的界面消除了对复杂查询语言的需求,使更广泛的受众可以进行数据分析。 Elasticsearch 还提供其他强大的可视化方法,包括聚合和过滤器,使用户能够对其 Prometheus 指标数据(包括短期和历史数据)执行高级分析。 要了解更多信息,请查看操作方法系列:Kibana。

异常检测和预测

在分析数据时,持续关注屏幕根本不可行,尤其是在处理数百万个 Prometheus 指标的时间序列时。 工程师经常遇到区分正常数据点和异常数据点的挑战,这涉及分析历史数据模式 —— 这个过程可能非常耗时,而且往往超出人类的能力。 因此,迫切需要一种更智能的方法来有效地检测异常。

设置警报似乎是一个显而易见的解决方案,但仅依赖具有静态阈值的基于规则的警报可能会出现问题。 周三上午 9:00 的正常时间是 可能与周日凌晨 2:00 完全不同。 这通常会导致复杂且难以维护的规则或广泛的警报范围,最终导致错过关键问题。 此外,随着你的业务、基础设施、用户和产品的发展,这些固定规则无法跟上,从而导致大量误报,甚至更糟糕的是,重要问题在未被发现的情况下被忽视。 需要一种更智能、更具适应性的方法来确保准确、及时的异常检测。

Elastic 的机器学习异常检测在此类场景中表现出色。 它会自动对 Prometheus 数据的正常行为、学习趋势和识别异常进行建模,从而减少误报并提高平均解决时间 (MTTR)。 Elastic 在此领域拥有超过 13 年的开发经验,已成为值得信赖的行业领导者。

Elastic 机器学习异常检测的关键优势在于其无监督学习方法。 通过持续观察实时数据,它可以了解数据随时间的变化。 这包括掌握每日和每周的模式,使其能够建立预期行为的正常范围。 它在幕后构建了统计模型,可以进行准确的预测,迅速识别任何意外的变化。 如果新兴数据表现出不寻常的趋势,你可以与警报系统无缝集成,将这一宝贵的见解付诸实践。

机器学习能够预测未来,预测未来一天、一周甚至一个月的数据趋势,不仅为工程师提供了报告功能,还为工程师提供了基于历史 Prometheus 数据的模式识别和故障预测能力。 这在维护关键任务工作负载方面发挥着至关重要的作用,为组织提供了主动监控方法。 通过在问题升级之前预见并解决问题,组织可以避免停机、削减成本、优化资源利用率并确保重要应用程序和服务的不间断可用性。

为 Prometheus 数据创建机器学习作业是一项简单的任务,只需几个简单的步骤。 只需在单一指标视图中指定数据索引并设置所需的时间范围即可。 然后,机器学习作业将自动处理历史数据,在幕后构建统计模型。 这些模型将使系统能够有效地预测趋势并识别异常情况,为你的监控需求提供有价值且可操作的见解。

从本质上讲,Elastic 机器学习使我们能够利用数据科学家的能力,并将其有效地应用于监控 Prometheus 指标。 通过无缝检测异常并提前预测潜在问题,Elastic 机器学习弥补了这一差距,使 IT 专业人员能够从高级数据分析中获得的见解中受益。 这种实用且易于使用的异常检测方法使组织能够积极主动地维护其系统的可靠性。

试试看

在 Elastic Cloud 上开始免费试用,并将你的 Prometheus 指标摄入 Elastic。 通过 Elastic Observability 增强 Prometheus 监控。 借助先进的 AI/ML 异常检测和预测功能,领先于潜在问题。 消除数据孤岛、降低成本并提高整体响应效率。

立即使用 Elastic 提升你的监控能力!

本文中描述的任何特性或功能的发布和时间安排均由 Elastic 自行决定。 当前不可用的任何特性或功能可能无法按时交付或根本无法交付。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论