1. 环境准备与要求
1.1系统要求
- 推荐 2GB 以上内存
- 20GB 以上磁盘空间
- 互联网连接(用于拉取 Docker 镜像)
- 操作系统:Linux(推荐 Ubuntu 20.04+/CentOS 7+)、Windows 10+(带 WSL2)或 macOS
2. 配置系统基础阿里源
1.1 替换系统默认源
# 备份原有源配置
sudo mkdir -p /etc/yum.repos.d/backup
sudo mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
# 下载阿里的CentOS 8源(使用CentOS Stream兼容版本)
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo
# 下载阿里的EPEL源
sudo curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-archive-8.repo
# 替换EPEL源中的地址为阿里源
sudo sed -i 's|^metalink=|#metalink=|g' /etc/yum.repos.d/epel.repo
sudo sed -i 's|^#baseurl=https://download.fedoraproject.org/pub/epel/|baseurl=https://mirrors.aliyun.com/epel/|g' /etc/yum.repos.d/epel.repo
# 清除缓存并生成新缓存
sudo dnf clean all
sudo dnf makecache
2. 使用阿里源安装 Docker
2.1 添加阿里 Docker源
# 安装依赖
sudo dnf install -y yum-utils device-mapper-persistent-data lvm2
# 添加阿里Docker CE源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 清除并生成缓存
sudo dnf clean all
sudo dnf makecache
2.2 安装 Docker
# 安装Docker组件
sudo dnf install -y docker-ce docker-ce-cli containerd.io
# 启动Docker并设置开机自启
sudo systemctl enable --now docker
# 将当前用户添加到docker组
sudo usermod -aG docker $USER
# 验证安装
docker --version
2.3 配置阿里 Docker 镜像加速
# 创建Docker配置目录
sudo mkdir -p /etc/docker
# 配置阿里镜像加速器
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://registry.cn-hangzhou.aliyuncs.com",
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}
EOF
# 重启Docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
3. 安装 Docker Compose(使用阿里源)
# 从阿里镜像源下载Docker Compose
sudo curl -L "https://mirrors.aliyun.com/docker-toolbox/linux/compose/2.17.2/docker-compose-Linux-x86_64" -o /usr/local/bin/docker-compose
# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 创建软链接
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# 验证安装
docker-compose --version
4. 防火墙配置
sudo systemctl enable --now firewalld
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=10051/tcp
sudo firewall-cmd --reload
5. 部署 Zabbix
5.1 创建部署目录
sudo mkdir -p /opt/zabbix/{mysql-init,zabbix-agent-conf,backups}
sudo chown -R $USER:$USER /opt/zabbix
cd /opt/zabbix
5.2 创建 Docker Compose 配置文件
version: '3.8'
services:
# MySQL数据库服务
zabbix-mysql:
# 使用阿里镜像仓库的MySQL镜像
image: registry.cn-hangzhou.aliyuncs.com/library/mysql:8.0
container_name: zabbix-mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: SecureRoot123!
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: SecureZabbix123!
volumes:
- mysql-data:/var/lib/mysql
- ./mysql-init:/docker-entrypoint-initdb.d
networks:
- zabbix-network
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
security_opt:
- label:disable
deploy:
resources:
limits:
cpus: '1'
memory: 1G
# Zabbix Server服务
zabbix-server:
# 使用阿里镜像仓库的Zabbix Server镜像
image: registry.cn-hangzhou.aliyuncs.com/zabbix/zabbix-server-mysql:alpine-latest
container_name: zabbix-server
restart: always
environment:
DB_SERVER_HOST: zabbix-mysql
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: SecureZabbix123!
MYSQL_ROOT_PASSWORD: SecureRoot123!
ZBX_ENABLE_SNMP_TRAPS: "true"
ZBX_LOGLEVEL: 3
volumes:
- zabbix-server-data:/var/lib/zabbix
- zabbix-snmptraps:/var/lib/zabbix/snmptraps
- ./zabbix-scripts:/usr/lib/zabbix/externalscripts
ports:
- "10051:10051"
depends_on:
- zabbix-mysql
networks:
- zabbix-network
security_opt:
- label:disable
deploy:
resources:
limits:
cpus: '1'
memory: 1G
# Zabbix Web界面
zabbix-web:
# 使用阿里镜像仓库的Zabbix Web镜像
image: registry.cn-hangzhou.aliyuncs.com/zabbix/zabbix-web-nginx-mysql:alpine-latest
container_name: zabbix-web
restart: always
environment:
ZBX_SERVER_HOST: zabbix-server
DB_SERVER_HOST: zabbix-mysql
MYSQL_DATABASE: zabbix
MYSQL_USER: zabbix
MYSQL_PASSWORD: SecureZabbix123!
MYSQL_ROOT_PASSWORD: SecureRoot123!
PHP_TZ: Asia/Shanghai
PHP_MEMORY_LIMIT: 256M
ports:
- "80:8080"
depends_on:
- zabbix-server
- zabbix-mysql
networks:
- zabbix-network
security_opt:
- label:disable
deploy:
resources:
limits:
cpus: '0.5'
memory: 512M
# Zabbix Agent
zabbix-agent:
# 使用阿里镜像仓库的Zabbix Agent镜像
image: registry.cn-hangzhou.aliyuncs.com/zabbix/zabbix-agent:alpine-latest
container_name: zabbix-agent
restart: always
environment:
ZBX_SERVER_HOST: zabbix-server
ZBX_HOSTNAME: "CentOS 8 Server"
ZBX_PASSIVE_ALLOW: "true"
ZBX_ACTIVE_ALLOW: "true"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /etc/localtime:/etc/localtime:ro
- ./zabbix-agent-conf:/etc/zabbix/zabbix_agentd.d
privileged: true
depends_on:
- zabbix-server
networks:
- zabbix-network
security_opt:
- label:disable
networks:
zabbix-network:
driver: bridge
volumes:
mysql-data:
zabbix-server-data:
zabbix-snmptraps:
5.3 启动 Zabbix 服务
# 拉取镜像并启动服务
docker-compose up -d
# 查看启动状态
docker-compose ps
# 查看日志(如有需要)
docker-compose logs -f
6. 设置自动启动服务
# 创建系统服务文件
sudo tee /etc/systemd/system/zabbix-docker.service <<-'EOF'
[Unit]
Description=Zabbix Docker Service
After=docker.service
Requires=docker.service
[Service]
Type=oneshot
WorkingDirectory=/opt/zabbix
ExecStart=/usr/bin/docker-compose up -d
ExecStop=/usr/bin/docker-compose down
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
EOF
# 启用服务
sudo systemctl daemon-reload
sudo systemctl enable --now zabbix-docker.service
7. 配置系统时间同步
# 安装chrony
sudo dnf install -y chrony
# 替换chrony源为阿里NTP服务器
sudo sed -i 's|^pool .*|pool ntp.aliyun.com iburst|g' /etc/chrony.conf
# 重启chrony服务
sudo systemctl restart chronyd
sudo systemctl enable chronyd
# 验证时间同步
chronyc sources
8. 访问 Zabbix Web 界面
- 打开浏览器访问服务器 IP 地址:
http://你的服务器IP - 使用默认账号登录:
- 用户名:
Admin - 密码:
zabbix
- 用户名:
- 登录后请立即修改默认密码
9. 日常维护命令
# 停止Zabbix服务
docker-compose down
# 重启Zabbix服务
docker-compose restart
# 更新Zabbix镜像(从阿里源)
docker-compose pull
docker-compose up -d
# 查看Zabbix Server日志
docker-compose logs -f zabbix-server
通过以上配置,所有软件包和 Docker 镜像都会优先从阿里源获取,大幅提升国内环境下的下载速度和部署效率。如果后续需要升级 Zabbix 版本,只需修改docker-compose.yml中的镜像标签,并执行docker-compose pull && docker-compose up即可
1828

被折叠的 条评论
为什么被折叠?



