Grafana 简介 #

什么是监控可视化? #

在了解 Grafana 之前,我们需要先理解监控可视化的概念。监控可视化是将系统、应用、基础设施的运行数据转换为图形界面的过程,使运维人员和开发者能够直观地了解系统状态。

text
┌─────────────────┐
│     原始数据     │
│   指标、日志     │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│   数据采集       │
│   Prometheus    │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│   可视化展示     │
│    Grafana      │
└─────────────────┘

什么是 Grafana? #

Grafana 是一个开源的数据可视化和监控平台,由 Grafana Labs 开发维护。它可以将来自多种数据源的数据转换为美观、交互式的图表和仪表板,帮助团队更好地理解系统状态、发现问题和做出决策。

核心定位 #

text
┌─────────────────────────────────────────────────────────────┐
│                         Grafana                               │
├─────────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  数据可视化  │  │  多数据源    │  │  告警系统    │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐         │
│  │  仪表板      │  │  插件生态    │  │  团队协作    │         │
│  └─────────────┘  └─────────────┘  └─────────────┘         │
└─────────────────────────────────────────────────────────────┘

Grafana 的历史 #

发展历程 #

text
2014年 ─── Grafana 诞生
    │
    │      Torkel Ödegaard 创建
    │      作为 Kibana 的分支
    │      专注于时间序列数据
    │
2015年 ─── Grafana 2.0
    │
    │      添加告警功能
    │      支持更多数据源
    │
2017年 ─── Grafana 4.0
    │
    │      告警系统增强
    │      表格面板改进
    │
2019年 ─── Grafana 6.0
    │
    │      新的架构设计
    │      Explore 功能
    │      Loki 集成
    │
2020年 ─── Grafana 7.0
    │
    │      面板框架重构
    │      Trace 支持
    │      云服务集成
    │
2021年 ─── Grafana 8.0
    │
    │      新告警系统
    │      统一告警 UI
    │
2022年 ─── Grafana 9.0
    │
    │      PromQL 构建器
    │      改进的仪表板
    │
2023年 ─── Grafana 10.0
    │
    │      新的 UI 设计
    │      性能优化
    │
至今   ─── 行业标准
    │
    │      最流行的监控可视化平台
    │      超过 100 万活跃安装

里程碑版本 #

版本 时间 重要特性
1.0 2014 初始发布,时间序列可视化
2.0 2015 告警功能、多数据源
4.0 2017 增强告警系统
5.0 2018 Provisioning、新布局系统
6.0 2019 Explore、Loki 集成
7.0 2020 新面板框架、Trace 支持
8.0 2021 新告警系统
9.0 2022 PromQL 构建器
10.0 2023 新 UI 设计、性能优化

为什么选择 Grafana? #

传统监控的痛点 #

在使用 Grafana 之前,监控可视化面临以下问题:

text
┌─────────────────────────────────────────────────────────────┐
│                    传统监控的问题                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. 数据孤岛                                                 │
│     - 不同系统使用不同工具                                    │
│     - 数据分散,难以统一查看                                  │
│     - 需要在多个界面间切换                                    │
│                                                             │
│  2. 可视化能力有限                                           │
│     - 图表类型单一                                           │
│     - 定制困难                                               │
│     - 缺乏交互性                                             │
│                                                             │
│  3. 告警管理复杂                                             │
│     - 告警规则分散                                           │
│     - 通知渠道有限                                           │
│     - 缺乏统一管理                                           │
│                                                             │
│  4. 协作困难                                                 │
│     - 难以共享仪表板                                         │
│     - 权限管理复杂                                           │
│     - 版本控制缺失                                           │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Grafana 的解决方案 #

text
┌─────────────────────────────────────────────────────────────┐
│                    Grafana 的解决方案                         │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ✅ 统一数据视图                                             │
│     - 支持 30+ 数据源                                       │
│     - 单一界面查看所有数据                                   │
│     - 跨数据源查询                                          │
│                                                             │
│  ✅ 强大的可视化                                             │
│     - 丰富的图表类型                                        │
│     - 高度可定制                                            │
│     - 交互式仪表板                                          │
│                                                             │
│  ✅ 统一告警管理                                             │
│     - 集中管理告警规则                                      │
│     - 多渠道通知                                            │
│     - 告警静默和分组                                        │
│                                                             │
│  ✅ 团队协作                                                 │
│     - 仪表板共享                                            │
│     - 细粒度权限控制                                        │
│     - 版本历史管理                                          │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Grafana 的核心特点 #

1. 多数据源支持 #

Grafana 支持超过 30 种数据源:

text
┌─────────────────────────────────────────────────────────────┐
│                    支持的数据源                               │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  时序数据库:                                                │
│  ├── Prometheus                                             │
│  ├── InfluxDB                                               │
│  ├── TimescaleDB                                            │
│  └── Graphite                                               │
│                                                             │
│  关系型数据库:                                              │
│  ├── MySQL                                                  │
│  ├── PostgreSQL                                             │
│  ├── Microsoft SQL Server                                   │
│  └── Oracle                                                 │
│                                                             │
│  日志系统:                                                  │
│  ├── Elasticsearch                                          │
│  ├── Loki                                                   │
│  └── Splunk                                                 │
│                                                             │
│  云服务:                                                    │
│  ├── AWS CloudWatch                                         │
│  ├── Azure Monitor                                          │
│  ├── Google Cloud Monitoring                                │
│  └── Alibaba Cloud                                          │
│                                                             │
│  其他:                                                      │
│  ├── Jaeger (Tracing)                                       │
│  ├── OpenTSDB                                               │
│  └── Zabbix                                                 │
│                                                             │
└─────────────────────────────────────────────────────────────┘

2. 丰富的可视化组件 #

text
┌─────────────────────────────────────────────────────────────┐
│                    可视化面板类型                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  时间序列图表:                                              │
│  ├── Time Series (推荐)                                     │
│  ├── Graph (旧版)                                           │
│  └── State Timeline                                         │
│                                                             │
│  统计展示:                                                  │
│  ├── Stat                                                   │
│  ├── Gauge                                                  │
│  └── Bar Gauge                                              │
│                                                             │
│  表格与列表:                                                │
│  ├── Table                                                  │
│  ├── Logs                                                   │
│  └── Trace                                                  │
│                                                             │
│  地理可视化:                                                │
│  ├── Geomap                                                 │
│  └── Worldmap Panel                                         │
│                                                             │
│  其他:                                                      │
│  ├── Pie Chart                                              │
│  ├── Heatmap                                                │
│  ├── Histogram                                              │
│  └── Dashboard List                                         │
│                                                             │
└─────────────────────────────────────────────────────────────┘

3. 强大的告警系统 #

text
┌─────────────────────────────────────────────────────────────┐
│                    告警系统架构                               │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   ┌─────────────┐                                           │
│   │  告警规则    │  定义触发条件                             │
│   └──────┬──────┘                                           │
│          │                                                  │
│          ▼                                                  │
│   ┌─────────────┐                                           │
│   │  评估引擎    │  周期性评估规则                           │
│   └──────┬──────┘                                           │
│          │                                                  │
│          ▼                                                  │
│   ┌─────────────┐                                           │
│   │  告警状态    │  OK → Pending → Firing → Resolved        │
│   └──────┬──────┘                                           │
│          │                                                  │
│          ▼                                                  │
│   ┌─────────────┐                                           │
│   │  通知渠道    │  邮件、Slack、钉钉、Webhook 等            │
│   └─────────────┘                                           │
│                                                             │
└─────────────────────────────────────────────────────────────┘

4. 插件生态 #

text
┌─────────────────────────────────────────────────────────────┐
│                    插件类型                                   │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  数据源插件:                                                │
│  ├── 新增数据源支持                                          │
│  ├── 示例:MongoDB、Redis、Jira                              │
│  └── 扩展数据获取能力                                        │
│                                                             │
│  面板插件:                                                  │
│  ├── 新增可视化类型                                          │
│  ├── 示例:Clock、Announcement、News                         │
│  └── 扩展展示能力                                            │
│                                                             │
│  应用插件:                                                  │
│  ├── 完整功能扩展                                            │
│  ├── 示例:Zabbix、Kubernetes                                │
│  └── 提供一体化解决方案                                      │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Grafana 与其他监控工具对比 #

Grafana vs Kibana #

特性 Grafana Kibana
主要用途 指标监控可视化 日志分析和可视化
数据源 30+ 多种 Elasticsearch 为主
告警功能 强大 基础
学习曲线 平缓 中等
最佳场景 基础设施监控 日志分析

Grafana vs Datadog #

特性 Grafana Datadog
开源免费 ❌ SaaS 服务
数据源 支持外部数据源 内置数据采集
部署方式 自托管/云 仅 SaaS
成本 免费/企业版付费 按使用量付费
最佳场景 自建监控平台 快速上手

Grafana vs Zabbix #

特性 Grafana Zabbix
定位 可视化平台 完整监控系统
数据采集 需要外部工具 内置采集
可视化 极强 中等
告警
最佳场景 可视化展示 端到端监控

Grafana 的应用场景 #

1. 基础设施监控 #

text
┌─────────────────────────────────────────────────────────────┐
│                    基础设施监控                               │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  监控对象:                                                  │
│  ├── 服务器:CPU、内存、磁盘、网络                           │
│  ├── 容器:Docker、Kubernetes                               │
│  ├── 网络:带宽、延迟、丢包率                                │
│  └── 存储:IOPS、容量、延迟                                  │
│                                                             │
│  数据流:                                                    │
│  Node Exporter → Prometheus → Grafana                       │
│                                                             │
│  典型仪表板:                                                │
│  ├── Node Exporter Full                                     │
│  ├── Kubernetes Cluster                                     │
│  └── Docker Container                                       │
│                                                             │
└─────────────────────────────────────────────────────────────┘

2. 应用性能监控(APM) #

text
┌─────────────────────────────────────────────────────────────┐
│                    APM 监控                                   │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  监控指标:                                                  │
│  ├── 请求量/吞吐量                                          │
│  ├── 响应时间(P50、P95、P99)                               │
│  ├── 错误率                                                 │
│  └── 资源消耗                                               │
│                                                             │
│  技术栈:                                                    │
│  ├── OpenTelemetry SDK                                      │
│  ├── Jaeger / Tempo (Tracing)                               │
│  ├── Prometheus (Metrics)                                   │
│  └── Grafana (Visualization)                                │
│                                                             │
└─────────────────────────────────────────────────────────────┘

3. 日志分析 #

text
┌─────────────────────────────────────────────────────────────┐
│                    日志分析                                   │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  数据流:                                                    │
│  Application → Promtail → Loki → Grafana                    │
│                                                             │
│  功能:                                                      │
│  ├── 日志搜索和过滤                                         │
│  ├── 日志可视化                                             │
│  ├── 日志告警                                               │
│  └── 日志与指标关联                                         │
│                                                             │
└─────────────────────────────────────────────────────────────┘

4. 业务指标监控 #

text
┌─────────────────────────────────────────────────────────────┐
│                    业务监控                                   │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  示例指标:                                                  │
│  ├── 订单数量                                               │
│  ├── 销售金额                                               │
│  ├── 用户活跃度                                             │
│  ├── 转化率                                                 │
│  └── 库存状态                                               │
│                                                             │
│  数据源:                                                    │
│  ├── MySQL / PostgreSQL                                     │
│  ├── Elasticsearch                                          │
│  └── REST API                                               │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Grafana 的核心概念 #

仪表板(Dashboard) #

text
┌─────────────────────────────────────────────────────────────┐
│                         仪表板                                │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │                    Dashboard                         │   │
│  │  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐  │   │
│  │  │   Panel 1   │  │   Panel 2   │  │   Panel 3   │  │   │
│  │  └─────────────┘  └─────────────┘  └─────────────┘  │   │
│  │  ┌─────────────────────┐  ┌─────────────────────┐   │   │
│  │  │      Panel 4        │  │      Panel 5        │   │   │
│  │  └─────────────────────┘  └─────────────────────┘   │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  组成元素:                                                  │
│  ├── Panel:可视化面板                                      │
│  ├── Row:行分组                                            │
│  ├── Variable:变量                                         │
│  └── Annotation:注释                                       │
│                                                             │
└─────────────────────────────────────────────────────────────┘

面板(Panel) #

text
┌─────────────────────────────────────────────────────────────┐
│                         面板                                  │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  面板组成:                                                  │
│  ├── Title:标题                                            │
│  ├── Visualization:可视化类型                              │
│  ├── Query:数据查询                                        │
│  ├── Transform:数据转换                                    │
│  └── Options:显示选项                                      │
│                                                             │
│  常用面板类型:                                              │
│  ├── Time Series:时间序列图                                │
│  ├── Stat:统计值                                           │
│  ├── Gauge:仪表盘                                          │
│  ├── Table:表格                                            │
│  └── Bar Chart:柱状图                                      │
│                                                             │
└─────────────────────────────────────────────────────────────┘

数据源(Data Source) #

text
┌─────────────────────────────────────────────────────────────┐
│                        数据源                                 │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  配置项:                                                    │
│  ├── Name:名称                                             │
│  ├── Type:类型                                             │
│  ├── URL:连接地址                                          │
│  ├── Access:访问方式(proxy/server)                       │
│  └── Auth:认证信息                                         │
│                                                             │
│  查询流程:                                                  │
│  Grafana → Data Source → Query → Data → Visualization      │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Grafana 的架构 #

整体架构 #

text
┌─────────────────────────────────────────────────────────────┐
│                    Grafana 架构图                             │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   ┌─────────────────────────────────────────────────────┐  │
│   │                    Web UI                            │  │
│   │         (React + TypeScript)                         │  │
│   └─────────────────────────┬───────────────────────────┘  │
│                             │                               │
│   ┌─────────────────────────▼───────────────────────────┐  │
│   │                    HTTP API                          │  │
│   └─────────────────────────┬───────────────────────────┘  │
│                             │                               │
│   ┌─────────────────────────▼───────────────────────────┐  │
│   │                   Grafana Server                     │  │
│   │  ┌───────────┐  ┌───────────┐  ┌───────────┐       │  │
│   │  │ Dashboard │  │  Alerting │  │   Plugin  │       │  │
│   │  │  Service  │  │  Service  │  │  Manager  │       │  │
│   │  └───────────┘  └───────────┘  └───────────┘       │  │
│   └─────────────────────────┬───────────────────────────┘  │
│                             │                               │
│   ┌─────────────────────────▼───────────────────────────┐  │
│   │                   Data Sources                       │  │
│   │  ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐           │  │
│   │  │Prom │ │InfDB│ │MySQL│ │ES   │ │Loki │ ...       │  │
│   │  └─────┘ └─────┘ └─────┘ └─────┘ └─────┘           │  │
│   └─────────────────────────────────────────────────────┘  │
│                                                             │
│   ┌─────────────────────────────────────────────────────┐  │
│   │                   Storage                            │  │
│   │  ┌───────────┐  ┌───────────┐  ┌───────────┐       │  │
│   │  │  SQLite   │  │  MySQL    │  │ PostgreSQL│       │  │
│   │  │  (默认)   │  │  (可选)   │  │  (可选)   │       │  │
│   │  └───────────┘  └───────────┘  └───────────┘       │  │
│   └─────────────────────────────────────────────────────┘  │
│                                                             │
└─────────────────────────────────────────────────────────────┘

数据流 #

text
┌─────────────────────────────────────────────────────────────┐
│                    数据流向                                   │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   用户操作:                                                 │
│   User → Browser → Grafana UI → HTTP API → Backend         │
│                                                             │
│   查询数据:                                                 │
│   Backend → Data Source → Query → Response → Processing    │
│                                                             │
│   渲染展示:                                                 │
│   Processing → JSON → Frontend → Chart Rendering           │
│                                                             │
└─────────────────────────────────────────────────────────────┘

学习建议 #

  1. 从基础开始:先熟悉界面和基本操作
  2. 实践驱动:边学边做,创建实际仪表板
  3. 理解数据源:掌握至少一种数据源(推荐 Prometheus)
  4. 学习查询语言:PromQL 是必备技能
  5. 善用社区资源:导入社区仪表板,学习最佳实践

下一步 #

现在你已经了解了 Grafana 的基本概念,接下来学习 安装与配置,开始你的监控可视化之旅!

最后更新:2026-03-29