Zabbix Docker安装是一个相对简便且高效的过程,它利用Docker容器技术来部署和运行Zabbix监控系统。
Zabbix Docker部署的实验目的
1.简化部署流程:Docker容器化技术将Zabbix及其依赖项打包成一个或多个镜像,通过简单的docker run命令即可快速启动Zabbix服务,大大简化了部署流程。
2.提高可移植性:Docker容器可以在任何支持Docker的环境中运行,这提高了Zabbix部署的可移植性,使得在不同环境之间迁移和部署变得更加容易。
3.易于维护和升级:Docker容器的隔离性使得Zabbix及其依赖项与其他服务隔离开来,降低了维护成本。同时,当需要升级Zabbix版本时,只需更新Docker镜像并重新启动容器即可完成升级。
4.学习和实践容器化技术:通过Docker部署Zabbix,可以学习和实践容器化技术,了解如何利用容器来封装、分发和运行应用程序。这对于掌握现代云计算和DevOps实践具有重要意义。
准备工作:
1.确保你的服务器上已经安装了Docker
2.为了加快Docker镜像的下载速度,你可以配置Docker加速器,例如阿里云的加速器
一、创建文件
cd /opt #进入opt目录
mkdir zabbix-docker #创建zabbix-docker文件
pwd #查看路径
cd /opt/zabbix-docker
二、创建目录
mkdir -p /data2/zabbix/zabbix-server 用于存储 Zabbix 服务器容器的配置文件等相关数据
mkdir -p /data2/zabbix/alertscripts 用于存储 Zabbix 服务器容器中的告警脚本
mkdir -p /data2/zabbix/fonts 用于存储 Zabbix Web 容器中的字体文件
mkdir -p /data2/zabbix/db 用于存储 MySQL 数据库容器的数据文件
mkdir -p /data2/zabbix/zabbix-server
mkdir -p /data2/zabbix/alertscripts
mkdir -p /data2/zabbix/fonts
mkdir -p /data2/zabbix/db
三、修改zabbix_server.conf
vi /data2/zabbix/zabbix-server/zabbix_server.conf
LogType=console
DBHost=zabbix-mysql
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
DBPort=3306
User=zabbix
四、中文简体文件添加
从主机(C:\Windows\Fonts,如图所示)上传一个.ttf的字体文件到/data2/zabbix/fonts目录
可使用rz命令,或者ftp,或远程传输工具(如:xftp)
可选择自己喜欢的字体拖入虚拟机(建议中文,否则会有很多个字体文件,不方便改名和移动)
cd /data2/zabbix/fonts #进入文件
ls #查看字体
若上传到root目录可移动到/data2/zabbix/fonts
mv /root/SIMFANG.TTF /data2/zabbix/fonts #移动
mv SIMFANG.TTF DejaVuSans.ttf #改名
五、编写docker-compose.yml 文件
vi docker-compose.yml
services:
zabbix-web-nginx-mysql:
image: zabbix/zabbix-web-nginx-mysql:centos-5.2-latest
restart: always
environment:
- DB_SERVER_HOST=zabbix-mysql
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- MYSQL_ROOT_PASSWORD=root
- ZBX_SERVER_HOST=zabbix-server-mysql
ports:
- 8080:8080
volumes:
- /etc/localtime:/etc/localtime
- /data2/zabbix/fonts/DejaVuSans.ttf:/usr/share/zabbix/assets/fonts/DejaVuSans.ttf
networks:
- zbx_net
depends_on:
- zabbix-server-mysql
- zabbix-mysql
zabbix-mysql:
image: mysql:8.0.23
restart: always
ports:
- 3306:3306
environment:
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- MYSQL_ROOT_PASSWORD=root
command:
- mysqld
- --default-authentication-plugin=mysql_native_password
- --character-set-server=utf8
- --collation-server=utf8_bin
volumes:
- /etc/localtime:/etc/localtime
- /data2/zabbix/db:/var/lib/mysql
networks:
- zbx_net
zabbix-java-gateway:
image: zabbix/zabbix-java-gateway:centos-5.2-latest
restart: always
volumes:
- /etc/localtime:/etc/localtime
networks:
- zbx_net
zabbix-server-mysql:
image: zabbix/zabbix-server-mysql:centos-5.2-latest
restart: always
volumes:
- /data2/zabbix/zabbix-server:/etc/zabbix
- /data2/zabbix/alertscripts:/usr/lib/zabbix/alertscripts
- /etc/localtime:/etc/localtime
ports:
- 10052:10051
environment:
- DB_SERVER_HOST=zabbix-mysql
- MYSQL_DATABASE=zabbix
- MYSQL_USER=zabbix
- MYSQL_PASSWORD=zabbix
- MYSQL_ROOT_PASSWORD=root
- ZBX_JAVAGATEWAY=zabbix-java-gateway
- ZBX_JAVAGATEWAY_ENABLE=true
- ZBX_JAVAGATEWAYPORT=10052
depends_on:
- zabbix-mysql
networks:
- zbx_net
zabbix-agent:
image: zabbix/zabbix-agent:centos-5.2-latest
restart: always
ports:
- 10050:10050
environment:
- ZBX_HOSTNAME=Zabbix server
- ZBX_SERVER_HOST=zabbix-server-mysql
- ZBX_SERVER_PORT=10052
networks:
- zbx_net
networks:
zbx_net:
driver: bridge
cd /opt/zabbix-docker(注意要在这个目录up)
docker compose up -d
六、Web页面测试登录
浏览器输入IP地址加端口,默认管理员账号密码如下
10.1.1.68:8080
七、中文设置
如果进来未提示可翻译成中文,可自行选择设置成中文,并点击更新。
查看配置里的主机的状态,要显示绿色才行
如果一直是红色,检查dockers的网络详情信息
docker network ls
docker network inspect zabbix-docker_zbx_net
查看任意监控数据