跳到主要内容

Grafana 核心概念与架构

Grafana 是什么​

一句话定位:Grafana 是开源的可视化与可观测性展示平台,它本身不存储任何监控数据。它做的事情只有两件——连上你的数据源(Data Source),按查询条件把数据取回来,渲染成图表给你看。

Grafana 架构

「只负责查和看」的架构带来几个直接推论:

  • 数据永远留在原地:指标在 Prometheus 里,日志在 Loki 里,业务数据在 MySQL 里。Grafana 只是查询的发起方和结果的渲染方,删掉 Grafana,监控数据一条不少。
  • 多数据源能拼在一张图上:左边是 Prometheus 的 QPS 曲线,右边是 Loki 的错误日志流,上面是 MySQL 的实时订单量——一次故障排查不用在三个系统之间来回切。
  • Grafana 自身状态很小:用户、数据源配置、仪表盘定义这些「Grafana 自己的数据」默认只存在一个 SQLite 文件里,备份迁移都很轻。

一次查询的完整链路:

浏览器打开 Dashboard
→ Grafana 服务端按 Panel 的查询配置请求各数据源(Prometheus / Loki / MySQL ...)
→ 数据源返回结果集
→ Grafana 渲染成图表,浏览器拿到最终的图

注意方向:查数据的是 Grafana 服务端,不是浏览器直连数据源。所以数据源配置里的 URL 要以 Grafana 进程的网络位置为准——你的浏览器能通不算数。这个坑在下一篇接第一个数据源时会马上遇到。

所以不要把 Grafana 当成「监控系统」:它是监控体系里的显示器。谁采数据、谁存数据、谁算告警,都是数据源那一侧的事。这也是它 2013 年从 Kibana 3 fork 出来之后一路壮大的原因——专注做展示层,反而成了几乎所有监控后端的事实标准前端。

与 BI 工具的区别

Tableau、Superset 这类 BI 工具面向「业务数据分析」,查询以 SQL 为主、交互以拖拽报表为主;Grafana 面向「运维与可观测性」,查询以 PromQL、LogQL 为主、交互以时间轴缩放和实时刷新为主。拿 Grafana 做经营报表能做但很别扭,反之亦然。

与 Prometheus 的关系​

这对组合几乎是云原生监控的代名词,分工非常清晰:

角色负责什么不负责什么
Prometheus采集指标、存储时序、评估告警规则画好看的图、多数据源拼图、权限与分享
Grafana查询展示、仪表盘、交互式分析采集与存储(它有自己的告警引擎,定位见下文「适用边界」)

Prometheus 自带的 Web UI 只适合临时查询和调试,这一点在 Prometheus 核心概念与架构 里也明确说了,正经的看板从一开始就约定俗成交给 Grafana。为什么它俩总是成对出现:

  • PromQL 一等公民:Grafana 的 Prometheus 数据源对 PromQL 支持最完整——语法高亮、自动补全、指标浏览器、即时与区间查询切换,写错函数名当场提示。
  • 生态双向绑定:kube-prometheus-stack 这类全家桶默认把 Grafana 打包进去;grafana.com 上社区贡献的现成仪表盘,大半都是基于 Prometheus 指标画的。
  • 各干各的强项:存储压缩、告警评估这些重活 Prometheus 干,交互体验、多源关联这些细活 Grafana 干,互不抢饭碗。
心智模型

Prometheus 是「数据的仓库和发动机」,Grafana 是「驾驶舱的仪表盘」。同一台发动机可以配多个驾驶舱(多套 Grafana 共用数据源),一个驾驶舱也可以接多台发动机(一条 Dashboard 查多个 Prometheus)。

数据源模型​

Grafana 的能力边界由「接了哪些数据源」决定。每条数据源是一份「类型 + 地址 + 认证 + 查询语言」的配置,生态里能接的后端大致分几类:

类别代表数据源典型用途
时序指标Prometheus、VictoriaMetrics、Mimir、InfluxDB、Graphite监控指标、SLO 曲线
日志Loki、Elasticsearch、OpenSearch、ClickHouse日志检索、错误分析
链路追踪Tempo、Jaeger、Zipkin调用链分析
关系数据库MySQL、PostgreSQL、SQL Server业务数据、工单报表
云厂商监控CloudWatch、Azure Monitor、Google Cloud Monitoring云上资源的托管指标
其他Infinity(任意 HTTP API)、TestData(造测试数据)接没有专用插件的系统

几个使用要点:

  • VictoriaMetrics、Mimir 直接用 Prometheus 类型数据源连:它们兼容 PromQL 查询接口,Grafana 端无感知。这也说明「数据源类型」本质是查询协议,不是后端品牌。
  • 同一类后端可以配多条数据源:生产 Prometheus、测试 Prometheus 各配一条,面板查询时下拉切换,也可以在一张 Dashboard 上混用。Panel 的查询编辑器里还有个 Mixed(混合)模式,一次查询同时拉多条不同数据源的结果叠着画。
  • 核心数据源内置:Prometheus、Loki、MySQL 这些官方维护的数据源开箱即用;更多第三方后端以插件形式安装,插件市场在 grafana.com/grafana/plugins。
插件质量与大版本升级

第三方数据源和面板插件维护质量参差不齐,装之前看一眼最近更新时间和下载量。Grafana 11 起彻底移除了基于 Angular 的老插件体系,升级大版本前先盘点在用插件是否已迁移到新体系,否则面板会直接打不开。

插件体系的三种形态​

  • Datasource 插件:接一类新后端,定义「怎么连、用什么查询语言」。
  • Panel 插件:一种新的可视化类型,比如流程图、增强饼图、地图面板。
  • App 插件:把前两者加定制页面打包成一个「应用」,装上就是一套完整体验,比如 Kubernetes Monitoring 这类全家桶插件。

未签名的插件默认拒绝加载,自建插件要在配置里显式放行——这个开关等于关掉一道安全门,生产环境慎用。

核心概念​

Grafana 的概念不多,记住这四组名词就够日常使用。

权限与组织:

  • Organization(组织):多租户隔离单位,数据源、仪表盘、用户都归属某个 Org,Org 之间互不可见。单机自用通常只有一个 Main Org——别为了「隔离」一上来建一堆 Org,多数场景用 Team 和文件夹就够。
  • Team(团队):Org 内把用户分组,权限按 Team 授予,新人进组即获得该组的看板权限。
  • User(用户):登录账号,内置三种角色——Admin(管实例)、Editor(建改看板)、Viewer(只能看)。更细粒度的 RBAC 是 Enterprise 的能力。

看板结构:

  • Dashboard(仪表盘):一张看板,由若干 Panel 组成,支持用变量(Variables)做全局下拉筛选。看板按**文件夹(Folder)**归类存放,权限通常挂在文件夹上而不是单张看板上。
  • Row(行):Dashboard 里的可折叠分组条,把 Panel 按主题归类;Grafana 12 起还提供了 Tab 等新布局。
  • Panel(面板):最小展示单元——一条时序曲线、一个大数字(Stat)、一张表格、一段日志流,背后绑定一个或多个查询。

连接与扩展:

  • Data Source(数据源):上一节的主角,一份「怎么连、怎么查」的配置。
  • Plugin(插件):datasource、panel、app 三种形态,见上节。

版本怎么选​

版本性质适合谁
OSS开源版(AGPLv3 协议),核心功能完整绝大多数团队,本系列以 OSS 为准
Enterprise商业订阅,在 OSS 基础上加 SAML、报表导出、细粒度权限、数据源缓存等有合规审计、大团队权限治理需求的企业
CloudGrafana Labs 官方托管的 SaaS,免运维,有免费额度档不想自己维护、规模小或想快速验证的团队

两个容易混淆的点:

  • Docker 官方主镜像 grafana/grafana 其实是 Enterprise 发行版:不激活 license 时行为等同 OSS,功能不会少。想用纯粹的开源发行版,选 grafana/grafana-oss 镜像。
  • 版本口径:当前(2026)主流是 Grafana 11.x 与 12.x,12 是 2025 年发布的大版本,带来了新版动态仪表盘和一套免写查询语言的 Drilldown 下钻分析应用。本系列内容两个大版本通用。

适用边界​

明确 Grafana 不是什么,以及它的主战场在哪。

它不是告警核心。 Grafana 8 起内置了 Unified Alerting,9 起成为唯一告警体系,能跨数据源定义告警规则——在「一份数据在 Loki、一份在 Prometheus」的场景里这是独一份的能力。但多数生产仍把 Prometheus 加 Alertmanager 作为告警中枢:链路短、与存储同生共死、生态成熟。Grafana 告警更适合当补充,比如基于 Loki 日志内容的告警。告警体系第 6 篇专门展开。

它不是存储。 前面反复强调过:Grafana 挂了、删了,监控数据毫发无损;反过来,数据保留多久、磁盘够不够,Grafana 一概不管,那是各数据源自己的容量规划。

两个主战场:

  • 大屏展示:NOC 值班大屏、机房电视墙。Kiosk 模式(TV 模式)隐藏导航只留图表,Playlist 功能让多张看板定时轮播。
  • 排查分析:值班排障时的时间轴缩放、变量联动过滤、Explore 临时查询、面板间下钻跳转,配合前面说的多数据源拼图,是「从症状定位到根因」的主工作台。
一句话边界

Grafana 是可观测性体系的「眼睛」:负责让你看见,不负责替你记住,也不负责替你喊。记忆是 Prometheus、Loki 的事,喊话是 Alertmanager 的事。

小结​

  • Grafana 是纯可视化层:本身不存数据,连接各类数据源做查询和展示,自身状态只有一个 SQLite 文件。
  • 与 Prometheus 是黄金搭档:一个存数算告警,一个画图做分析,生态双向绑定,所以总是成对出现。
  • 数据源模型按「时序、日志、追踪、关系库、云厂商」分类,VictoriaMetrics 等兼容后端直接走 Prometheus 类型;能力扩展靠 datasource、panel、app 三类插件。
  • 核心概念四组:Organization、Team、User 管权限,Dashboard、Row、Panel 管看板,Data Source 管连接,Plugin 管扩展。
  • 版本三选一:OSS 免费够用(本系列基准)、Enterprise 加企业功能、Cloud 免运维托管;注意 Docker 官方主镜像是 Enterprise 发行版。
  • 边界清晰:不是告警核心(第 6 篇细说)、不是存储;主战场是大屏展示和排查分析。

概念就绪,下一篇《安装与快速上手》把 Grafana 跑起来:Docker 一条命令起步,接上 Prometheus 数据源,导入第一块现成仪表盘。