阶段 1:Prometheus 基础入门详细解析
学习目标:
理解 Prometheus 的基本概念及架构 完成环境搭建与初步配置 能够通过简单的 PromQL 查询监控指标
一、基础概念解析
1.1 Prometheus 是什么?
Prometheus 是一个开源的 时间序列数据库(TSDB) 和监控系统,特别适合监控云原生环境(如 Kubernetes)。它通过**拉取模式(Pull)从目标服务采集监控数据,并以时间序列(time series)的形式存储,用户可以通过 PromQL 查询数据,还能配置告警规则(Alert Rules)**和发送告警。
1.2 主要功能特点
- 多维度数据模型:基于时间序列,数据通过标签(Label)进行标识,便于灵活查询。
- 强大的 PromQL 查询语言:支持聚合、过滤和分析时间序列数据。
- 服务发现:自动发现服务和节点,减少手动配置的工作量。
- 数据可视化:与 Grafana 集成,提供丰富的仪表盘展示。
1.3 Prometheus 架构解析
Prometheus 由以下核心组件组成:
- Prometheus Server:核心组件,负责采集和存储时间序列数据,提供 PromQL 查询接口。
- Exporter:将系统或服务的状态转化为 Prometheus 格式的时间序列数据,供 Prometheus Server 采集。
- Alertmanager:接收 Prometheus 的告警,进行告警分组、路由和通知。
- Pushgateway:用于短时任务(如批处理任务)的监控数据收集。
- Web UI:简单的内置 Web 界面,支持 PromQL 查询和数据可视化。
架构图示意:
Prometheus 通过 Exporter 定期采集数据,存储到本地时间序列数据库,用户通过 PromQL 查询数据,同时告警规则触发时由 Alertmanager 发送告警。
二、环境搭建
2.1 安装 Prometheus
推荐使用 Docker 快速安装 Prometheus:
docker run -d --name prometheus -p 9090:9090 prom/prometheus
- 访问 Prometheus Web 界面:http://localhost:9090
- 你会看到一个简单的 Web 界面,提供查询和管理功能。
2.2 配置 Node Exporter(采集主机系统指标)
Node Exporter 用于采集主机系统的硬件和操作系统指标(CPU、内存、磁盘、网络等)。
安装 Node Exporter(Docker 方式):
docker run -d --name node-exporter -p 9100:9100 prom/node-exporter
Prometheus 配置文件 prometheus.yml 示例:
# cat prometheus/prometheus.yml
global:
scrape_interval: 15s # 每 15 秒拉取一次数据
scrape_configs:
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
- scrape_interval:设置数据采集的频率
- job_name:定义采集任务名称(如 node_exporter)
- targets:定义 Prometheus 拉取数据的目标服务地址(Node Exporter 运行在 localhost:9100)
重启 Prometheus,让配置生效:
docker restart prometheus
在 Prometheus Web 界面上,进入 Status -> Targets,你可以看到 Node Exporter 的数据采集状态。
![[IMG-2、阶段 1:Prometheus 基础入门详细解析-20250210170622275.png]]
三、Prometheus 配置文件解析
Prometheus 的核心配置文件是 prometheus.yml,其主要部分包括:
3.1全局配置 (global)
- scrape_interval:设置全局的默认数据采集频率(每个目标会以该频率采集数据)
- evaluation_interval:设置规则评估的频率(用于告警规则的触发检查)
3.2采集配置 (scrape_configs)
每个 scrape_config 定义一个数据采集任务,包含以下重要部分:
- job_name:任务名称,便于在 PromQL 查询中区分不同数据源
- static_configs:手动定义监控目标的地址列表
- relabel_configs:对采集到的标签进行重命名或过滤(高级用法,后续学习)
四、PromQL 基础查询
4.1 查询最新值
# 查询所有 CPU 使用时间序列的最新值
node_cpu_seconds_total
4.2 使用标签筛选数据
# 查询所有 CPU 使用时间序列中 mode="user" 的最新值
node_cpu_seconds_total{mode="user"}
4.3 时间范围查询
# 查询最近 5 分钟内的 CPU 使用率
rate(node_cpu_seconds_total[5m])
![[IMG-2、阶段 1:Prometheus 基础入门详细解析-20250210172102732.png]]
五、阶段 1 实战任务
- 安装 Prometheus 和 Node Exporter,采集本地主机系统指标。
- 配置 prometheus.yml 文件,让 Prometheus 定期拉取 Node Exporter 数据。
- 在 Prometheus Web 界面,使用 PromQL 查询 CPU 使用率。
- 挑战任务:创建告警规则,当 CPU 使用率超过 80% 时触发告警(可配置到后续 Alertmanager)。
六、学习资源和技巧
- 官方文档:https://prometheus.io/docs/
- Prometheus Playground:在线练习 PromQL 查询。
- Docker 快速搭建多种 Exporter,丰富你的监控指标。