Grafana 74,380 星:Docker 部署指南 2026 版

Grafana 是开源可视化与分析平台,监控指标、日志、链路追踪。覆盖 Prometheus、Loki、InfluxDB、Elasticsearch 集成。Docker 部署、生产加固对比 Datadog、Kibana、New Relic。

  • ⭐ 77451
  • Python
  • AGPL-3.0
  • 更新于 2026-05-19

生产事故从"发生什么变化了?“开始。没有集中式指标、日志、链路视图,这问题需要分钟 — 说甚至小时 — 解答。Grafana 以 74,380 星开源可视化平台,把该问题变成一眼可见的看板。本指南涵盖 Docker 部署、数据源集成、生产加固决策,区分概念验证与生产级监控栈。

什么是 Grafana? #

Grafana 是开源可观测性平台,可将 100+ 数据源(时序数据库、日志聚合器、链路追踪后端、云 API)可视化为统一、可分享的看板。2014 年由 Torkel Ödegaard 启动,最初为 Graphite 前端,如今成云原生可观测生态(LGTM 栈:Loki、Grafana、Tempo、Mimir)首选可视化层。

Grafana 作为无状态可视化层,在外层数据源之间提供操作团队。它不存储指标或日志;相反,通过原生 API 查询外部数据源,渲染面板、看板、告警。

如何使用 Grafana:架构 & 核心概念 #

Grafana 架构分为模块化管道。理解这五大模块在编写首个策略前至关重要:

  1. 数据源 — Prometheus、Loki、InfluxDB、Elasticsearch、CloudWatch、Azure Monitor 等 100+ 原生插件
  2. 查询引擎 — 每个面板在其数据源原生语言执行查询(PromQL、LogQL、InfluxQL、Lucene)
  3. 告警引擎 — 将告警规则评估为查询结果,路由至 Slack、PagerDuty、email、webhook
  4. 看板模型 — JSON 格式看板定义,可通过 GitOps 进行 version 控制、自动 provision 或从社区库导入
  5. 身份验证层 — 支持 OAuth、LDAP、SAML、API 密钥访问

典型数据流:Prometheus 从应用与 Node Exporter 抓取指标,Loki 汇聚 Promtail 或 Fluentd 收集日志,Grafana 查询二者渲染关联看板,在 CPU 峰值(指标)与错误峰值(日志)侧边出现。

安装指南 #

Docker CLI — 单容器(30 秒) #

快速获取本地可视化:

# 创建持久化卷
docker volume create grafana-storage

# 运行 Grafana Enterprise
docker run -d \
  -p 3000:3000 \
  --name=grafana \
  --volume grafana-storage:/var/lib/grafana \
  grafana/grafana-enterprise

访问 localhost:3000。默认凭据 admin/admin,首次登录需更改。

Docker Compose — 生产级栈 #

将 Grafana 与 Prometheus、Loki 结合:

mkdir -p ~/grafana-stack/{prometheus,loki,grafana/provisioning/datasources,grafana/provisioning/dashboards,grafana/dashboards}
cd ~/grafana-stack

启动:

docker compose up -d

访问 Grafana,导入看板 ID 1860(Node Exporter Full)获得 115+ 系统指标面板。

数据源自动 provision #

# grafana/provisioning/datasources/datasources.yml
apiVersion: 1

datasources:
  - name: Prometheus
    type: prometheus
    access: proxy
    url: http://prometheus:9090
    isDefault: true
    editable: false

  - name: Loki
    type: loki
    access: proxy
    url: http://loki:3100
    editable: false

集成:Prometheus、Loki、InfluxDB、Elasticsearch #

Prometheus — 指标看板 #

# CPU 使用率
100 - (avg by(instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

# 内存使用
100 * (1 - ((node_memory_MemAvailable_bytes or node_memory_Buffers_bytes) / node_memory_MemTotal_bytes))

Loki — 日志聚合 #

# 按应用统计错误日志
sum by(app) (rate({job="system-logs"} |= "ERROR" [5m]))

# 搜索特定错误
{job="system-logs"} |~ "(?i)error|exception|fatal" | json | line_format "{{.message}}"

InfluxDB — 高基数时序数据 #

-- 每传感器平均温度
SELECT mean("temperature") FROM "sensors" WHERE $timeFilter GROUP BY "sensor_id", time($__interval) fill(null)

生产环境加固 #

SSL/TLS 终结 #

# 使用 Traefik 反向代理
  traefik:
    image: traefik:v3.3
    command:
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.letsencrypt.acme.tlschallenge=true"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro

高可用部署 #

Grafana 横向扩容需要共享数据库:

postgres:
  image: postgres:17-alpine
  environment:
    POSTGRES_DB: grafana
    POSTGRES_USER: grafana
    POSTGRES_PASSWORD: ${DB_PASSWORD}

grafana-1:
  image: grafana/grafana-enterprise:11.6.0
  environment:
    GF_DATABASE_TYPE=postgres
    GF_DATABASE_HOST=postgres:5432
    GF_DATABASE_PASSWORD=${DB_PASSWORD}

与替代方案对比 #

功能GrafanaDatadogKibanaNew Relic
开源是 (AGPL-3.0)是 (SSPL)
自托管免费免费
数据源100+ 原生750+ 集成Elasticsearch100+
成本 (50 主机/月)$0-500 自托管$9,500-20,000$500-1,500 自托管$7,500-15,000

Grafana 适合:成本敏感团队、Kubernetes 原生环境、多数据源可观测性需求、平台工程成熟度。

常见问题解答 #

Q1:Grafana 完全免费商业使用吗? #

是的。开源 Grafana AGPL-3.0 商业使用免费。Grafana Enterprise 添加高级数据源插件、RBAC、报告、专业支持收费。

Q2:能否完全取代 Datadog? #

取决于需求。Grafana+LGTM 栈覆盖 80-90% Datadog 功能,成本为数十分之一。但 Datadog 的 APM 深度、AI 异常检测、即插即用集成仍领先。

Q3:怎么备份 Grafana 看板? #

看板存储在 Grafana 数据库的 JSON 中。通过 API 导出:curl -H "Authorization: Bearer ***" http://grafana:3000/api/dashboards/uid/<uid>


推荐基础设施 #

这篇文章存档链接到 Binance、OKX、Minara、DigitalOcean、HTStack 赚取佣金。

💬 留言讨论