使用 Docker 离线部署 Zabbix 监控
本文详细介绍了Zabbix监控系统在内网环境中的离线部署方案。首先在外网环境准备Docker环境并下载Zabbix相关镜像(包括Server、Web、Agent等),然后将镜像打包传输至内网服务器(10.1.14.193)。在内网环境加载镜像后,通过docker-compose.yml文件配置并启动Zabbix服务组件(MySQL、Server、Web界面)。同时在Agent节点(10.1.14.
·
目录
1 准备外网环境设备
1.1 安装 Docker
参考文章:https://blog.csdn.net/m0_75254642/article/details/156724003?spm
1.2 下载 Zabbix 所需镜像
# 核心镜像
docker pull mysql:8.0
docker pull zabbix/zabbix-server-mysql:6.0-ubuntu-latest
docker pull zabbix/zabbix-web-nginx-mysql:6.0-ubuntu-latest
docker pull zabbix/zabbix-agent:6.0-ubuntu-latest
# 可选管理工具
docker pull portainer/portainer-ce:latest
docker pull adminer:latest
1.3 保存镜像为本地文件
# 创建存放目录
mkdir zabbix-docker-offline
# 进入创建的目录
cd zabbix-docker-offline
# 导出 MySQL 8.0
docker save -o mysql-8.0.tar mysql:8.0
# 导出 Zabbix Server
docker save -o zabbix-server-mysql-6.0.tar zabbix/zabbix-server-mysql:6.0-ubuntu-latest
# 导出 Zabbix Web
docker save -o zabbix-web-nginx-mysql-6.0.tar zabbix/zabbix-web-nginx-mysql:6.0-ubuntu-latest
# 导出 Zabbix Agent
docker save -o zabbix-agent-6.0.tar zabbix/zabbix-agent:6.0-ubuntu-latest
# 导出 Portainer
docker save -o portainer-ce.tar portainer/portainer-ce:latest
# 导出 Adminer
docker save -o adminer.tar adminer:latest
# 验证导出是否成功
ls -lh
# 打包本地文件
# 打包传输 zabbix-docker-offline 目录里的文件
tar zcvf zabbix-docker-offline.tar.gz zabbix-docker-offline/
2 内网环境部署(10.1.14.193)
2.1 传输文件并且加载镜像
# 将打包好的 zabbix-docker-offline.tar.gz 文件上传至内网服务器 /opt 目录
mkdir -p /opt/zabbix-docker
tar zxvf zabbix-docker-offline.tar.gz -C /opt/zabbix-docker
# 加载所有镜像
docker load -i /opt/zabbix-docker/zabbix-docker-offline/mysql-8.0.tar
docker load -i /opt/zabbix-docker/zabbix-docker-offline/zabbix-server-mysql-6.0.tar
docker load -i /opt/zabbix-docker/zabbix-docker-offline/zabbix-web-nginx-mysql-6.0.tar
docker load -i /opt/zabbix-docker/zabbix-docker-offline/zabbix-agent-6.0.tar
docker load -i /opt/zabbix-docker/zabbix-docker-offline/portainer-ce.tar
docker load -i /opt/zabbix-docker/zabbix-docker-offline/adminer.tar
2.2 创建持久化目录
mkdir -p /data/zabbix/{mysql,server}
chmod -R 777 /data/zabbix
2.3 编写 docker-compose.yml
version: '3.8'
services:
mysql-server:
image: mysql:8.0
container_name: zabbix-mysql
restart: unless-stopped
environment:
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: Fit2cloud... # 替换为你的真实密码
MYSQL_ROOT_PASSWORD: Fit2cloud... # 替换为你的真实密码
volumes:
- /data/zabbix/mysql:/var/lib/mysql
networks:
- zabbix-net
command:
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
--default-authentication-plugin=mysql_native_password
--log_bin_trust_function_creators=1 # 新增:解决函数创建权限问题(关键)
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-pFit2cloud..."] # 替换为你的root密码
interval: 10s
timeout: 5s
retries: 5
zabbix-server:
image: zabbix/zabbix-server-mysql:6.0-ubuntu-latest
container_name: zabbix-server
restart: unless-stopped
environment:
DB_SERVER_HOST: mysql-server
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: Fit2cloud... # 替换为你的真实密码
ZBX_ENABLE_SNMP_TRAPS: "true"
DB_SERVER_PORT: 3306
volumes:
- /data/zabbix/server:/var/lib/zabbix
networks:
- zabbix-net
ports:
- "10051:10051"
depends_on:
mysql-server:
condition: service_healthy
zabbix-web:
image: zabbix/zabbix-web-nginx-mysql:6.0-ubuntu-latest
container_name: zabbix-web
restart: unless-stopped
environment:
DB_SERVER_HOST: mysql-server
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: Fit2cloud... # 替换为你的真实密码
ZBX_SERVER_HOST: zabbix-server
PHP_TZ: Asia/Shanghai
networks:
- zabbix-net
ports:
- "80:8080"
- "443:8443"
depends_on:
- zabbix-server
portainer:
image: portainer/portainer-ce:latest
container_name: portainer
restart: always
ports:
- "9000:9000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /data/zabbix/portainer:/data
networks:
- zabbix-net
networks:
zabbix-net:
driver: bridge
2.4 启动 Zabbix 服务
cd /opt/zabbix-docker
docker compose up -d
容器状态

3 Agent 节点部署(10.1.14.123)
3.1 加载 Agent 镜像
# 提前创建 /opt/zabbix-docker 目录并将 zabbix-agent.tar 文件上传至 /opt/zabbix-docker 目录
docker load -i /opt/zabbix-docker/zabbix-agent.tar
3.2 启动容器
docker run -d \
--name zabbix-agent \
--privileged \
-e ZBX_SERVER_HOST=10.1.14.193 \ # zabbix 服务端 IP
-e ZBX_HOSTNAME=ubuntu-14-123 \ # 被监控服务器名称
-p 10050:10050 \
-v /:/rootfs \
-v /var/run:/var/run \
zabbix/zabbix-agent:6.0-ubuntu-latest
4 初始化配置
1. 访问 Web 界面
- 浏览器访问 http://10.1.14.193
- 默认凭证:Admin/zabbix
2. 添加监控主机
登录后进入 Configuration → Hosts → Create host
配置项:Host name: ubuntu-14-123
关联模板:Linux by Zabbix agent
Groups: Linux servers
Agent interfaces: 10.1.14.123:10050

添加完成后重启被监控端的 zabbix-agent 容器
docker restart zabbix-agent

详细的 Zabbix 操作请参考:https://blog.csdn.net/m0_75254642/article/details/150774030?spm
本文部署参考:https://blog.csdn.net/weixin_61933730/article/details/147045138?ops_request_misc
更多推荐


所有评论(0)