使用Dockerfile安装Zabbix5.4版本的服务器环境【20210914】

发表于 2021-09-15
阅读 11

介绍

介绍

今天福哥会给大家讲讲如何通过Dockerfile来安装Zabbix服务。

Zabbix服务包括两个部分,一个是基础服务zabbix server,另外一个是GUI界面zabbix web。Zabbix支持MySQL和PostgreSQL两个版本的数据库,福哥更熟悉MySQL数据库。

镜像

zabbix server

福哥选择的是zabbix server的mysql版本。

https://hub.docker.com/r/zabbix/zabbix-server-mysql

home/topic/2021/0915/16/6867c2121d89e58392ba37975f55d473.png

zabbix web

福哥选择的是zabbix web的apache+mysql版本。

https://hub.docker.com/r/zabbix/zabbix-web-apache-mysql

home/topic/2021/0915/16/fdd2a4398c92db7e88dcd2d62c807592.png

MySQL

以前安装Zabbix最烦人的就是创建基础数据表和插入基础数据,需要自己找sql文件,自己导入到数据库里面。现在省事了,我们只需要建立好数据库,建立好可以操作数据库的用户,把包括数据库主机、端口、用户、密码、数据库名等等信息通过环境变量传进来就可以了。

创建数据库

创建zabbix数据库,编码是utf8的。

create database zabbix default charset utf8;

授权用户

创建zabbix用户,对zabbix数据库有完全控制权,密码是tongfu.net。

grant all on zabbix.* to zabbix@`%` identified by 'tongfu.net';

Dockerfile

zabbix-server

这个没有什么特别的配置,环境变量福哥更加喜欢在docker-compose里面设置。

FROM zabbix/zabbix-server-mysql

MAINTAINER Andy Bogate
MAINTAINER tongfu@tongfu.net
MAINTAINER https://tongfu.net/dockerfile
MAINTAINER 2021/9/13
MAINTAINER v1.0.0

zabbix-web

这个只做了一件事,就是使用中文字体库simhei.ttf替换系统默认的英文字体库DejaVuSans.ttf。

这个simhei.ttf字体可以在自己的Windows电脑上找到,字体库都是保持在C:\Windows\Fonts\下面,可以选择一款中文字体复制出来,福哥选择的是“黑体 常规”,文件名是simhei.ttf。

然后还需要在配置文件include/defines.inc.php文件里面替换默认的DejaVuSans为simhei。

home/topic/2021/0915/17/867cc29ece3ff95c1b32490ec101ecdb.png

FROM zabbix/zabbix-web-apache-mysql

MAINTAINER Andy Bogate
MAINTAINER tongfu@tongfu.net
MAINTAINER https://tongfu.net/dockerfile
MAINTAINER 2021/9/13
MAINTAINER v1.0.0

COPY simhei.ttf /usr/share/zabbix/assets/fonts/DejaVuSans.ttf
USER root
RUN sed -i 's/DejaVuSans/simhei/g' /usr/share/zabbix/include/defines.inc.php
USER zabbix

测试

创建镜像

zabbix-server

docker build -f Dockerfile -t zabbix-server ./

zabbix-web

docker build -f Dockerfile -t zabbix-web ./

启动容器

启动两个容器的时候都需要传递mysql的相关参数,zabbix-server负责创建数据表并写入数据,zabbix-web负责读取数据和设置配置信息。

zabbix-server

福哥是在TFLinux上面测试的,所以利用TFLinux的docker-compose默认网络tflinux_default。

docker run -tid --name zabbix-server \
-h zabbix-server \
--net tflinux_default \
-e DB_SERVER_HOST=mysql \
-e DB_SERVER_PORT=3306 \
-e DB_SERVER_DBNAME=zabbix \
-e DB_SERVER_USER=zabbix \
-e DB_SERVER_PASS="tongfu.net" \
-e MYSQL_USER=zabbix \
-e MYSQL_PASSWORD="tongfu.net" \
-e ZBX_SERVER_HOST="192.168.2.88" \
-e PHP_TZ=Asia/Shanghai \
--link mysql_tfgse:mysql \
zabbix-server

zabbix-web

福哥是在TFLinux上面测试的,所以利用TFLinux的docker-compose默认网络tflinux_default。

docker run -tid --name zabbix-web \
-h zabbix-web \
--net tflinux_default \
-e DB_SERVER_HOST=mysql \
-e DB_SERVER_PORT=3306 \
-e DB_SERVER_DBNAME=zabbix \
-e DB_SERVER_USER=zabbix \
-e DB_SERVER_PASS="tongfu.net" \
-e MYSQL_USER=zabbix \
-e MYSQL_PASSWORD="tongfu.net" \
-e ZBX_SERVER_HOST="192.168.2.88" \
-e PHP_TZ=Asia/Shanghai \
--link mysql_tfgse:mysql \
--link zabbix-server:zabbix-server \
-p 8080:8080 \
zabbix-web

测试

打开浏览器输入网址。

home/topic/2021/0915/17/a0f13026b232d35f210142b534426872.png

默认的管理员账号是Admin,默认的管理员密码是zabbix,登录进去看看吧!

home/topic/2021/0915/17/282dbb500fb408e224d682b64bbd251d.png

全新的界面,还挺好看的。

从左边找到Administration-》General-》GUI,在里面设置界面语种为“Chinese (zh_CN)”,也就是中文啦~~

home/topic/2021/0915/17/7b0017961c9e11b237aa829e3f7059dd.png

点击“Update”按钮提交后,界面就变成中文了!

home/topic/2021/0915/17/d0b9b49d9eeeb9796218d4326f8fa5c4.png

总结

今天福哥带着童鞋们学习了使用Dockerfile搭建Zabbix的最新版本5.4的服务器环境,这个包括两个镜像,一个是zabbix-server服务,一个是zabbix-web服务。

除了zabbix-server和zabbix-web,还需要一个zabbix-agent。这个服务其实就是一个tar包,通过shell跑一下就行了。福哥会在后面教给大家如何打造一个便捷的zabbix-agent部署软件包的,敬请期待~~