Prometheus 不监控 Grafana,而是 Grafana 从 Prometheus 拉取数据实现可视化;需先启动 Prometheus 并配置抓取目标,再启动 Grafana 并添加 Prometheus 为数据源,最后导入看板或编写 PromQL 查询展示指标。

这个问题其实有点小偏差:Prometheus 不监控 Grafana,而是 Grafana 从 Prometheus 读取数据并展示看板。正确关系是——Prometheus 负责采集、存储和告警,Grafana 负责可视化。
一、先让 Prometheus 正常运行并暴露指标
这是整个链路的起点。没有 Prometheus 提供数据,Grafana 就是空壳。
- 拉取镜像:
docker pull prom/prometheus:latest - 准备配置文件
prometheus.yml(关键部分):
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'grafana'
metrics_path: '/metrics'
static_configs:
- targets: ['grafana:3000']
注意:Grafana 官方镜像默认不暴露 /metrics 端点。若想监控 Grafana 自身运行状态(如 Go 内存、HTTP 请求数等),需额外启用其内置指标:
使用 Python 脚本下载 Docker 镜像并打包为 tar 文件。用户说“下载镜像”“拉取镜像”“pull xxx”“帮我下载 nginx 镜像”等时触发。支持 SOCKS5 代理直连(推荐)和国内镜像站加速两种模式。
- 启动 Grafana 时加环境变量:
-e GF_EXPLORE_ENABLED=true -e GF_METRICS_ENABLED=true - 或在
grafana.ini中启用:[metrics] enabled = true - 确保 Prometheus 能访问到 Grafana 容器内部地址(推荐用 Docker 网络互通,而非
localhost)
二、用 Docker 启动 Grafana 并对接 Prometheus 数据源
Grafana 本身不产生监控数据,但它能通过 HTTP 拉取 Prometheus 的时序数据,再渲染成图表。
- 拉取镜像:
docker pull grafana/grafana:latest - 启动命令示例(与 Prometheus 共享自定义网络):
docker network create monitoring
docker run -d --name prometheus --network monitoring \
-p 9090:9090 \
-v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
docker run -d --name grafana --network monitoring \
-p 3000:3000 \
-e GF_SECURITY_ADMIN_PASSWORD=admin123 \
grafana/grafana
- 浏览器打开
http://localhost:3000,用admin/admin123登录 - 左侧菜单 → Connections → Data sources → Add data source → 选 Prometheus
- URL 填
http://prometheus:9090(不是 localhost!因在同个 Docker 网络中,容器名可直接解析) - 点击 Save & Test,显示 “Data source is working” 即成功
三、导入或创建 Grafana 看板展示 Prometheus 数据
数据源连上了,但还没图表。你需要一个看板来“问” Prometheus 数据。
- 推荐导入成熟模板,比如 ID 1860(Node Exporter Full)或 10280(Spring Boot Actuator)
- 操作路径:左侧 + → Import → 输入 ID → Load → 选择刚配好的 Prometheus 数据源 → Import
- 若要手动建面板:新建 Dashboard → Add Panel → Query 标签页 → 选择 Prometheus 数据源 → 输入 PromQL,例如:
rate(http_request_duration_seconds_count[5m])或go_memstats_heap_alloc_bytes{job="grafana"}
四、可选:监控 Grafana 自身运行指标(进阶)
官方 Grafana 镜像默认开启基础指标(/metrics),但需确认是否启用:
- 检查 Grafana 日志是否有
metrics endpoint enabled - 在浏览器访问
http://localhost:3000/metrics(需登录后或配置允许匿名访问) - 常见指标包括:
go_goroutines、http_request_duration_seconds_count、grafana_api_dashboard_get_total - 把这些指标写入 Prometheus 的
grafanajob 后,就能在看板里观察 Grafana 的请求延迟、内存增长、并发 goroutine 数等

















