您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# DockerV19.03.1搭建Zabbix4.2.5全流程指南
## 一、环境准备与规划
### 1.1 系统要求
- **操作系统**:Ubuntu 18.04 LTS / CentOS 7.6+
- **Docker版本**:19.03.1(需验证`docker --version`)
- **硬件配置**:
- 最低配置:2核CPU/4GB内存/20GB磁盘
- 推荐配置:4核CPU/8GB内存/50GB磁盘(生产环境)
### 1.2 网络规划建议
| 服务名称 | 容器端口 | 宿主机端口 | 协议 |
|----------------|----------|------------|-------|
| Zabbix Server | 10051 | 10051 | TCP |
| Zabbix Web | 80 | 8080 | TCP |
| MySQL | 3306 | 3306 | TCP |
| Zabbix Agent | 10050 | 10050 | TCP |
## 二、Docker环境配置
### 2.1 安装Docker CE 19.03.1
```bash
# Ubuntu示例
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get install -y docker-ce=5:19.03.1~3-0~ubuntu-$(lsb_release -cs)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF
sudo systemctl restart docker
docker network create --subnet 172.20.0.0/16 zabbix-net
docker run -d \
--name zabbix-mysql \
--network zabbix-net \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-v /data/mysql:/var/lib/mysql \
-p 3306:3306 \
mysql:5.7 \
--character-set-server=utf8 \
--collation-server=utf8_bin
docker run -d \
--name zabbix-server \
--network zabbix-net \
-e DB_SERVER_HOST="zabbix-mysql" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
-v /etc/localtime:/etc/localtime:ro \
-v /data/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
-v /data/zabbix/externalscripts:/usr/lib/zabbix/externalscripts \
-p 10051:10051 \
zabbix/zabbix-server-mysql:4.2.5
docker run -d \
--name zabbix-web \
--network zabbix-net \
-e DB_SERVER_HOST="zabbix-mysql" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e PHP_TZ="Asia/Shanghai" \
-p 8080:80 \
zabbix/zabbix-web-nginx-mysql:4.2.5
# 等待MySQL容器完全启动(约2分钟)
sleep 120
# 导入初始schema
docker exec -i zabbix-mysql mysql -uroot -proot_pwd zabbix < /usr/share/doc/zabbix-server-mysql*/create.sql.gz
http://<宿主IP>:8080
docker run -d \
--name zabbix-agent \
--network zabbix-net \
-e ZBX_HOSTNAME="docker-host" \
-e ZBX_SERVER_HOST="zabbix-server" \
-e ZBX_SERVER_PORT=10051 \
-v /:/rootfs:ro \
-v /var/run:/var/run:ro \
-v /sys:/sys:ro \
--privileged \
zabbix/zabbix-agent:4.2.5
Name: Docker Network Discovery
IP range: 172.20.0.1-172.20.0.254
Checks: Zabbix agent "system.uname"
问题现象 | 可能原因 | 解决方案 |
---|---|---|
Web界面502错误 | PHP-FPM未启动 | docker restart zabbix-web |
Server无法连接MySQL | 数据库未初始化完成 | 等待5分钟后检查日志 |
监控数据不更新 | 时间不同步 | 检查容器时区配置 |
# 查看Server日志
docker logs -f zabbix-server
# 查看MySQL日志
docker exec zabbix-mysql tail -f /var/log/mysql/error.log
docker update \
--cpus 2 \
--memory 4g \
--memory-swap 6g \
zabbix-server
# 在MySQL容器中创建my.cnf
docker exec -it zabbix-mysql bash -c 'cat > /etc/mysql/conf.d/zabbix.cnf <<EOF
[mysqld]
innodb_buffer_pool_size=1G
innodb_log_file_size=256M
max_connections=200
EOF'
docker exec zabbix-mysql mysqldump -uroot -proot_pwd zabbix | gzip > zabbix_backup_$(date +%Y%m%d).sql.gz
tar czvf zabbix_configs_$(date +%Y%m%d).tar.gz /data/zabbix
docker stop zabbix-web && docker rm zabbix-web
docker pull zabbix/zabbix-web-nginx-mysql:4.4.0
# 使用原有参数重新运行容器
注意事项:本文基于Docker 19.03.1和Zabbix 4.2.5编写,其他版本可能需要调整配置参数。生产环境部署前建议进行充分测试。 “`
该文档包含约2300字,采用Markdown格式编写,包含: - 多级标题结构 - 代码块(bash命令) - 表格(环境规划/问题排查) - 有序/无序列表 - 强调文本(> 注意事项) - 网络拓扑说明 - 版本兼容性提示
可根据实际环境需求调整端口映射、密码等参数。建议部署前通读全文理解各组件关系。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。