Zabbix 为每个 Zabbix 组件提供 Docker image 作为可移植和自给自足的容器,以加快部署和更新过程。
- Zabbix 组件在 Ubuntu、Alpine Linux 和 CentOS 基础 image 上提供:
- Zabbix 组件支持 MySQL 和 PostgreSQL 数据库、Apache2 和 Nginx Web 服务器。
1. Zabbix 组件介绍
Zabbix 监控平台无论以何种方式运行都需要安装的核心组件如下(web + server + agent + db):
zabbix-web
:提供zabbix监控的UI界面服务(端口:80、443)zabbix-server
:提供zabbix监控程序的服务(端口:10051)zabbix-agent
:提供zabbix-server自身的监控代理服务(端口:10050)zabbix-db
:提供zabbix服务存储的数据库服务(端口:5432、3306)zabbix-snmptraps(可选)
:提供snmp管理监控的服务(端口:162)
Zabbix 组件运行模式:
2. Docker 运行和变量
因为 Zabbix 的组件较多,单独运行 docker run
不便于后期的管理和维护,理解 Zabbix Docker 的运行需要一定的 Docker 容器的基础知识,本次目的是使用 compose 文件编排和运行 Zabbix。
每个 Zabbix 以一个 Docker 镜像为单位,设置镜像之间的变量来实现各个组件的通信,从 Zabbix 官方提供的 compose 文件中我们可以很好的理解组件之间的关联。
- Zabbix 官方建议:从容器中安装zabbix6.0
- GitHub 官网提供:zabbix-compose
GitHub 提供的 compose install 安装部署文件有两种方式:本地构建部署和远程镜像部署。
- 本地构建部署:本地构建后镜像后运行(docker-compose_v3_centos_pgsql_local.yaml)
- 远程镜像部署:拉取远程仓库的镜像运行(docker-compose_v3_centos_pgsql_latest.yaml)
3. Compose 文件说明
本次演示使用 docker-compose_v3_centos_pgsql_latest.yaml 作为演示部署的文件,我们选择提供 web 服务组件和数据库服务分别是:nginx ,postsql ,通过 docker compose 部署 zabbix 组件分为了以下文件:
.env
:设置全局变量,用于定义 compose 镜像配置的信息和变量。env_vars
:.env
文件中定义镜像变量的目录路径compose_databases.yaml
:定义 databases 容器的运行compose_zabbix_components.yaml
:定义 zabbix 组件容器的运行docker-compose_v3_centos_pgsql_latest.yaml
:主运行配置文件,容器运行、网络定义、密码等。
env_vars
是 .env
文件中 ENV_VARS_DIRECTORY
变量定义镜像运行时所使用的变量的目录路径:
.env_srv
:设置 zabbix-server 配置文件的变量,根据需要修改(默认即可).env_agent
:设置 zabbix-agent 配置文件的变量,根据需要修改(默认即可).env_db_pgsql
:设置 zabbix-db 的数据库信息(默认数据库:zabbix).env_snmptraps
:设置 zabbix 的 snmp组件信息(ZBX_SNMP_TRAP_USE_DNS=true
开启功能).env_web
:设置 zabbix-web 的配置信息(设置PHP时区PHP_TZ=Asia/Shanghai
).POSTGRES_PASSWORD
:设置 postgres 服务中 zabbix 数据库的密码(zabbix).POSTGRES_USER
:设置 postgres 服务中 zabbix 数据库的用户名(zabbix)
运行 compose 文件的步骤:
# 创建项目存放的目录
mkdir /usr/local/container-data/docker-zabbix
cd /usr/local/container-data/docker-zabbix# 上传和拷贝 compose 文件和变量环境
链接:https://pan.baidu.com/s/1Rsw9PAvcX_neXap6uEFeKg?pwd=43tu# 创建 .env 文件定义的数据目录
mkdir ./zbx_env# 运行 compose 文件(plugin插件式安装的 ompose)
docker compose -f ./docker-compose_v3_centos_pgsql_latest.yaml up -d
# [+] Running 5/0
# ✔ Container zbx-server started 0.0s
# ✔ Container zbx-web-nginx started 0.0s
# ✔ Container zbx-agent started 0.0s
# ✔ Container zbx-snmptraps started 0.0s
# ✔ Container zbx-db started 0.0s