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

http://宿主机IP:8888/

用户: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。

本文参考于 https://www.cnblogs.com/st2021/p/14457212.html

posted @ 2021-04-18 15:23  春风雨露  阅读(1157)  评论(0)    收藏  举报