容器快速部署zabbix

功能概况:

        本系统基于容器技术实现对zabbix监控系统的部署与运维,通过拉取镜像和docker-compose对容器进行编排与启动,可实现基础版本与完整版本的快速部署;也可通过git命令切换不同版本的zabbix。方便生产环境中的快速应用。 

基础环境准备分析:

        在系统部署前,需对基础环境进行相关配置,应配置好两台虚拟机的网络,yum源,安装docker环境及docker-compose的准备。

        网上常用的安装zabbix方式主要是二进制包安装,使用官方的yum仓库,通过yum的形式在线安装zabbix,也有从源码包安装,但需对编译依赖及参数较为熟悉,且构建时间较长;

        本文zabbix监控系统使用从容器中进行安装与部署,使用容器部署维护起来更加方便,部署更快,迁移更简单。 

容器镜像拉取类型分析:

         Zabbix官方在4.0之前,容器部署方式是将所有的组件打包至一个镜像中,其中包括mysql,前端,web ,apache等,这种打包方式与容器的维护是有冲突的;

        使用容器部署所需的环境应该越来越精简;在4.0之后,按照其组件将其进行拆分,在官方文档中,zabbix-server端按照其数据库类型分为两种,主流的还是mysql;web端通过浏览器访问的界面拆分为nginx和apache,根据数据库类型也分为mysql和postgreSQL;在容器底层的镜像中也有诸多类型,如ubuntu,alpine linux 和centos;

        本文容器底层引用的是centos镜像;关于容器镜像的下载,本文通过复制镜像下载链接,通过wget命令下载镜像安装包,解压后通过导入镜像脚本将镜像保存至本地,此时导入的镜像是完整版zabbix所需的镜像。而基础版本仅需要使用mysql,zabbix-web,zabbibx-server三个镜像即可。

容器部署方式分析:

        通过docker-compose对容器镜像编排,定义其中的关系,挂载目录,暴露端口写至yaml文件中,可通过其一键启动,拉取所需镜像,运行容器。在官方文档中,使用docker-compose部署已上传github中,且采用分支形式进行部署,可采用git切换分支形式部署不同版本的zabibx,忽略宿主机系统版本影响。
        而在yaml文件中涉及到所有的组件,部分组件添加了参数profiles:-all,启动yaml时指定参数才能将其启动起来。这样部署将zabbix的部署分为两个版本即基础功能版本和完整功能版本。基础功能版本所需组件仅有server,web端,数据库;而在所需zabbix需要跨机房跨网段监控时,启动时需使用完整功能版,如果仅监控局域网,不涉及跨网段或需要代理,则可使用基础功能版。
        如果在生产环境中,运行的只是一个基础版本的zabbix,只监控局域网内部的设备;而后续有新的需求,需要跨网段及做代理,这时只需要启动时添加参数,就能快速切换至完整版zabbix。 

 构建目录详解:

        本文将部署zabbix所需文件统一存至/data/zabbix-docker文件中。
        docker-compose.yaml文件中,支持容器开机自启,支持部署zabbix基础版及完整版通过参数一键部署,基于已拉取的镜像构建zabbix服务,创建前端后端网络,暴露相关端口,做出相对应的映射关系,完成容器的编排。    
        env_vars传参变量文件夹,其目录下的文件都是隐藏文件,需要使用ls -a才能看到,这里面的文件都是一些传参文件,如mysql密码,数据库用户,zabbix密码以及性能方面的调整;因为通过容器来跑,所有的调整,传参可以概括为两种,一是密码,其中与mysql相关的都是密码,可以更改;二是性能方面的调整,可以修改相关文件重启调整性能,如在使用docker compose部署的时候出现zabbix server无法启动问题,可修改文件夹中.env_srv文件,通过修改缓存空间,调整zabbix性能。
        mysql目录,容器部署完成后,将数据库的目录映射到当前目录下(/data/zabbix-docker),所有的mysql重要内容都在mysql目录中,如果在生产环境下已经运行很久了,存在很多历史监控数据,只需要将目录拷贝到其它电脑上运行就完成了迁移。通过登入zabbix-db容器,使用root用户连接数据库,删除binlog文件,可以进行数据库清理。通过du -sh /data/zabbix-docker/查看构建zabbix服务所需内存大小。
        zbx_env,官方默认挂载目录,主要将容器外目录挂载至容器内,实现数据持久化。

部署流程:

        首先在vmware虚拟机中安装两台linux虚拟机,配置好网络,yum源,关闭防火墙及selinux,安装docker及docker-compose环境,网上下载镜像安装包,解压脚本一键部署,下载部署zabibx服务安装包,解压并运行docker-compose.yaml文件,至此zabbix服务部署完成。 

 

    虚拟机中相关配置操作

        1.基础环境配置:修改网络信息,编辑/etc/sysconfig/network-scripts/ifcfg-ens33文件,将BOOTPROTO值改为static,并添加静态ip地址信息。关闭防火墙及selinux;可见本文zabbix服务端ip地址为:192.168.221.34;

         2.先决条件,配置yum源,安装docker及docker-compose;

基础YUM源和优化系统
#此脚本能优化CentOS7、8的系统(非必要操作)
curl -L https://drive.swireb.cn/d/Shell/system.sh | sh

#docker软件源
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装docker并运行
#安装docker
yum clean all && yum makecache
yum -y install docker-ce

#修改docker配置文件(可选优化操作)
mkdir /etc/docker

cat << EOF | tee /etc/docker/daemon.json
{
  "graph": "/data/docker",
  "registry-mirrors": ["http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn"],
  "live-restore": true
}
EOF

#启动docker服务
systemctl daemon-reload && systemctl enable --now docker
安装docker-compose命令
#下载二进制文件
wget -P /usr/local/bin https://drive.swireb.cn/d/Linux/Docker/docker-compose  &>/dev/null

#赋予执行权限
chmod +x /usr/local/bin/docker-compose

#确认版本
docker-compose -v

        3.docker-compose部署zabbix;本文通过下载镜像安装包,解压后通过脚本执行拉取镜像。下载并解压部署文件,zabbix部署文件统一保存在/data/zabbix-docker中。

        在该目录下,docker-compose.yaml文件是启动文件,其中写明了构建完整版zabbix的所有组件,通过在运行yaml文件时添加参数-profile all 可以选择创建zabbix基础版和完整版,本文因不涉及代理及跨网段,所以部署zabbix基础版;

        env_vars是传参变量文件夹,涉及系统密码及性能调优功能;zbx_env是zabbix挂载目录,映射容器内外文件及目录。Msyql文件当容器开始运行时,自动创建,保存的是zabbx数据文件。

#导入centos系统的容器镜像(需要修改docker-compose.yaml的启动镜像)
wget --no-check-certificate https://drive.swireb.cn/d/Linux/Docker/Zabbix/images/zabbix-image-6.0-centos.tar.gz
tar xf zabbix-image-6.0-centos.tar.gz
cd zabbix-image-6.0-centos
./docker_load.sh
docker image ls -a

-----------------------------------------------------------------------
#先创建/data目录,下载并且解压部署文件
wget --no-check-certificate https://drive.swireb.cn/d/Linux/Docker/Zabbix/zabbix-docker.tar.gz
tar xf zabbix-docker.tar.gz
cd zabbix-docker

-----------------------------------------------------------------------
部署基础功能版本
#切换部署版本
git checkout 6.0 

#运行Zabbix容器(必须要和启动yaml文件在同级目录,即在/data/zabbix-docker目录下运行)
docker-compose up -d

#关闭Zabbix容器(必须要和启动yaml文件在同级目录,即在/data/zabbix-docker目录下运行)
docker-compose down

#修改使用centos系统的容器镜像(默认使用alpine系统的容器镜像;即先运行此命令修改docker-compose.yaml文件使用的镜像)
sed -i 's#alpine-6.0#centos-6.0#g' docker-compose.yaml

-------------------------------------------------------------------------
部署完整功能版本
#切换部署版本
git checkout 6.0 

#运行Zabbix容器(必须要和启动yaml文件在同级目录,即在/data/zabbix-docker目录下运行)
docker-compose --profile=all up -d

#关闭Zabbix容器(必须要和启动yaml文件在同级目录,即在/data/zabbix-docker目录下运行)
docker-compose --profile=all down

#修改使用centos系统的容器镜像(默认使用alpine系统的容器镜像;即先运行此命令修改docker-compose.yaml文件使用的镜像)
sed -i 's#alpine-6.0#centos-6.0#g' docker-compose.yaml

         4.至此,zabbix基础版已部署完成,通过docker ps 命令查看所部署容器;

         5.容器部署时依靠添加参数选择部署基础版或完整版zabbix;

         6.至此,zabbix服务部署完成,可访问zabbix前端页面;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值