Skip to content

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 数据源

  1. 左侧菜单 Configuration → Data Sources → Add data source
  2. 选择 Prometheus
  3. URL 填入 Prometheus 地址:
    • 与 Prometheus 同处一个 compose 网络时,用容器服务名 http://prometheus:9090
    • 单独部署、从宿主机访问时,用 http://localhost:9090
  4. 点击 Save & Test,出现绿色成功提示即连通。

也可接入 Loki 查看日志、MySQL 查看业务库数据等,方法一致,只是选择对应数据源类型并配置地址与凭据。

四、创建与导入 Dashboard

方式一:导入社区现成模板(最快)

Grafana 官方市场(grafana.com/dashboards)有大量现成模板,按 ID 一键导入:

  1. 左侧菜单 Dashboards → Import
  2. 输入模板 ID,例如:
    • 1860:Node Exporter Full(主机监控大盘)
    • 3662:Prometheus 2.0 Overview(Prometheus 自身状态)
  3. 选择已配置的 Prometheus 数据源,点击 Import 完成。

方式二:手动创建

  1. Dashboards → New → New dashboard → Add visualization
  2. 选择数据源,在查询编辑器中输入 PromQL,例如:
promql
rate(node_cpu_seconds_total{mode!="idle"}[5m])
  1. 选择面板类型(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 统一路由。

六、注意事项

  1. 修改默认密码admin/admin 是默认凭据,上线前务必更改。
  2. 网络连通性:数据源地址在容器网络与宿主机网络下的写法不同,务必按实际部署选择。
  3. 数据持久化:将 /var/lib/grafana 挂载到卷,否则容器重建后大盘与配置丢失。
  4. 安全暴露:对外网开放时应置于反向代理之后并启用 HTTPS 与认证。

参考资料