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 是否与目标暴露路径一致
4.4 在 Grafana 中添加 Prometheus 数据源
Prometheus 正常运行且 Targets 全部 UP 后,即可在 Grafana 中配置数据源。
操作步骤
- 登录 Grafana Web UI,点击左侧齿轮图标 → Data Sources。
- 点击 Add data source,选择 Prometheus。
- 填写以下关键配置项:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| 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 值。
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 中执行一次简单查询确认数据可用。