一、搭建过程
创建专用网卡
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net
1.创建数据库
docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="123qwe.." \
-e MYSQL_ROOT_PASSWORD="123qwe.." \
-e TZ=Asia/Shanghai \
--network=zabbix-net \
--restart unless-stopped \
-p 13306:3306 \
-d docker.io/mysql:8.2.0 \
--character-set-server=utf8 --collation-server=utf8_bin \
--default-authentication-plugin=mysql_native_password
在数据库初始化完成之前先不要创建其他容器,可以使用docker logs -f 容器名称查看数据库启动日志等待数据库创建完成。
生产环境下不需要将3306 端口暴露到公网,这里是测试环境,为了方便才暴露的。
2.创建网关
docker run --name zabbix-java-gateway -t \
--network=zabbix-net \
--restart unless-stopped \
-e TZ=Asia/Shanghai \
-d zabbix/zabbix-java-gateway:alpine-7.0-latest
3.创建zabbix-server-mysql
这步需要等待,时间较长,该组件通过连接上一步创建的数据库,创建zabbix所需要的表。等待创建完成后,在创建其他组件。
docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="123qwe.." \
-e MYSQL_ROOT_PASSWORD="123qwe.." \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
-e TZ=Asia/Shanghai \
--network=zabbix-net \
-p 10051:10051 \
--restart unless-stopped \
-d zabbix/zabbix-server-mysql:alpine-7.0-latest
4.创建zabbix-web-nginx-mysql
docker run --name zabbix-web-nginx-mysql -t \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="123qwe.." \
-e MYSQL_ROOT_PASSWORD="123qwe.." \
--network=zabbix-net \
-p 80:8080 \
--restart unless-stopped \
-d zabbix/zabbix-web-nginx-mysql:alpine-7.0-latest
zabbix默认用户名:`Admin` ,密码:`zabbix`。
登录测试:
http://ip:80
5.遇到的问题
mysql数据库如果选用mysql8.4.0版版本,启动后日志会报以下错误:
Fatal glibc error: CPU does not support x86-64-v2
是因为mysql8.4.0镜像不支持老版本的cpu导致的。
解决方式:使用低版本的镜像(mysql:8.2.0)
评论区