Docker笔记-Docker搭建最新版zabbix服务端(2023-07-31)
前言
一开始问chartgpt上,搭建的思路是对的,但命令和细节有问题,最后还是依靠StackOverflow解决的。一开始在amd的linux上搭建好docker版的zabbix,但放到arm的机器上就报错了,原因是指令集不匹配,最后跑到阿里云,买了arm的按量付费的机器,最后在arm的机器上把zabbix搭建起来了。(此篇博文公开到互联网上的时间为:2023-11-27)
搭建流程
在docker中搭建zabbix服务端需要3个镜像:
- 数据库镜像:用于存储zabbix的相关数据;
- zabbix服务端:开放10051端口,后期的,客户端就是连到服务端的这个程序上;
- zabbix前端:也就是对应的web页面。
具体步骤如下:
- 安装docker3个镜像:
docker pull mysql:latest docker pull zabbix/zabbix-server-mysql:latest docker pull zabbix/zabbix-web-nginx-mysql:latest
- 创建Docker网络:为了让Zabbix容器之间能够相互通信,我们需要创建一个Docker网络。执行以下命令:
docker network create zabbix_network
- 创建MySQL容器:
docker run --name zabbix-db -t \ -p 3306:3306 \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix_pwd" \ -e MYSQL_ROOT_HOST="%" \ -e MYSQL_ROOT_PASSWORD="root_pwd" \ --network=zabbix_network \ -v mysql-data22:/var/lib/mysql \ --restart unless-stopped \ --cap-add=sys_nice \ -d mysql \ --character-set-server=utf8 \ --collation-server=utf8_bin \ --default-authentication-plugin=mysql_native_password \ --disable-log-bin
- 创建Zabbix服务器容器:
docker run --name zabbix-server --network zabbix_network -e DB_SERVER_HOST="zabbix-db" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix_pwd" -d zabbix/zabbix-server-mysql
- 创建Zabbix Web容器:
docker run --name zabbix-web-nginx-mysql -t \ -e DB_SERVER_HOST="zabbix-db" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="zabbix_pwd" \ -e ZBX_SERVER_HOST="zabbix-db" \ -e PHP_TZ=Asia/Shanghai \ --network zabbix_network \ -p 8080:8080 \ -d zabbix/zabbix-web-nginx-mysql:latest
- 访问Zabbix Web界面:现在可以通过浏览器访问Zabbix Web界面。在地址栏中输入http://服务器IP:8080,用户名/密码:Admin/zabbix
总结
- 不同cpu架构的docker镜像不能运行,如果是docker项目测试环境与生产环境的cpu架构最好一致,避免出现问题。
- 测试环境与生产环境的docker版本最好也保持一致。
- 目前(2023-07-31)chatgpt只能是一个辅助工具,他给出的解决方案大体思路是对的,但细节还有待查验,chatgpt解决不了的可以去StackOverflow去查,一般都能查到。