好的,阿杰 👍 我来给你写一个 Prometheus 简介,适合入门学习和文档使用。
Prometheus 简介
一、Prometheus 是什么?
Prometheus(普罗米修斯)是一个 开源的系统监控和告警工具,最初由 SoundCloud 开发,现在已经加入 CNCF(Cloud Native Computing Foundation),和 Kubernetes 一样是云原生生态的重要组成部分。
它的特点是:
- 时序数据库:以时间序列的方式存储监控数据(时间戳 + 指标名 + 标签 + 值)。
- 强大的查询语言(PromQL):支持实时聚合、过滤和计算监控数据。
- 多维度数据模型:可以通过标签(labels)为监控指标添加维度,比如
cpu_usage{host="server1", core="0"}
。 - 内置告警系统:可以结合 Alertmanager 发送邮件、Slack、微信等告警。
- 生态完善:和 Kubernetes、Grafana 等无缝集成,成为云原生监控的标准方案。
二、Prometheus 的架构
主要组件:
- Prometheus Server
- 核心组件,负责数据采集、存储和查询。
- 通过 pull 模型 定期抓取目标数据源的指标。
- Exporter
- 数据采集端,负责把系统/应用的指标转化为 Prometheus 可识别的格式。
- 常见的有:
- Node Exporter(采集主机 CPU、内存、磁盘、网络等)
- MySQL Exporter
- Blackbox Exporter(探测服务可用性)
- Alertmanager
- 接收 Prometheus 的告警,并负责去重、分组、路由和发送通知。
- Grafana(可选)
- 可视化工具,用来展示 Prometheus 数据。
三、Prometheus 的工作流程
- 配置目标(targets):Prometheus 知道要去哪里拉取监控指标。
- 定时抓取:通过 HTTP 请求获取指标数据(默认
/metrics
接口)。 - 存储数据:保存为时序数据库格式。
- 查询和分析:使用 PromQL 做聚合、过滤和可视化。
- 触发告警:当指标满足条件时,发送到 Alertmanager,通知用户。
四、适用场景
- Kubernetes 集群监控
- 主机监控(CPU、内存、磁盘、网络)
- 应用性能监控(微服务、数据库、中间件)
- 服务可用性探测
五、Prometheus 的优缺点
✅ 优点:
- 开源免费,社区活跃
- 和 Kubernetes 深度集成
- 灵活的标签系统和查询语言
- 易于扩展,生态丰富
❌ 缺点:
- 主要基于 pull 模型,不适合强防火墙环境
- 单机存储为主,长时间、大规模数据存储依赖远端系统(如 Thanos、Cortex)
- 对新手来说 PromQL 学习曲线有点陡
发表回复