03.1Prometheus简介

分类: Prometheus安装与配置

Prometheus 简介

欢迎来到第 3 章的学习。在前面的章节中,我们了解了可观察性的基础和 OpenTelemetry 的架构。现在我们要深入学习 Prometheus,这是 Grafana Stack 的核心组件之一。

本节将学习:Prometheus 是什么?Pull vs Push 模式的区别?以及 Prometheus 的适用场景。

Prometheus 是什么

Prometheus 是什么? Prometheus 是一个开源的监控和告警系统,专门用于收集和存储时间序列数据。

Prometheus 的核心特点是什么?

第一个特点:开源。 Prometheus 是完全开源的,CNCF 毕业项目。它是在 2018 年成为 CNCF 毕业项目的,和 Kubernetes 一样,都是 CNCF 的毕业项目。

第二个特点:时间序列数据库。 Prometheus 专门用于存储时间序列数据。它不是为了存储普通数据,而是专门为了存储时间序列数据而设计的。

第三个特点:Pull 模式。 Prometheus 主动拉取指标数据。它不是等待应用推送数据,而是主动去拉取数据。这个我们等一下会详细讲。

第四个特点:多维度数据模型。 Prometheus 基于 Label 的多维度数据模型。可以通过 Label 来区分和分组指标,非常灵活。

第五个特点:强大的查询语言。 Prometheus 提供了 PromQL 查询语言。可以用 PromQL 来查询和分析数据,非常强大。

Prometheus 的地位是什么? Prometheus 是行业标准的时间序列数据库。它与 Kubernetes 深度集成,广泛被企业采用。

这就是 Prometheus,一个强大的监控和告警系统。

Pull vs Push 模式的区别

Pull 模式是什么? Prometheus 使用 Pull 模式。

Pull 模式的工作方式:Prometheus 主动拉取指标,应用暴露指标端点(比如

/metrics
),Prometheus 定期抓取。

Pull 模式的优点是什么?

  • 配置简单。只需要配置 Prometheus 抓取目标,应用不需要知道 Prometheus 的地址。
  • 应用无需知道监控系统。应用只需要暴露指标端点,不需要关心谁在监控它。
  • 支持服务发现。Prometheus 可以自动发现服务,不需要手动配置。
  • 易于扩展。可以轻松添加新的监控目标,不需要修改应用代码。

Push 模式是什么? 传统监控使用 Push 模式。

Push 模式的工作方式:应用主动推送指标,应用需要知道监控系统地址,应用负责数据传输。

Push 模式的缺点是什么?

  • 应用耦合监控系统。应用需要知道监控系统的地址,耦合度高。
  • 配置复杂。需要在应用中配置监控系统地址,配置复杂。
  • 难以扩展。添加新的监控目标需要修改应用代码。
  • 单点故障风险。如果监控系统不可用,应用可能受到影响。

这就是 Pull vs Push 模式的区别。Prometheus 使用 Pull 模式,这是它的一大优势。

Prometheus 的适用场景

Prometheus 适用于哪些场景呢?

第一个场景:系统监控。 CPU、内存、磁盘、网络使用率,操作系统指标,容器和 Kubernetes 监控。Prometheus 非常适合监控系统资源使用情况。

第二个场景:应用监控。 应用程序指标、业务指标、性能指标。可以用 Prometheus 监控应用的运行状态和业务指标。

第三个场景:服务监控。 HTTP 请求指标、RPC 调用指标、数据库查询指标。可以用 Prometheus 监控服务的健康状态和性能指标。

第四个场景:告警。 基于规则的告警、通知系统集成、告警管理。Prometheus 不仅可以监控,还可以告警。

场景示例:Prometheus 可以用于系统监控、应用监控、服务监控、告警等多种场景。

这就是 Prometheus 的适用场景。它非常通用,可以用于各种监控场景。

本节小结

在本节中,我们学习了 Prometheus 的基础知识:

第一个是 Prometheus 是什么。 Prometheus 是开源的监控和告警系统,CNCF 毕业项目,专门用于收集和存储时间序列数据。

第二个是 Pull vs Push 模式。 Prometheus 使用 Pull 模式,主动拉取指标,配置简单,易于扩展。

第三个是适用场景。 Prometheus 适用于系统监控、应用监控、服务监控、告警等多种场景。

这就是 Prometheus 的基础知识。理解这些基础知识,是掌握 Prometheus 的关键。

在下一节,我们将学习如何安装 Prometheus。我们会在 Windows、macOS、Linux 上分别演示安装过程。