docker compose方式部署 Zabbix 7.0 LTS
Zabbix 由几个主要的功能组件组成
- zabbix-server 是 Zabbix agent 向其报告可用性、系统完整性信息和统计信息的核心组件。
- zabbix-agent 部署在被监控目标上,用于主动监控本地资源和应用程序,并将收集的数据发送给 Zabbix server。
- zabbix-web 提供基于 web 的界面(Apache 或 Nginx)。
- Zabbix-Web-Service 在Zabbix5.4版中首次出现,基于Go编写。主要作用是定期发送巡检报告到指定邮件账户。
- zabbix-java-gateway
- zabbix-snmptraps
- zabbix-proxy
可以根据不同组合,搭配不同的docker镜像,如下
Zabbix server 收集数据存储(可选MySQL、PostgreSQL等)
- MySQL 数据库支持的 Zabbix server - zabbix/zabbix-server-mysql
- PostgreSQL 数据库支持的 Zabbix server - zabbix/zabbix-server-pgsql
Zabbix web-interface
- 基于 Apache2 Web 服务器以及支持 MySQL 数据库的 Zabbix web 接口 - zabbix/zabbix-web-apache-mysql
- 基于 Apache2 Web 服务器以及支持 PostgreSQL 数据库的 Zabbix web 接口 - zabbix/zabbix-web-apache-pgsql
- 基于 Nginx Web 服务器以及支持 MySQL 数据库的 Zabbix web 接口 - zabbix/zabbix-web-nginx-mysql
- 基于 Nginx Web 服务器以及支持 PostgreSQL 数据库的 Zabbix web 接口 - - zabbix/zabbix-web-nginx-pgsql
安装环境版本
单机安装以下服务。不使用docker安装zabbix agent,安装在容器中的agent监控的是容器的状态,而不是宿主机的状态。
OS: Rocky Linux 9.2 x86_64
docker compose组合: zabbix 7.0 LTS + MySQL 8.0 + Nginx
docker宿主机IP: 10.10.88.2 (这里选择宿主机安装zabbix agent2)
1、前期准备工作
省略docker安装步骤。
2、zabbix docker compose 配置文件
从 Zabbix github官网 获取7.0 LTS 版本 docker compose.yaml
Zabbix 为 Docker 提供了定义和运行复杂 Zabbix 组件的 compose 文件。这些 compose 文件可以在 Zabbix docker 官方镜像仓库 中找到。
官方提供的 docker compose 文件很多,都是根据组件搭配命名
- v3 为 docker compose 版本,具体对应关系在这里查看https://docs.docker.com/compose/compose-file/compose-versioning/
- 基础镜像类型,有 alpine/ubuntu/Oracle linux 可选。
- MySQL 为 zabbix server 所使用的数据库类型,目前有 MySQL/PostgreSQL 二种。
- latest 表示为使用官方的最新镜像,local 是下载本地进行 build 镜像。
这里使用基于 docker-compose_v3_alpine_mysql_latest.yaml 模板,调整适合公司使用。
基于alpine Linux镜像,Zabbix server 后端使用MySQL数据库, Zabbix web使用Nginx展示
也可以通过git方式获取基于 zabbix7.0 LTS配置(可选,非必须)
git clone https://github.com/zabbix/zabbix-docker.git
如果之前已经clone过了,重现拉取服务器最新配置,如:
git pull
git切换分支为7.0,也就是长期支持版本(LTS)
git checkout 7.0
[root@VM8802 zabbix-docker]# ll -tha
已省略部分……
-rw-r--r-- 1 root root 2.8K Jun 6 11:20 .env
drwxr-xr-x 3 root root 4.0K Jun 6 11:20 env_vars
-rw-r--r-- 1 root root 44K Jun 6 11:20 kubernetes.yaml
-rw-r--r-- 1 root root 338 Jun 6 11:20 compose_additional_components.yaml
-rw-r--r-- 1 root root 2.6K Jun 6 11:20 compose_databases.yaml
lrwxrwxrwx 1 root root 42 Jun 6 11:20 compose.yaml -> docker-compose_v3_alpine_mysql_latest.yaml
-rw-r--r-- 1 root root 14K Jun 6 11:20 compose_zabbix_components.yaml
-rw-r--r-- 1 root root 4.1K Jun 6 11:20 docker-compose_v3_ubuntu_mysql_latest.yaml
-rw-r--r-- 1 root root 7.4K Jun 6 11:20 docker-compose_v3_ubuntu_mysql_local.yaml
-rw-r--r-- 1 root root 4.1K Jun 6 11:20 docker-compose_v3_ubuntu_pgsql_latest.yaml
-rw-r--r-- 1 root root 7.7K Jun 6 11:20 docker-compose_v3_ubuntu_pgsql_local.yaml
-rw-r--r-- 1 root root 4.4K Jun 6 11:20 docker-compose_v3_alpine_mysql_latest.yaml
-rw-r--r-- 1 root root 7.6K Jun 6 11:20 docker-compose_v3_alpine_mysql_local.yaml
-rw-r--r-- 1 root root 4.4K Jun 6 11:20 docker-compose_v3_alpine_pgsql_latest.yaml
-rw-r--r-- 1 root root 8.0K Jun 6 11:20 docker-compose_v3_alpine_pgsql_local.yaml
-rw-r--r-- 1 root root 4.3K Jun 6 11:20 docker-compose_v3_ol_mysql_latest.yaml
-rw-r--r-- 1 root root 7.4K Jun 6 11:20 docker-compose_v3_ol_mysql_local.yaml
-rw-r--r-- 1 root root 4.3K Jun 6 11:20 docker-compose_v3_ol_pgsql_latest.yaml
-rw-r--r-- 1 root root 7.7K Jun 6 11:20 docker-compose_v3_ol_pgsql_local.yaml
可以看到当前 compose.yaml 是链接指向 docker-compose_v3_alpine_mysql_latest.yaml
# docker compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up -d
2.1 docker compose配置
官网提供的docker compose文件把所有组件都写上了。可根据自己需求,删除一些不需要的组件配置部分。
当前配置如下组件
zabbix-server
zabbix-server-mysql
zabbix-web-nginx-mysql
zabbix-java-gateway
zabbix-snmptraps
配置文件列表
# tree -a /data/zabbix/
/data/zabbix/
├── compose.yaml
└── zbx_env
├── .env_db_mysql
├── .env_java
├── .env_srv
└── .env_web
官网默认配置了两个网段,其中zabbix-server和zabbix-java-gateway在不同的网段,导致互通有些干扰,这里就仅保留一个网段配置。
compose.yaml
完整配置(基于 docker-compose_v3_alpine_mysql_latest.yaml
修改)
services:
zabbix-server:
container_name: zabbix-server
image: zabbix/zabbix-server-mysql:alpine-7.0-latest
ports:
- 10051