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