好的,阿杰 👍 我来给你写一个 Prometheus 简介,适合入门学习和文档使用。


Prometheus 简介

一、Prometheus 是什么?

Prometheus(普罗米修斯)是一个 开源的系统监控和告警工具,最初由 SoundCloud 开发,现在已经加入 CNCF(Cloud Native Computing Foundation),和 Kubernetes 一样是云原生生态的重要组成部分。

它的特点是:

  • 时序数据库:以时间序列的方式存储监控数据(时间戳 + 指标名 + 标签 + 值)。
  • 强大的查询语言(PromQL):支持实时聚合、过滤和计算监控数据。
  • 多维度数据模型:可以通过标签(labels)为监控指标添加维度,比如 cpu_usage{host="server1", core="0"}
  • 内置告警系统:可以结合 Alertmanager 发送邮件、Slack、微信等告警。
  • 生态完善:和 Kubernetes、Grafana 等无缝集成,成为云原生监控的标准方案。

二、Prometheus 的架构

主要组件:

  1. Prometheus Server
    • 核心组件,负责数据采集、存储和查询。
    • 通过 pull 模型 定期抓取目标数据源的指标。
  2. Exporter
    • 数据采集端,负责把系统/应用的指标转化为 Prometheus 可识别的格式。
    • 常见的有:
      • Node Exporter(采集主机 CPU、内存、磁盘、网络等)
      • MySQL Exporter
      • Blackbox Exporter(探测服务可用性)
  3. Alertmanager
    • 接收 Prometheus 的告警,并负责去重、分组、路由和发送通知。
  4. Grafana(可选)
    • 可视化工具,用来展示 Prometheus 数据。

三、Prometheus 的工作流程

  1. 配置目标(targets):Prometheus 知道要去哪里拉取监控指标。
  2. 定时抓取:通过 HTTP 请求获取指标数据(默认 /metrics 接口)。
  3. 存储数据:保存为时序数据库格式。
  4. 查询和分析:使用 PromQL 做聚合、过滤和可视化。
  5. 触发告警:当指标满足条件时,发送到 Alertmanager,通知用户。

四、适用场景

  • Kubernetes 集群监控
  • 主机监控(CPU、内存、磁盘、网络)
  • 应用性能监控(微服务、数据库、中间件)
  • 服务可用性探测

五、Prometheus 的优缺点

✅ 优点:

  • 开源免费,社区活跃
  • 和 Kubernetes 深度集成
  • 灵活的标签系统和查询语言
  • 易于扩展,生态丰富

❌ 缺点:

  • 主要基于 pull 模型,不适合强防火墙环境
  • 单机存储为主,长时间、大规模数据存储依赖远端系统(如 Thanos、Cortex)
  • 对新手来说 PromQL 学习曲线有点陡