3 从容器中升级
概述
本节描述了成功升级到 Zabbix 7.0.x 容器所需的步骤。
单独的说明集用于升级各个 Zabbix 组件镜像和 Docker compose 文件。
在升级之前,请务必阅读相关的升级说明!
在开始升级之前,确认用户对数据库具有必要的升级权限。
从 Zabbix 6.0 或更早版本升级时,需要在升级过程中创建确定性触发器。如果 MySQL/MariaDB 启用了二进制日志记录,这需要超级用户权限或设置变量/配置参数 log_bin_trust_function_creators = 1。请参阅数据库创建脚本以了解如何设置该变量。
注意,如果从控制台执行,变量将仅被暂时设置,并将在 Docker 重启时被删除。在这种情况下,保持您的 SQL 服务运行,只停止 zabbix-server 服务,运行 ‘docker compose down zabbix-server’ 然后 ‘docker compose up -d zabbix-server’。
或者,您可以在配置文件中设置此变量。
根据数据库的大小,升级到 7.0 版本可能需要相当长的时间。
Zabbix 镜像升级
以下步骤可用于升级任何 Zabbix 组件。将 zabbix-server-mysql
替换为所需的组件镜像名称。
检查当前镜像版本:
docker inspect -f '{{ .Config.Image }}' zabbix-server-mysql
拉取所需的镜像版本,例如:
docker pull zabbix/zabbix-server-mysql:alpine-7.0-latest
zabbix/zabbix-server-mysql:alpine-7.0-latest
将拉取基于 Alpine Linux 的最新发布的 Zabbix server 7.0 版本支持 MySQL。将其替换为您需要的 Docker 仓库和标签组合。有关可用选项的列表,请参见从容器安装。停止容器:
docker stop zabbix-server-mysql
移除容器:
docker rm zabbix-server-mysql
配置示例
使用 MySQL 的 Zabbix server:
```sh
docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
--network=zabbix-net \
-p 10051:10051 \
--restart unless-stopped \
-d zabbix/zabbix-server-mysql:alpine-7.0-latest
```
使用 PostgreSQL 的 Zabbix server:
```sh
docker run --name zabbix-server-pgsql -t \
-e DB_SERVER_HOST="postgres-server" \
-e POSTGRES_USER="zabbix" \
-e POSTGRES_PASSWORD="zabbix_pwd" \
-e POSTGRES_DB="zabbix" \
-e ZBX_ENABLE_SNMP_TRAPS="true" \
--network=zabbix-net \
-p 10051:10051 \
--volumes-from zabbix-snmptraps \
--restart unless-stopped \
-d zabbix/zabbix-server-pgsql:alpine-7.0-latest
```
更多配置示例,包括其他 Zabbix 组件的示例,可在从容器安装页面找到。
验证更新:
docker logs -f zabbix-server-mysql
Compose 文件
如果您使用 compose 文件 安装了 Zabbix,请按照本节中的升级说明进行操作。
检查当前镜像版本:
docker inspect -f '{{ .Config.Image }}' zabbix-server-mysql
从 GitHub 仓库 拉取最新更新并切换到所需分支:
git pull
git checkout 7.0
使用新的 compose 文件启动 Zabbix 组件:
docker-compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up -d
验证更新:
docker logs -f zabbix-server-mysql
有关更多详细信息,包括支持的环境变量和卷挂载点列表,请参见从容器安装。