4. Prometheus 数据源配置:安装、Targets 与 Grafana 集成

Prometheus 是 Grafana 最核心的时序数据源之一。本章将带你完成从 Prometheus 安装、抓取目标配置,到在 Grafana 中添加 Prometheus 数据源的完整链路。掌握这一流程,是后续构建制晶同步监控面板的基础。

4.1 安装 Prometheus Server

Prometheus 采用二进制部署方式,支持 Linux / macOS / Windows。以下以 Linux 环境为例,演示标准安装步骤。

步骤 操作 说明
1 下载 Prometheus 最新稳定版 从 prometheus.io/download 获取 Linux amd64 压缩包
2 解压至 /opt/prometheus 建议使用固定路径便于管理
3 创建系统用户 prometheus 安全隔离,避免以 root 运行
4 配置 prometheus.yml 定义全局参数与抓取目标
5 配置 systemd 服务 实现开机自启与进程守护
6 启动并验证 访问 http://<IP>:9090 确认 Web UI 可用
快速安装命令(CentOS / Ubuntu 通用):
# 下载并解压
wget https://github.com/prometheus/prometheus/releases/download/v2.53.0/prometheus-2.53.0.linux-amd64.tar.gz
tar xvf prometheus-2.53.0.linux-amd64.tar.gz -C /opt/
mv /opt/prometheus-2.53.0.linux-amd64 /opt/prometheus

# 创建用户
useradd --no-create-home --shell /bin/false prometheus
chown -R prometheus:prometheus /opt/prometheus

# 创建 systemd 服务文件 /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Monitoring System
After=network.target

[Service]
User=prometheus
Group=prometheus
ExecStart=/opt/prometheus/prometheus \
  --config.file=/opt/prometheus/prometheus.yml \
  --storage.tsdb.path=/var/lib/prometheus/data \
  --web.listen-address=0.0.0.0:9090

[Install]
WantedBy=multi-user.target

# 启动并设置开机自启
systemctl daemon-reload
systemctl enable --now prometheus
systemctl status prometheus

4.2 配置 Targets(抓取目标)

Prometheus 通过 scrape_configs 定义要监控的目标。每个目标可以是一个静态地址,也可以基于服务发现动态获取。对于制晶同步场景,我们通常需要监控以下三类目标:

  • Prometheus 自身:用于监控 Prometheus 进程健康与性能。
  • 同步节点 Exporter:部署在制晶同步服务器上的 node_exporter 或自定义 exporter,暴露同步指标。
  • 业务端点:制晶同步服务自身的 /metrics 接口(如果支持)。

以下是一个典型的 prometheus.yml 配置片段:

global:
  scrape_interval: 15s      # 全局抓取间隔
  evaluation_interval: 15s  # 规则评估间隔

scrape_configs:
  # 1. 监控 Prometheus 自身
  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

  # 2. 监控制晶同步节点(node_exporter)
  - job_name: 'sync_node'
    static_configs:
      - targets:
        - '192.168.1.10:9100'   # 同步节点 A
        - '192.168.1.11:9100'   # 同步节点 B
        - '192.168.1.12:9100'   # 同步节点 C
      labels:
        group: 'production'

  # 3. 监控制晶同步业务指标
  - job_name: 'sync_service'
    metrics_path: '/metrics'
    static_configs:
      - targets:
        - '192.168.1.10:8080'
        - '192.168.1.11:8080'
      labels:
        service: 'sync-engine'
💡 最佳实践: 为每个 target 添加有意义的 labels(如 group、service、region),这些标签会附加到所有采集到的时序数据上,后续在 Grafana 中做过滤和聚合时非常有用。

4.3 验证 Targets 状态

配置完成后,重启 Prometheus 并访问 Web UI 的 Status → Targets 页面。所有配置的 target 应显示为 UP 状态。如果出现 DOWN,请检查:

  • 目标主机是否可达(ping / telnet)
  • Exporter 或业务服务是否正常运行
  • 防火墙是否放行对应端口
  • metrics_path 是否与目标暴露路径一致
Prometheus 抓取架构与 Targets 配置流程 Prometheus 抓取架构与 Targets 配置流程 Prometheus Server prometheus.yml Job: prometheus localhost:9090 Job: sync_node 192.168.1.10:9100 192.168.1.11:9100 Job: sync_service 192.168.1.10:8080 192.168.1.11:8080 ✅ Status → Targets 页面 所有目标显示为 UP

4.4 在 Grafana 中添加 Prometheus 数据源

Prometheus 正常运行且 Targets 全部 UP 后,即可在 Grafana 中配置数据源。

操作步骤

  1. 登录 Grafana Web UI,点击左侧齿轮图标 → Data Sources。
  2. 点击 Add data source,选择 Prometheus。
  3. 填写以下关键配置项:
配置项 推荐值 说明
Name Prometheus-Prod 数据源名称,建议包含环境标识
URL http://192.168.1.10:9090 Prometheus Server 的完整地址
Access Server (default) Grafana 后端代理请求,避免跨域问题
Scrape interval 15s 建议与 Prometheus 全局 scrape_interval 一致
Timeout 10s 查询超时时间
HTTP Method POST 支持复杂查询,推荐使用

验证数据源

配置完成后,点击页面底部的 Save & Test 按钮。Grafana 会尝试连接 Prometheus 并执行一个简单的查询。如果看到绿色提示 "Data source is working",说明数据源配置成功。

⚠️ 常见问题:
  • Connection refused:检查 Prometheus 端口是否监听,防火墙是否放行 9090 端口。
  • 401 Unauthorized:如果 Prometheus 启用了 basic auth 或 mTLS,需要在 Grafana 数据源配置中填写对应的认证信息。
  • Timeout:检查网络连通性,或适当增大 Timeout 值。
Grafana 添加 Prometheus 数据源流程 Grafana 添加 Prometheus 数据源流程 Step 1 Configuration → Data Sources Step 2 Add data source → Prometheus Step 3 填写 URL / 认证 等配置项 Step 4 Save & Test ✅ Data source is working 绿色提示 → 配置成功

4.5 数据源配置清单(快速检查表)

在完成 Prometheus 数据源配置后,建议对照以下清单逐项确认,避免遗漏:

检查项 预期结果 验证方式
Prometheus 进程运行 systemctl status prometheus 显示 active (running) 命令行或 Web UI http://<IP>:9090
Targets 全部 UP Status → Targets 页面无 DOWN 目标 Prometheus Web UI
Grafana 数据源连通性 Save & Test 返回绿色成功提示 Grafana Data Sources 页面
指标可查询 在 Explore 页面输入 up 能返回时序数据 Grafana Explore
标签完整性 查询结果包含预期的 job / instance / group 等标签 Grafana Explore 或 Prometheus 查询页面
📌 核心要点回顾:
  • Prometheus 通过 scrape_configs 定义抓取目标,支持静态配置和服务发现。
  • 每个 target 的 labels 会附加到所有时序数据上,是后续 Grafana 面板过滤和分组的关键。
  • Grafana 数据源配置中 URL 和 Access 模式是最容易出错的环节,务必确认网络可达。
  • 配置完成后,务必执行 Save & Test 验证连通性,并在 Explore 中执行一次简单查询确认数据可用。