Docker 部署 Zabbix 踩坑全记录(Alibaba Cloud Linux 3)

作者:司陌笙

环境:阿里云 ECS / Alibaba Cloud Linux 3

标签:Docker、Zabbix、排错、阿里云、运维学习

一、项目背景

最近在学习 Docker 容器化部署,为了练手,我在 阿里云 ECS(Alibaba Cloud Linux 3)​ 上尝试用 Docker Compose 一键部署 Zabbix 监控系统。

由于我这台服务器上还跑着 WordPress 博客,所以在部署过程中踩了不少坑。

这篇文章把 从 0 到能监控​ 的全过程、报错原因和解决方案做了一个系统总结。

二、环境准备(避坑第一步)

1️⃣ 系统版本

cat /etc/os-release

确认是 Alibaba Cloud Linux 3


2️⃣ 安装 Docker & Docker Compose

⚠️ ALinux 3 的坑:

  • docker-compose(Python 版)已从默认仓库移除
  • 推荐使用 Docker Compose v2
dnf install -y docker
systemctl enable docker
systemctl start docker

验证:

docker compose version

3️⃣ 阿里云安全组放行端口

端口用途
8080Zabbix Web
10051Zabbix Server
10050Zabbix Agent

⚠️ 很多人卡在“页面打不开”,其实就是安全组没放行。

三、Docker 部署 Zabbix(核心架构)

1️⃣ 服务组成

服务作用
mysql存储监控数据
zabbix-server核心服务端
zabbix-webWeb 前端
zabbix-agent被监控端

2️⃣ 关键配置(端口冲突解决方案)

由于 WordPress 已占用 80 端口,Zabbix Web 必须改端口:

ports:
  - "8080:8080"

访问方式:

http://ECS公网IP:8080

四、踩坑实录 & 排错思路(重点)

坑 1:MySQL 版本不兼容

报错:

Unable to start Zabbix server due to unsupported MySQL database version (8.00.27).

原因:

  • Zabbix 6.4 要求 MySQL ≥ 8.0.30
  • 默认镜像版本过低

解决方案:

  • 升级 MySQL 镜像
  • 或配置 AllowUnsupportedDBVersions=1(测试环境)

坑 2:Zabbix Server 一直 Restarting

现象:

docker compose ps
# zabbix-server 状态为 Restarting

排查:

docker compose logs zabbix-server

根因:

  • 数据库字符集不兼容
  • MySQL 版本过低

坑 3:Agent 连接被拒(经典)

报错:

Received empty response from Zabbix Agent at [172.17.0.1].
Assuming that agent dropped connection because of access permissions.

原因(Docker 特有):

  • Web 页面 Interface 填了 172.17.0.1
  • Agent 只允许 zabbix-server或特定 Hostname

正确做法:

  • Interface 填 Agent 容器真实 IP
  • Hostname 在 Web 与 Agent 中保持一致

坑 4:Web 页面提示 “Zabbix server is not running”

原因:

  • Server 容器未启动
  • 数据库连不上
  • Agent 未注册成功

五、关键排错命令(考试/面试常考)

# 查看容器状态
docker compose ps

# 查看日志
docker compose logs zabbix-server

# 查看端口占用
sudo ss -lntp | grep 80

# 查看 Docker 网络
docker network ls

六、最终成果

Zabbix Web 正常访问

成功监控本机

与 WordPress 和平共存

七、学习收获总结

通过这次实战,我掌握了:

  • Docker Compose 基本用法
  • Zabbix 架构(Agent / Server / DB / Web)
  • 阿里云安全组配置
  • 容器间网络通信原理
  • 日志排错思路

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注