主题
Grafana 可视化监控
Grafana 是一个开源的数据可视化与监控平台,由 Grafana Labs 开发。它本身不采集、不存储数据,而是通过「数据源(Data Source)」接入 Prometheus、Loki、MySQL、Elasticsearch 等后端,把时序数据、日志、指标绘制成可交互的仪表盘(Dashboard),并内置告警能力。
一句话定位:Grafana = 多数据源接入 + 可视化大盘 + 告警。它和 Prometheus 是经典搭档——Prometheus 负责采集与存储,Grafana 负责展示与告警。
一、核心概念
| 概念 | 说明 |
|---|---|
| Data Source(数据源) | 数据来源,如 Prometheus、Loki、MySQL、PostgreSQL、InfluxDB 等 |
| Dashboard(仪表盘) | 一组面板的集合,对应一个监控视图 |
| Panel(面板) | 单个可视化单元,如折线图、单值、表格 |
| Variables(变量) | 模板变量,如 $instance、$job,实现大盘的多选切换与复用 |
Grafana 支持的面板类型:Time series(时序折线)、Stat(单值)、Gauge(仪表盘)、Bar chart(柱状图)、Table(表格)、Pie chart(饼图)等。
二、Docker 安装
方式一:docker run
bash
docker run -d \
--name grafana \
-p 3000:3000 \
grafana/grafana:latest方式二:docker-compose(推荐)
yaml
version: '3.8'
services:
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3000:3000"
volumes:
- grafana-data:/var/lib/grafana
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=admin
restart: unless-stopped
volumes:
grafana-data:启动:
bash
docker-compose up -d访问 http://localhost:3000,默认账号密码为 admin/admin,首次登录会强制要求修改密码。
三、连接 Prometheus 数据源
- 左侧菜单 Configuration → Data Sources → Add data source。
- 选择 Prometheus。
- URL 填入 Prometheus 地址:
- 与 Prometheus 同处一个 compose 网络时,用容器服务名
http://prometheus:9090; - 单独部署、从宿主机访问时,用
http://localhost:9090。
- 与 Prometheus 同处一个 compose 网络时,用容器服务名
- 点击 Save & Test,出现绿色成功提示即连通。
也可接入 Loki 查看日志、MySQL 查看业务库数据等,方法一致,只是选择对应数据源类型并配置地址与凭据。
四、创建与导入 Dashboard
方式一:导入社区现成模板(最快)
Grafana 官方市场(grafana.com/dashboards)有大量现成模板,按 ID 一键导入:
- 左侧菜单 Dashboards → Import。
- 输入模板 ID,例如:
1860:Node Exporter Full(主机监控大盘)3662:Prometheus 2.0 Overview(Prometheus 自身状态)
- 选择已配置的 Prometheus 数据源,点击 Import 完成。
方式二:手动创建
- Dashboards → New → New dashboard → Add visualization。
- 选择数据源,在查询编辑器中输入 PromQL,例如:
promql
rate(node_cpu_seconds_total{mode!="idle"}[5m])- 选择面板类型(Time series / Stat 等),调整单位、图例后 Apply 保存。
五、常用技巧
1. 使用模板变量
在 Dashboard 设置中添加变量(如 instance),查询语句可写成:
promql
rate(node_cpu_seconds_total{instance="$instance"}[5m])顶部下拉即可切换目标,一套大盘复用多个实例。
2. 时间区间与自动刷新
右上角可设置相对时间(如 Last 15 minutes)与自动刷新间隔(如 5s),适合大屏监控。
3. 告警
Grafana 8+ 内置告警引擎:在 Panel 的 Alert 标签页定义阈值与通知渠道,也可对接外部 Alertmanager 统一路由。
六、注意事项
- 修改默认密码:
admin/admin是默认凭据,上线前务必更改。 - 网络连通性:数据源地址在容器网络与宿主机网络下的写法不同,务必按实际部署选择。
- 数据持久化:将
/var/lib/grafana挂载到卷,否则容器重建后大盘与配置丢失。 - 安全暴露:对外网开放时应置于反向代理之后并启用 HTTPS 与认证。