Administrator
Published on 2025-12-26 / 19 Visits
0
0

【Zabbix从0到1实战指南】第 X讲|Grafana 部署与安装


Image

Image

Image

Image


一、先把话说透:Grafana 到底是什么?

Grafana 本质上只有一个定位:

Grafana 是一个“数据可视化与观测表达平台”,而不是监控系统本身。

不采集数据、不保存原始监控历史、不做核心告警判断
它的价值在于:
👉 把已经存在的数据,用“人能理解、领导愿意看”的方式展示出来。


一句话区分(非常重要)

系统

解决什么问题

Zabbix

系统是否异常

Prometheus

指标采集与时序

Grafana

数据如何被看懂

结论:Grafana 是“最后一公里”。


二、为什么企业里 Grafana 几乎成了标配?

如果你只用 Zabbix 原生界面,通常会遇到这几类问题:

  • 图表表达能力有限

  • 跨主机 / 跨系统对比困难

  • 不适合汇报 / 大屏

  • 无法融合多数据源

而 Grafana 恰好补齐这些短板。


Grafana 的核心能力

1️⃣ 多数据源统一展示

  • Zabbix

  • Prometheus

  • MySQL / PostgreSQL

  • Elasticsearch

2️⃣ 强大的 Dashboard 表达能力

  • 自由布局

  • 统一风格

  • 大屏展示

3️⃣ 管理层友好

  • SLA / 趋势

  • 汇总视角

  • 一眼判断状态


下面把 Grafana 的官网地址 + 各类安装包的官方下载渠道一次性给你说明白,可直接放进公众号/部署文档里用


一、Grafana 的官网是哪个?

✅ 官方官网(唯一权威)

👉 Grafana 官网
https://grafana.com

这是所有 Grafana 相关内容的源头,包括:

  • 产品介绍

  • 官方文档

  • 插件市场

  • Dashboard 模板库

  • 官方下载入口

判断标准一句话:只要域名是 grafana.com,就是官方。


二、Grafana 的官方文档在哪?

👉 官方文档中心
https://grafana.com/docs/

常用子入口:


三、Grafana 的安装包通常从哪里下载?

1️⃣ 官方统一下载页(最推荐)

👉 Grafana 官方下载中心
https://grafana.com/grafana/download

这个页面可以:

  • 选择 Grafana 版本

  • 选择 操作系统

  • 选择 架构(amd64 / arm64)

  • 选择 安装方式

90% 用户的正确入口


2️⃣ Linux 系统安装包(RPM / DEB)

在下载页中可直接选择:

🔹 RPM(RHEL / CentOS / Rocky / Alma / 麒麟 V10 x86)

grafana-10.x.x-1.x86_64.rpm

🔹 DEB(Ubuntu / Debian)

grafana_10.x.x_amd64.deb

⚠️ 注意:

  • arm64 / aarch64 也有对应包

  • 包名中会明确标注 arm64 / aarch64


3️⃣ Docker 镜像(生产最常用)

👉 官方 Docker Hub

https://hub.docker.com/r/grafana/grafana/tags

https://grafana.com/grafana/download/

镜像名称:

grafana/grafana

示例:

docker pull --platform=linux/arm64 grafana/grafana:10.4.19-security-01
docker pull --platform=linux/amd64 grafana/grafana:10.4.19-security-01
docker run -d --name=grafana -p 3000:3000 grafana/grafana:10.4.19-security-01

说明:

  • 官方镜像

  • 支持 amd64 / arm64(aarch64)自动适配

  • 生产环境首选


4️⃣ 二进制包(tar.gz)

适合:

  • 离线环境

  • 精简系统

  • 自定义部署

下载地址同样在官方下载页中选择 Standalone Linux binaries

示例:

grafana-10.x.x.linux-amd64.tar.gz
grafana-10.x.x.linux-arm64.tar.gz

5️⃣ 插件下载(非常常用)

🔹 官方插件市场

👉 Grafana Plugins

https://grafana.com/grafana/plugins/

例如:

  • Zabbix 插件

  • Prometheus 插件

  • MySQL / PostgreSQL 插件

插件可通过:

  • Web UI 安装

  • grafana-cli plugins install

  • 离线下载后放入插件目录


五、Grafana Dashboard 模板在哪下载?

👉 官方 Dashboard 模板库

https://grafana.com/grafana/dashboards/

这里可以:

  • 搜索 “Zabbix”

  • 搜索 “Linux”

  • 搜索 “MySQL”

  • 搜索 “Network”

每个 Dashboard 都有:

  • Dashboard ID

  • 导入说明

  • 适配的数据源


六、部署前必须想清楚的 4 件事

1️⃣ Grafana 部署在哪里?

推荐位置:

监控管理区 / 运维管理区

不建议:

  • 跟业务系统混布

  • 跟数据库共主机


2️⃣ Grafana 是否需要高可用?

现实结论:

90% 的场景不需要 HA。

原因很简单:

  • Grafana 挂了 ≠ 业务挂

  • 数据还在数据源里

一般 1 实例即可,最多做备份


3️⃣ 数据是否本地保存?

Grafana 只保存:

  • Dashboard 定义

  • 用户 / 权限

  • 插件

👉 一定要持久化存储


4️⃣ 架构平台要求?

Grafana 官方 Docker 镜像支持:

  • linux/amd64

  • linux/arm64 (aarch64)

国产 ARM / 飞腾 / 鲲鹏 / 海光环境均可直接用。


七、Grafana 官方推荐部署方式对比

方式

是否推荐

适用场景

RPM / DEB

⭐⭐

单机、无 Docker

二进制

测试

Docker

⭐⭐⭐⭐

主流 / 生产

Kubernetes

⭐⭐⭐

云原生

本文主线:Docker 部署(生产首选)


八、Grafana Docker 部署

1️⃣ 选择稳定版本(非常关键)

推荐版本策略:

  • Grafana 10.x LTS(强烈推荐)

  • 不建议直接追 11.x

示例版本:

grafana/grafana:10.4.x

2️⃣ 目录规划(比命令重要)

/data/grafana/
├── data/        # Grafana 数据目录(必须持久化)
├── logs/        # 日志
├── plugins/     # 插件目录
└── grafana.ini  # 可选:自定义配置

3️⃣ Docker 启动命令(最小可用)

docker run -d \
  --name grafana \
  -p 3000:3000 \
  -v /data/grafana/data:/var/lib/grafana \
  -v /data/grafana/logs:/var/log/grafana \
  grafana/grafana:10.4.3

访问:

http://IP:3000

默认账号:

admin / admin

4️⃣ Docker Compose(生产推荐)

services:
  grafana:
    image: grafana/grafana:12.3.1
    container_name: grafana
    restart: unless-stopped

    ports:
      - "3000:3000"

    environment:
      # ==================================================
      # 【一】Server 基础配置
      # ==================================================
      GF_SERVER_HTTP_PORT: "3000"
      GF_SERVER_PROTOCOL: "http"
      GF_SERVER_DOMAIN: "grafana.local"
      GF_SERVER_ROOT_URL: "%(protocol)s://%(domain)s:%(http_port)s/"
      GF_SERVER_ENABLE_GZIP: "true"

      # ==================================================
      # 【二】管理员与安全(生产必配)
      # ==================================================
      GF_SECURITY_ADMIN_USER: "admin"
      GF_SECURITY_ADMIN_PASSWORD: "ChangeMe_123!"
      GF_SECURITY_DISABLE_GRAVATAR: "true"
      GF_SECURITY_COOKIE_SECURE: "false"
      GF_SECURITY_COOKIE_SAMESITE: "lax"
      GF_SECURITY_ALLOW_EMBEDDING: "false"

      # ==================================================
      # 【三】认证与用户策略(企业内网推荐)
      # ==================================================
      GF_AUTH_DISABLE_LOGIN_FORM: "false"
      GF_AUTH_ANONYMOUS_ENABLED: "false"

      GF_USERS_ALLOW_SIGN_UP: "false"
      GF_USERS_ALLOW_ORG_CREATE: "false"
      GF_USERS_AUTO_ASSIGN_ORG: "true"
      GF_USERS_AUTO_ASSIGN_ORG_ROLE: "Viewer"

      # ==================================================
      # 【四】时区与时间格式(Zabbix 场景非常关键)
      # ==================================================
      GF_DATE_FORMATS_DEFAULT_TIMEZONE: "Asia/Shanghai"
      GF_DATE_FORMATS_INTERVAL_SECOND: "HH:mm:ss"
      GF_DATE_FORMATS_INTERVAL_MINUTE: "HH:mm"
      GF_DATE_FORMATS_INTERVAL_HOUR: "MM-DD HH:mm"
      GF_DATE_FORMATS_INTERVAL_DAY: "MM-DD"
      GF_DATE_FORMATS_INTERVAL_MONTH: "YYYY-MM"
      GF_DATE_FORMATS_INTERVAL_YEAR: "YYYY"

      # ==================================================
      # 【五】日志(便于审计与排错)
      # ==================================================
      GF_LOG_MODE: "console file"
      GF_LOG_LEVEL: "info"

      # ==================================================
      # 【六】插件策略(Zabbix 插件关键)
      # ==================================================
      GF_PLUGINS_ENABLE_ALPHA: "false"
      GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS: "alexanderzobnin-zabbix-app"

      # ==================================================
      # 【七】性能与稳定性(保守参数)
      # ==================================================
      GF_RENDERING_CONCURRENT_RENDER_REQUEST_LIMIT: "10"
      GF_EXPLORE_ENABLED: "true"

    volumes:
      - /data/grafana/data:/var/lib/grafana
      - /data/grafana/logs:/var/log/grafana
      - /data/grafana/plugins:/var/lib/grafana/plugins

    networks:
      - zbx7-net

# ==================================================
# 使用已有的 zbx7-net(172.20.0.0/16)
# ==================================================
networks:
  zbx7-net:
    external: true

5️⃣ 指定架构(必要时)

platform: linux/amd64
# 或
platform: linux/arm64

mkdir -p /data/grafana/{compose,data,logs,plugins}
chmod -R 777 /data/grafana

配置grafana的env

# ==================================================
# Grafana 基础服务配置
# ==================================================
GF_SERVER_HTTP_PORT=3000
GF_SERVER_PROTOCOL=http
GF_SERVER_DOMAIN=grafana.local
GF_SERVER_ROOT_URL=%(protocol)s://%(domain)s:%(http_port)s/
GF_SERVER_ENABLE_GZIP=true

# ==================================================
# Grafana 管理员账号(生产务必修改)
# ==================================================
GF_SECURITY_ADMIN_USER=admin
GF_SECURITY_ADMIN_PASSWORD=ChangeMe_123!

# ==================================================
# 安全相关配置
# ==================================================
GF_SECURITY_DISABLE_GRAVATAR=true
GF_SECURITY_COOKIE_SECURE=false
GF_SECURITY_COOKIE_SAMESITE=lax
GF_SECURITY_ALLOW_EMBEDDING=false

# ==================================================
# 认证与用户策略
# ==================================================
GF_AUTH_DISABLE_LOGIN_FORM=false
GF_AUTH_ANONYMOUS_ENABLED=false

GF_USERS_ALLOW_SIGN_UP=false
GF_USERS_ALLOW_ORG_CREATE=false
GF_USERS_AUTO_ASSIGN_ORG=true
GF_USERS_AUTO_ASSIGN_ORG_ROLE=Viewer

# ==================================================
# 时区与时间格式(Zabbix 场景非常关键)
# ==================================================
GF_DATE_FORMATS_DEFAULT_TIMEZONE=Asia/Shanghai
GF_DATE_FORMATS_INTERVAL_SECOND=HH:mm:ss
GF_DATE_FORMATS_INTERVAL_MINUTE=HH:mm
GF_DATE_FORMATS_INTERVAL_HOUR=MM-DD HH:mm
GF_DATE_FORMATS_INTERVAL_DAY=MM-DD
GF_DATE_FORMATS_INTERVAL_MONTH=YYYY-MM
GF_DATE_FORMATS_INTERVAL_YEAR=YYYY

# ==================================================
# 日志配置
# ==================================================
GF_LOG_MODE=console file
GF_LOG_LEVEL=info

# ==================================================
# 插件策略(Zabbix 插件)
# ==================================================
GF_PLUGINS_ENABLE_ALPHA=false
GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=alexanderzobnin-zabbix-app

# ==================================================
# 性能与功能
# ==================================================
GF_RENDERING_CONCURRENT_RENDER_REQUEST_LIMIT=10
GF_EXPLORE_ENABLED=true

登录如下所示,登录账号名和密码基于签名的env

admin/ChangeMe_123!

登录后如下所示

六、Grafana 核心配置项(生产必看)

如果docker-compose的env配置过下面可以不用再配

1️⃣ 修改默认管理员密码

登录后第一件事:

Profile → Change Password

2️⃣ 禁止匿名访问(生产必须)

[auth.anonymous]
enabled = false

3️⃣ 设置时区(避免图表错位)

[date_formats]
default_timezone = Asia/Shanghai

4️⃣ 插件目录持久化(非常重要)

/var/lib/grafana/plugins

否则:

  • 容器重建 → 插件全丢


七、Grafana 插件安装(以 Zabbix 为例)

1️⃣ 官方方式(推荐)

docker exec -it grafana grafana-cli plugins install alexanderzobnin-zabbix-app
docker restart grafana

2️⃣ Web 界面安装

Administration → Plugins → 搜索 Zabbix

虽然在env的策略里放行了Zabbix插件

但是低版本的grafana在市场里还是都不到zabbix,由于grafana所在的环境不能访问国外网站。

高版本的可以搜到

如果上面两种方式国内网络默认都不能下载,因此登录下面网站进行离线下载安装

https://grafana.com/grafana/plugins/alexanderzobnin-zabbix-app/?tab=installation

可通过手动方式离线下载安装插件

但是zabbix的插件具有滞后性,目前最新版本的Zabbix为6版本,并且依赖的Grafana的版本要大于11.6

如果是离线安装插件,把插件目录放到持久化路径里:

/data/grafana/plugins/alexanderzobnin-zabbix-app

然后一定要:

docker-compose down
docker-compose up -d

验证插件是否加载成功:

docker logs grafana | grep -i zabbix

看到类似:

  • Registering plugin alexanderzobnin-zabbix-app
    就说明 OK。

Grafana 不会“热加载”,需要让 容器里的 Grafana 进程重新扫描插件目录。Docker 本身不需要“读取”,因为 bind mount 是实时映射的——关键是 Grafana 只在启动时加载插件

  • ✅ 你把文件复制到宿主机 /data/grafana/plugins,容器里 /var/lib/grafana/plugins 立刻就能看到

  • ❌ 但 Grafana 不会自动加载新插件

  • ✅ 必须 重启 Grafana 进程(通常就是重启容器 / 重建容器)

重启容器,让 Grafana 重新加载插件

docker-compose restart grafana

或:

docker restart grafana

适用于:只是新增插件目录/文件,env 没改

当改过 env/compose 时,就需要重建容器

docker-compose down
docker-compose up -d

适用于:你怀疑之前容器状态不干净、插件/权限/缓存有问题

⚠️ 只要你 /data/grafana/data 持久化了,Dashboard/用户数据不会丢

启用插件

添加新的数据源链接

选择新装的zabbix插件

查看数据源zabbix的容器内的地址

[root@bxddg compose]# docker inspect grafana --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
172.20.0.9
[root@bxddg compose]# docker inspect zbx7-server --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}'
172.20.0.6
[root@bxddg compose]#

添加数据源,添加zabbix的web访问地址,此处为容器外地址并添加接口的URL,grafana不直接链接zabbix的数据库,所以第一个认证为不认证,第二个认证为zabbix的网页认证

链接成功后如下所示

八、Grafana 生产常见问题与解决

❌ 1)Grafana 起了但访问不了

检查:

  • 端口映射

  • 防火墙

  • SELinux / 安全策略


❌ 2)Dashboard 丢失

原因:

  • /var/lib/grafana 未持久化


❌ 3)插件安装后不可用

原因:

  • 版本不兼容

  • Grafana 主版本过新


九、Grafana 在企业中的正确使用姿势

推荐用途

✅ 监控大屏
✅ 运维可视化
✅ SLA 展示
✅ 多系统汇总

不推荐用途

❌ 替代监控系统
❌ 复杂告警逻辑


添加测试仪表盘

选择已经添加的数据源


Comment