群晖dsm7下部署zabbix和grafana

针对在多个完全物理隔离的专网环境下部署,且底层硬件为群晖 7.1 的场景,最快捷、最易于复制的方案是采用 Docker 容器化部署结合镜像离线导出的方式

群晖 7.1 原生支持 Docker(套件中心名为 Docker)。你可以先在任意一台可联网的电脑或测试服务器上准备好所有组件,然后通过 U 盘将环境“搬运”到三个专网的群晖中。

以下是标准的离网部署全流程方案:

一、 架构与组件规划

整个监控平台需要以下四个核心组件,我们将使用 Docker Compose 来统一编排:

  • 数据库: MySQL 8.0 或 MariaDB(用于存储 Zabbix 采集的数据)。
  • Zabbix Server: 后端核心服务(负责采集网络设备和服务器流量)。
  • Zabbix Web: 前端管理界面(基于 Nginx,用于配置监控项)。
  • Grafana: 数据可视化大屏(连接 Zabbix 数据库或 API 进行精美绘图)。

二、 互联网测试环境准备(打包阶段)

在有网络的测试机(需已安装 Docker 和 Docker Compose)上执行以下操作,准备“离线安装包”。

  • 拉取所需镜像: 在命令行执行以下命令,将镜像拉取到本地。

    Bash

    1
    2
    3
    4
    docker pull mysql:8.0
    docker pull zabbix/zabbix-server-mysql:alpine-6.4-latest
    docker pull zabbix/zabbix-web-nginx-mysql:alpine-6.4-latest
    docker pull grafana/grafana:latest
  • 导出镜像为离线文件: 将拉取好的镜像打包为 .tar 文件,方便拷贝。

    Bash

    1
    2
    3
    4
    docker save -o mysql8.tar mysql:8.0
    docker save -o zabbix-server.tar zabbix/zabbix-server-mysql:alpine-6.4-latest
    docker save -o zabbix-web.tar zabbix/zabbix-web-nginx-mysql:alpine-6.4-latest
    docker save -o grafana.tar grafana/grafana:latest
  • 下载 Grafana 的 Zabbix 插件(极其关键): Grafana 默认不支持 Zabbix 数据源,必须安装 alexanderzobnin-zabbix-app 插件。由于专网无法在线安装,必须提前下载。

    1. 访问 Grafana 插件官网寻找该插件的离线 zip 包。
    2. 下载并解压,将解压后的文件夹保留,稍后通过目录映射的方式挂载到 Grafana 容器中。

三、 专网群晖环境部署(实施阶段)

将上述 4 个 .tar 镜像文件、Grafana 插件文件夹以及编写好的 docker-compose.yml 文件通过 U 盘拷贝至专网环境的电脑,并上传到群晖的共享文件夹(例如 /volume1/docker/monitor/)。

  • 准备群晖环境

    1. 在群晖“套件中心”安装好 Docker。
    2. 在“控制面板” -> “终端机和 SNMP”中,启用 SSH 功能。
  • 导入离线镜像: 通过 SSH 工具(如 Xshell 或 PuTTY)登录群晖后台,切换到 root 权限(sudo -i),进入你存放 .tar 文件的目录,执行导入命令:

    Bash

    1
    2
    3
    4
    docker load -i mysql8.tar
    docker load -i zabbix-server.tar
    docker load -i zabbix-web.tar
    docker load -i grafana.tar
  • 创建数据持久化目录并放置插件: 在群晖的 /volume1/docker/monitor/ 下创建子目录,用于存放数据库文件和 Grafana 数据,防止容器重启后数据丢失。 将提前下载解压好的 Zabbix 插件文件夹放入 /volume1/docker/monitor/grafana/plugins/ 目录中。

  • 一键启动服务: 在包含 docker-compose.yml 文件的目录下执行:

    Bash

    1
    docker-compose up -d

四、 平台联调与验证

  • 访问 Zabbix: 浏览器输入 http://群晖IP:Zabbix映射端口(默认账号:Admin,密码:zabbix)。进入后,可以开始通过 SNMP 协议添加专网内的网络设备。
  • 访问 Grafana: 浏览器输入 http://群晖IP:Grafana映射端口(默认账号密码均为 admin)。
  • 配置联动: 进入 Grafana 设置,在 Plugins 中启用已离线挂载的 Zabbix 插件。然后在 Data Sources 中添加 Zabbix,填入 Zabbix Web 的 API 地址(通常为 http://群晖IP:Zabbix映射端口/api_jsonrpc.php)及账密,测试联通性。

这套流程走通一次后,在另外两个专网群晖上只需重复“拷贝文件 -> 导入镜像 -> docker-compose up -d”的动作,几分钟内即可完成相同监控平台的克隆。

需要编写一份用于统筹这四个组件的 docker-compose.yml 配置文件代码,里面会包含必要的网络互通设置和目录挂载参数。

这份 docker-compose.yml 文件是整个离线监控平台的核心“图纸”。它定义了数据库、Zabbix 后端、Zabbix 前端和 Grafana 如何相互连接,以及数据应该存放在群晖的哪个具体位置以保证重启不丢失。

在将配置文件放入群晖之前,我们需要先在群晖的 /volume1/docker/monitor/ 目录下建立好对应的文件夹结构。

目录结构准备

请在群晖的 SSH 命令行中,或者直接通过群晖 File Station,创建以下目录结构(这一步非常重要,用于持久化保存你的监控数据和离线插件):

Plaintext

1
2
3
4
5
6
7
8
9
/volume1/docker/monitor/
├── docker-compose.yml # 核心配置文件(代码见下方)
├── mysql/
│ └── data/ # 用于存放 MySQL 数据库文件
├── zabbix/
│ └── alertscripts/ # 用于存放未来可能需要的自定义告警脚本
└── grafana/
├── data/ # 用于存放 Grafana 的面板配置数据
└── plugins/ # 👉 将下载好的 Zabbix 离线插件文件夹放在这里

注意:为了防止权限问题导致容器启动失败,建议在群晖 SSH 中给这些目录赋予最高权限(测试环境可先用 chmod -R 777 /volume1/docker/monitor/,跑通后再收紧权限)。


docker-compose.yml 配置文件

请新建一个名为 docker-compose.yml 的文件,并将以下内容完整复制进去。我已经为你配置好了容器间的内部网络互通和依赖顺序。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
version: '3.5'

# 定义容器间的内部独立网络
networks:
monitor_net:
driver: bridge

services:
# 1. 数据库节点
zabbix-db:
image: mysql:8.0
container_name: zabbix-db
restart: always
environment:
- MYSQL_ROOT_PASSWORD=root_password_123 # MySQL的Root密码,请自行修改
- MYSQL_USER=zabbix # 分配给Zabbix的数据库用户名
- MYSQL_PASSWORD=zabbix_pwd_123 # 分配给Zabbix的数据库密码
- MYSQL_DATABASE=zabbix # 初始化的数据库名
volumes:
- ./mysql/data:/var/lib/mysql # 数据库文件挂载到群晖本地
networks:
- monitor_net
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_bin
- --default-authentication-plugin=mysql_native_password

# 2. Zabbix Server (核心服务节点)
zabbix-server:
image: zabbix/zabbix-server-mysql:ubunt-6.4-latest
container_name: zabbix-server
restart: always
ports:
- "10051:10051" # 暴露给网络设备的SNMP Traps或Agent端口
environment:
- DB_SERVER_HOST=zabbix-db # 指向上面的数据库容器名
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix_pwd_123
- MYSQL_DATABASE=zabbix
- ZBX_CACHESIZE=512M # 根据群晖内存大小可适当调大
volumes:
- ./zabbix/alertscripts:/usr/lib/zabbix/alertscripts
- ./zabbix/fonts/DejaVuSans.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf
networks:
- monitor_net
depends_on:
- zabbix-db

# 3. Zabbix Web (前端管理界面)
zabbix-web:
image: zabbix/zabbix-web-nginx-mysql:ubuntu-6.4-latest
container_name: zabbix-web
restart: always
ports:
- "8080:8080" # 群晖本地访问Zabbix的端口,可修改左侧数字
environment:
- DB_SERVER_HOST=zabbix-db
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix_pwd_123
- MYSQL_DATABASE=zabbix
- ZBX_SERVER_HOST=zabbix-server # 指向上面的Zabbix Server容器名
- PHP_TZ=Asia/Shanghai # 设置为国内时区
networks:
- monitor_net
depends_on:
- zabbix-db
- zabbix-server

# 4. Grafana (数据可视化大屏)
grafana:
image: grafana/grafana:latest
container_name: grafana
restart: always
ports:
- "3000:3000" # 群晖本地访问Grafana的端口,可修改左侧数字
environment:
- GF_SECURITY_ADMIN_USER=admin # Grafana 初始账号
- GF_SECURITY_ADMIN_PASSWORD=admin # Grafana 初始密码
- GF_INSTALL_PLUGINS=alexanderzobnin-zabbix-app # 声明启用 Zabbix 插件
volumes:
- ./grafana/data:/var/lib/grafana # 面板数据持久化
- ./grafana/plugins:/var/lib/grafana/plugins # 挂载离线插件目录
networks:
- monitor_net

启动与验证说明

  1. 一键拉起服务: 在群晖的 SSH 终端中,cd /volume1/docker/monitor/ 进入该目录,然后执行:

    Bash

    1
    docker-compose up -d

    首次启动时,MySQL 初始化数据库结构需要大概 1-2 分钟,请稍作等待。

  2. 状态检查: 使用 docker ps 命令检查四个容器(zabbix-db, zabbix-server, zabbix-web, grafana)是否都处于 Up 状态。如果某个容器在重启,可以使用 docker logs 容器名 查看报错信息(通常是目录权限或密码配错)。

  3. 进入控制台

    • Zabbix 前端:浏览器访问 http://群晖IP:8080 (初始账号:Admin / 密码:zabbix,注意账号首字母大写)。
    • Grafana 前端:浏览器访问 http://群晖IP:3000 (初始账号:admin / 密码:admin)。

跑通这套流程后,这四个镜像包加上这个 yml 文件,就是你的“标准化离线部署包”,可以迅速复制到另外两个专网的群晖上。

你需要我接下来为你说明,平台拉起后,如何在 Zabbix 中通过 SNMP 协议添加第一台专网交换机进行流量监控,还是想先了解如何在 Grafana 中配置与 Zabbix 的联动大屏

群晖dsm7下部署zabbix和grafana

https://bg4vrg.com/post/20260222214148.html

作者

fei

发布于

2026-02-22

更新于

2026-02-22

许可协议

评论