万普插件库

jQuery插件大全与特效教程

Prometheus 基础入门详细解析


阶段 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 实战任务

  1. 安装 Prometheus 和 Node Exporter,采集本地主机系统指标。
  2. 配置 prometheus.yml 文件,让 Prometheus 定期拉取 Node Exporter 数据。
  3. 在 Prometheus Web 界面,使用 PromQL 查询 CPU 使用率。
  4. 挑战任务:创建告警规则,当 CPU 使用率超过 80% 时触发告警(可配置到后续 Alertmanager)。

六、学习资源和技巧

  1. 官方文档:https://prometheus.io/docs/
  2. Prometheus Playground:在线练习 PromQL 查询。
  3. Docker 快速搭建多种 Exporter,丰富你的监控指标。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言