使用Docker安装Zabbix6.0版本的服务器环境【20201008】

发表于 2021-09-15 16:05:08
阅读 310

介绍

介绍

今天福哥会给大家讲讲如何通过Docker来安装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数据库,编码是utf-8的。

create database zabbix default charset utf8mb4;

授权用户

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

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

Dockerfile

zabbix-server

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

FROM zabbix/zabbix-server-mysql:6.0-centos-latest

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:6.0-centos-latest

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/simhei.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 registry.tongfu.net:5000/tool/zabbix-server:1.0.0 ./

zabbix-web

docker build -f Dockerfile -t registry.tongfu.net:5000/tool/zabbix-web:1.0.0 ./

启动容器

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

zabbix-server

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

这里开启10051端口是考虑到其他服务器需要连接进来,如果只是监视本机的话可以去掉开放10051端口。

docker run -tid --name zabbix-server \
-h zabbix-server \
--net tflinux_default \
-e DB_SERVER_HOST=mysql-8.0 \
-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="zabbix-server" \
-e PHP_TZ=Asia/Shanghai \
-p 10051:10051 \
registry.tongfu.net:5000/tool/zabbix-server:1.0.0

查询zabbix-server日志出现如下信息,就表示启动成功了!

docker logs zabbix-server

home/topic/2022/1008/18/ca6699a224b81fb8c35bed8a9eb2a93d.png

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-8.0 \
-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="zabbix-server" \
-e PHP_TZ=Asia/Shanghai \
-p 8683:8080 \
registry.tongfu.net:5000/tool/zabbix-web:1.0.0

打开浏览器输入网址http://192.168.168.88:8683/,可以看到登录页面就表示启动成功了!

home/topic/2022/1008/16/bca9c6d87592a2a004ed543cffccc6f0.png

zabbix-agent

现在可以直接使用zabbix-agent启动一个客户端连接zabbix-server服务器端,用docker的好处就是比较干净,没有那么多零碎的软件安装。

这里开发10050端口是考虑到客户端服务器是远程服务器,如果只是监视本机的话可以去掉开放10050端口。

docker run -tid --name zabbix-agent \
-h zabbix-agent \
--net tflinux_default \
-e ZBX_HOSTNAME="Zabbix server" \
-e ZBX_SERVER_HOST="zabbix-server" \
-e PHP_TZ=Asia/Shanghai \
-p 10050:10050 \
zabbix/zabbix-agent:6.0-centos-latest

测试web端

登录

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

home/topic/2022/1009/14/9b4924a12ba7804c9897303857c3edc4.png

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

切换中文

从左边找到Administration-》General-》GUI。

home/topic/2022/1009/14/b143c2da1aace785ef373b0651741284.png

在里面设置界面语种为“Chinese (zh_CN)”,也就是中文啦~~

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

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

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

客户端

查看zabbix-agent的IP地址(因为zabbix-server添加主机必须使用IP地址)。

docker network inspect tflinux_default | grep -A 3 zabbix-agent

home/topic/2022/1008/19/5591360a637465f787ddb4324d77cdab.png

将IP地址192.168.192.6填写到默认主机Zabbix server里面。

home/topic/2022/1008/19/451bb1e50d8046c417b870124af8e8b2.png

重启zabbix-server服务。

docker restart zabbix-server

查看zabbix-server日志可以看到Zabbix server主机的加载状态。

home/topic/2022/1008/19/36d29f2c2841914452ab2625cf4ff0f3.png

再次进入主机配置,查看Zabbix server主机的通讯状态,变成绿色了!

home/topic/2022/1008/19/6c0b9de87ef1ba8ccff6cb6df319e2bb.png

总结

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

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