引言
Prometheus 是一个开源的监控系统和时间序列数据库,它特别适合于监控基于微服务架构的应用程序。Prometheus 采用 pull 模式主动从目标系统抓取数据,并且提供丰富的查询语言 PromQL 以便进行数据分析。本文将介绍 Prometheus 的基本概念、架构,并指导您如何快速搭建和配置 Prometheus 服务器。
Prometheus 基本概念
- 目标:Prometheus 抓取数据的目标系统或服务。
- 指标:Prometheus 中的数据点,如计数器、摘要和直方图等。
- 标签:附加在指标上的键值对,用于标识不同的实例或维度。
- PromQL:Prometheus 查询语言,用于检索和操作存储在 Prometheus 中的数据。
Prometheus 架构
Prometheus 的核心组件包括:
- Prometheus Server:负责抓取数据、存储数据、执行查询等。
- Pushgateway:当目标无法支持 pull 模式时,可以使用 Pushgateway 接收数据然后转发给 Prometheus Server。
- Alertmanager:用于处理警报规则,发送通知。
- Exporters:将非 Prometheus 兼容系统的指标转换成 Prometheus 格式。
快速搭建 Prometheus 服务器
我们将使用 Docker 来快速搭建一个 Prometheus 服务器,并配置它来抓取一个示例目标。
准备工作
确保您的机器上已安装 Docker。如果没有安装 Docker,您可以从 Docker 官网下载并安装。
下载 Prometheus 配置文件
首先,我们需要一个配置文件来告诉 Prometheus 如何抓取数据。创建一个名为 prometheus.yml
的文件,并添加以下内容:
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'node_exporter'
static_configs:
- targets: ['localhost:9100']
alerting:
alertmanagers:
- static_configs:
- targets:
- localhost:9093
这个配置文件指定了 Prometheus 服务器应该每 15 秒抓取一次 Prometheus 服务器自身和 Node Exporter 的数据。
启动 Prometheus 服务器
使用 Docker 运行 Prometheus 服务器,我们需要映射 Prometheus 的配置文件和数据目录:
docker run -d \
--name prometheus \
-p 9090:9090 \
-v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
-v /path/to/data:/prometheus \
prom/prometheus:v2.37.0
这里我们使用了 Prometheus 的官方镜像版本 v2.37.0
。请注意替换 /path/to/prometheus.yml
和 /path/to/data
为您实际的文件路径。
验证 Prometheus 服务器
启动后,可以通过浏览器访问 Prometheus UI,地址为 http://localhost:9090
。
在 UI 中,您可以查看抓取的状态、执行查询、设置警报等。
添加示例目标:Node Exporter
为了测试 Prometheus 的数据抓取功能,我们将添加一个 Node Exporter 作为示例目标。
安装 Node Exporter
使用 Docker 安装 Node Exporter:
docker run -d \
--name node_exporter \
-p 9100:9100 \
prom/node-exporter:v0.19.1
验证 Node Exporter
通过访问 http://localhost:9100/metrics
来验证 Node Exporter 是否正在运行并且输出指标。
查询示例
现在我们可以尝试查询一些指标。打开 Prometheus UI,在顶部的查询框中输入以下 PromQL 查询语句:
node_cpu_seconds_total{mode="idle"}
点击“Execute”按钮来运行查询。您将看到关于 CPU 空闲时间的统计数据。
结论
Prometheus 是一个强大的监控工具,适用于各种规模的应用程序和服务。通过本指南,您已经学会了如何快速搭建和配置 Prometheus 服务器,并且能够开始监控和查询数据。随着您对 Prometheus 的深入了解,您还可以进一步探索如何设置复杂的警报规则、使用 Grafana 来可视化数据等高级功能。