Docker安装Zabbix6.2
Docker 的安装说明
Docker 是一个开源的商业产品,有两个版本:社区版(Community Edition,缩写为 CE)和企业版(Enterprise Edition,缩写为 EE)。企业版包含了一些收费服务,个人开发者一般用不到。
操作系统 文档
Mac https://docs.docker.com/docker-for-mac/install/
Windows https://docs.docker.com/docker-for-
Ubuntu https://docs.docker.com/install/linux/docker-ce/ubuntu/
Debian https://docs.docker.com/install/linux/docker-ce/debian/
CentOS https://docs.docker.com/install/linux/docker-ce/centos/
Fedora https://docs.docker.com/install/linux/docker-ce/fedora/
其他 Linux 发行版 https://docs.docker.com/install/linux/docker-ce/binaries/
CentOS 上安装 Docker
先决条件
要安装 Docker Engine-Community,您需要一个 CentOS 7 的维护版本。不支持或未测试存档版本。
该 centos-extras 库必须启用。默认情况下,此存储库是启用的,但是如果已禁用它,则需要 重新启用它。(参考: https://wiki.centos.org/AdditionalResources/Repositories)overlay2 建议使用存储驱动程序。
卸载旧版本
较旧的 Docker 版本称为 docker 或 docker-engine。如果已安装这些程序,请卸载它们以及相关的依赖项。
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
如果 yum 报告未安装这些软件包,则可以直接安装。
设置yum源(存储库)
1、安装所需的软件包
yum-utils提供了yum-config-manager 效用,并device-mapper-persistent-data和lvm2由需要 devicemapper 存储驱动程序。
yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
2、设置稳定的安装源(存储库)
yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
查询可安装的版本
按版本号(从高到低)对结果进行排序
[root@Zabbix ~]# yum list docker-ce --showduplicates | sort -r * updates: mirrors.bfsu.edu.cn Loading mirror speeds from cached hostfile Loaded plugins: fastestmirror Installed Packages * extras: mirrors.bfsu.edu.cn docker-ce.x86_64 3:20.10.6-3.el7 docker-ce-stable docker-ce.x86_64 3:20.10.6-3.el7 @docker-ce-stable docker-ce.x86_64 3:20.10.5-3.el7 docker-ce-stable
安装docker-ce-20.10.6
我这里选择安装docker-ce-20.10.6版本,如果你在安装的时候查询到新的版本,只要按照格式安装就可以了,注意版本号。
软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。
例如,docker-ce-20.10.6,安装的版本自己选择
yum install docker-ce-20.10.6 docker-ce-cli-20.10.6 containerd.io
验证安装
安装完成后,运行下面的命令,验证是否安装成功。
docker version
docker info
启动 Docker
systemctl start docker
systemctl enable docker
或者另外一种安装方式:
0、安装Docker基础环境:
官方源比较慢,改用国内镜像源:
阿里云
sudo yum-config-manager --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
或:清华大学源
sudo yum-config-manager --add-repo \ https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
systemctl start docker
systemctl enable docker
或
systemctl enable docker --now
1、拉取镜像
docker pull mysql:8.0 docker pull zabbix/zabbix-server-mysql:centos-latest docker pull zabbix/zabbix-web-nginx-mysql:latest docker pull zabbix/zabbix-java-gateway:latest docker pull zabbix/zabbix-agent:latest
之前是5.7版本(不要下载最新版本的mysql,不然后面server 无法在mysql上进行注册,会报 “MySQL server is not available. ” 错误)现在改为8.0版本安装。
2、配置网络(docker的网桥)
docker network create --subnet 172.18.0.0/16 -d bridge zabbix_net
3、安装mysql
docker run -p 3306:3306 --name zabbix-mysql \ --network zabbix_net --ip 172.18.0.2 \ -v /usr/local/docker/mysql/conf:/etc/mysql/conf.d \ -v /usr/local/docker/mysql/logs:/var/log/mysql \ -v /usr/local/docker/mysql/data:/var/lib/mysql \ -v /etc/localtime:/etc/localtime \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="123456" \ -e MYSQL_ROOT_PASSWORD="123456" \ --restart=always \ -d mysql:8.0 \ --character-set-server=utf8 --collation-server=utf8_bin
#注:--restart=always写在-d mysql:8.0的前面,要不然容器启动后自动关闭。
--restart=always跟随Docker启动
4、安装java-gateway
docker run -v /etc/localtime:/etc/localtime -dit --restart=always --name zabbix-java-gateway --network zabbix_net --ip 172.18.0.5 zabbix/zabbix-java-gateway:latest
5、安装zabbix-server-mysql
docker run -dit -p 10051:10051 --mount source=zabbix-server-vol,target=/etc/zabbix \ -v /etc/localtime:/etc/localtime \ -v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \ --name=zabbix-server-mysql --restart=always --network zabbix_net --ip 172.18.0.6 \ -e DB_SERVER_HOST="zabbix-mysql" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="123456" \ -e MYSQL_ROOT_PASSWORD="123456" \ -e ZBX_JAVAGATEWAY="zabbix-java-gateway" zabbix/zabbix-server-mysql:centos-latest
6、安装zabbix-nginx
docker run -dit -p 8888:8080 -v /etc/localtime:/etc/localtime \ --name zabbix-nginx \ --restart=always --network zabbix_net --ip 172.18.0.3 \ -e DB_SERVER_HOST="zabbix-mysql" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="123456" \ -e MYSQL_ROOT_PASSWORD="123456" \ -e PHP_TZ="Asia/Shanghai" \ -e ZBX_SERVER_HOST="zabbix-server-mysql" zabbix/zabbix-web-nginx-mysql:latest
7、部署zabbix-agent端(指定zabbix-server地址或者ip地址)
docker run -dit --name zabbix-agent -e ZBX_HOSTNAME="zabbix-server-mysql" --restart=always --link zabbix-server-mysql --network zabbix_net --ip 172.18.0.4 -e ZBX_SERVER_HOST="zabbix-server-mysql" -p 10050:10050 --privileged -e ZBX_SERVER_PORT=10051 -d zabbix/zabbix-agent:latest
8、登陆zabbix web
用户:Admin 密码: zabbix
相关问题
问题1:中文乱码问题解决

docker部署zabbix-web和源码安装zabbix-web一样,字体都是存储在/usr/share/zabbix/assets/fonts/
从windown拷贝msyh.ttc(微软雅黑 )文件到docker的zabbix-web里面
1、字体存在于Windows的路径
C:\Windows\Fonts\msyh.ttc 微软雅黑
2、上传字体到服务器/data下面
3、拷贝字体到docker 容器内部
docker cp /data/msyh.ttc zabbix-nginx:/usr/share/zabbix/assets/fonts/
4、进入容器
docker exec -it zabbix-nginx bash
5、备份以前的字体文件
cd /usr/share/zabbix/assets/fonts/
mv DejaVuSans.ttf DejaVuSans.ttf_bak
报错:
bash-5.0$ mv DejaVuSans.ttf DejaVuSans.ttfbak
mv: can't rename 'DejaVuSans.ttf': Permission denied
解决方法:
docker exec -it -u root zabbix-nginx /bin/bash
6、创建链接
ln -s msyh.ttc DejaVuSans.ttf
另一种方法,一键替代法
用微软雅黑字体替代DejaVuSans字体
\cp /data/msyh.ttc `docker inspect zabbix-nginx | grep MergedDir |awk -F '"' '{print $4}'`/usr/share/zabbix/assets/fonts/DejaVuSans.ttf

问题2:监控Zabbix Server
错误现象 Zabbix agent is not available (for 3m)
Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused
默认安装好Zabbix之后自带一个监视本地系统的配置“Zabbix Server”,无法被检测到。

主要原因就是我们是将Zabbix服务器和Zabbix客户端都安装到了Docker上
解决方法:
打开配置-主机,接口那的ip为127.0.0.1,这个IP是宿主机的IP,需要修改为 zabbix-agent 容器的IP这里的容器IP为:172.18.0.4。

浙公网安备 33010602011771号