群晖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
4docker 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
4docker 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插件。由于专网无法在线安装,必须提前下载。- 访问 Grafana 插件官网寻找该插件的离线 zip 包。
- 下载并解压,将解压后的文件夹保留,稍后通过目录映射的方式挂载到 Grafana 容器中。
三、 专网群晖环境部署(实施阶段)
将上述 4 个 .tar 镜像文件、Grafana 插件文件夹以及编写好的 docker-compose.yml 文件通过 U 盘拷贝至专网环境的电脑,并上传到群晖的共享文件夹(例如 /volume1/docker/monitor/)。
准备群晖环境:
- 在群晖“套件中心”安装好 Docker。
- 在“控制面板” -> “终端机和 SNMP”中,启用 SSH 功能。
导入离线镜像: 通过 SSH 工具(如 Xshell 或 PuTTY)登录群晖后台,切换到 root 权限(
sudo -i),进入你存放.tar文件的目录,执行导入命令:Bash
1
2
3
4docker 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 | /volume1/docker/monitor/ |
注意:为了防止权限问题导致容器启动失败,建议在群晖 SSH 中给这些目录赋予最高权限(测试环境可先用 chmod -R 777 /volume1/docker/monitor/,跑通后再收紧权限)。
docker-compose.yml 配置文件
请新建一个名为 docker-compose.yml 的文件,并将以下内容完整复制进去。我已经为你配置好了容器间的内部网络互通和依赖顺序。
1 | version: '3.5' |
启动与验证说明
一键拉起服务: 在群晖的 SSH 终端中,
cd /volume1/docker/monitor/进入该目录,然后执行:Bash
1
docker-compose up -d
首次启动时,MySQL 初始化数据库结构需要大概 1-2 分钟,请稍作等待。
状态检查: 使用
docker ps命令检查四个容器(zabbix-db,zabbix-server,zabbix-web,grafana)是否都处于Up状态。如果某个容器在重启,可以使用docker logs 容器名查看报错信息(通常是目录权限或密码配错)。进入控制台:
- Zabbix 前端:浏览器访问
http://群晖IP:8080(初始账号:Admin/ 密码:zabbix,注意账号首字母大写)。 - Grafana 前端:浏览器访问
http://群晖IP:3000(初始账号:admin/ 密码:admin)。
- Zabbix 前端:浏览器访问
跑通这套流程后,这四个镜像包加上这个 yml 文件,就是你的“标准化离线部署包”,可以迅速复制到另外两个专网的群晖上。
你需要我接下来为你说明,平台拉起后,如何在 Zabbix 中通过 SNMP 协议添加第一台专网交换机进行流量监控,还是想先了解如何在 Grafana 中配置与 Zabbix 的联动大屏?
群晖dsm7下部署zabbix和grafana

