介绍
介绍
今天福哥会给大家讲讲如何通过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
zabbix web
福哥选择的是zabbix web的apache+mysql版本。
https://hub.docker.com/r/zabbix/zabbix-web-apache-mysql
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。
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
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/,可以看到登录页面就表示启动成功了!
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,登录进去看看吧!
全新的界面,还挺好看的。
切换中文
从左边找到Administration-》General-》GUI。
在里面设置界面语种为“Chinese (zh_CN)”,也就是中文啦~~
点击“Update”按钮提交后,界面就变成中文了!
客户端
查看zabbix-agent的IP地址(因为zabbix-server添加主机必须使用IP地址)。
docker network inspect tflinux_default | grep -A 3 zabbix-agent
将IP地址192.168.192.6填写到默认主机Zabbix server里面。
重启zabbix-server服务。
docker restart zabbix-server
查看zabbix-server日志可以看到Zabbix server主机的加载状态。
再次进入主机配置,查看Zabbix server主机的通讯状态,变成绿色了!
总结
今天福哥带着童鞋们学习了使用Dockerfile搭建Zabbix的最新版本5.4的服务器环境,这个包括两个镜像,一个是zabbix-server服务,一个是zabbix-web服务。
除了zabbix-server和zabbix-web,还需要一个zabbix-agent。这个服务其实就是一个tar包,通过shell跑一下就行了。福哥会在后面教给大家如何打造一个便捷的zabbix-agent部署软件包的,敬请期待~~