Docker安装Zabbix5.2 – 记忆角落

Docker安装Zabbix5.2

/ 0评 / 0

Docker安装Zabbix5.2

下载镜像

1.拉取mysql镜像

docker pull mysql:5.7

2.下载zabbix-server镜像

zabbix-server镜像分两种,支持MySQL数据库zabbix-server-mysql,支持支持PostgreSQL数据库zabbix/zabbix-server-pgsql。下面安装的是支持MySQL数据库的Server镜像。
打开zabbix-server-mysql的docker hub,大家会发现,zabbix-server-mysql有多个版本,可根据自己的环境选择合适版本。因为我的服务器是centos7版本,所以选择的是centos版本,zabbix版本我也选择最新版5.2.6,所以下载镜像方式如下:

docker pull zabbix/zabbix-server-mysql:centos-5.2.6

如果你要使用最新版本的zabbix-server镜像,也可以直接执行如下方式下载镜像:

docker pull zabbix/zabbix-server-mysql:centos-latest

3.下载Zabbix web镜像

这里使用的是基于Nginx web服务器及支持MySQL数据库的Zabbix web接口zabbix/zabbix-web-nginx-mysql。

docker pull zabbix/zabbix-web-nginx-mysql:centos-5.2.6

要用最新版本,也可直接用latest版本
docker pull zabbix/zabbix-web-nginx-mysql:latest

4.下载zabbix-java-gateway镜像

Zabbix本身不支持直接监控Java,而是使用zabbix-java-gateway监控jvm/tomcat性能。

docker pull zabbix/zabbix-java-gateway:centos-5.2.6

运行镜像

1.创建docker网络

启动zabbix等镜像之前,需要先创建一个新的Docker网络。需要将后面的zabbix-server、mysql、web等容器都加入到此网络中,方便互相访问。

docker network create --subnet 172.18.0.0/16 -d bridge zabbix_net

创建后,可以查看是否创建成功:docker network ls

2.创建mysql容器

因为我的机器已经存在3306端口,因此转为13306,避免冲突

docker run -it -p 13306:3306 --name zabbix-mysql \
--network zabbix_net --ip 172.18.0.2 \
--restart=always \
-v /etc/localtime:/etc/localtime \
-v /data/zabbix_data/mysql/conf:/etc/mysql \
-v /data/zabbix_data/mysql/logs:/var/log/mysql \
-v /data/zabbix_data/mysql/data:/var/lib/mysql \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix12345^" \
-e MYSQL_ROOT_PASSWORD="Jtcmcc@139.com" \
-d mysql:5.7 \
--character-set-server=utf8 \
--collation-server=utf8_bin

3.创建zabbix-java-gateway容器

docker run -itd \
-v /etc/localtime:/etc/localtime \
--restart=always --name=zabbix-java-gateway \
--network zabbix_net --ip 172.18.0.5 \
zabbix/zabbix-java-gateway:centos-5.2.6

4.创建zabbix-server容器

创建zabbix-server容器之前,首先创建数据卷zabbix-server-vol

docker volume create zabbix-server-vol

再创建容器

docker run -itd -p 10051:10051 \
--mount source=zabbix-server-vol,target=/etc/zabbix \
#-v /data/zabbix_data/zabbix-server:/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="zabbix12345^" \
-e MYSQL_ROOT_PASSWORD="Jtcmcc@139.com" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway"  \
-e ZBX_JAVAGATEWAY_ENABLE="true" \
-e ZBX_JAVAGATEWAYPORT=10052 \
zabbix/zabbix-server-mysql:centos-5.2.6

5.创建zabbix-web容器

因为我的8080已经有占用了,所以使用28080

docker run -itd -p 28080:8080 \
-v /etc/localtime:/etc/localtime \
--name zabbix-web-nginx-mysql \
--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="zabbix12345^" \
-e MYSQL_ROOT_PASSWORD="Jtcmcc@139.com" \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \
-e PHP_TZ="Asia/Shanghai" \
zabbix/zabbix-web-nginx-mysql:centos-5.2.6

其他

如果需要也同时创建zabbix-agent容器的话运行:

docker run -itd --name zabbix-agent \
--restart=always \
--network zabbix_net --ip 172.18.0.4 \
-p 10050:10050 --privileged \
-e ZBX_HOSTNAME="Zabbix server" \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \
-e ZBX_SERVER_PORT=10051 \
zabbix/zabbix-agent:centos-5.2.6

登陆zabbix web

http://宿主机IP:28080

用户: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 36:/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

发表评论

您的电子邮箱地址不会被公开。