从容器升级 3

概述

本节描述了成功将 Zabbix 7.0.x 容器 升级 upgrade 所需的步骤。

针对升级单个 Zabbix 组件镜像 和 Docker 编排文件 提供了不同的操作指南。

升级前请务必阅读相关的 upgrade notes

开始升级前,请确认用户对数据库具有升级所需的权限。

对于从 Zabbix 6.0 或更早版本的升级,在升级过程中需要创建确定性触发器。 如果 MySQL/mariadb 启用了二进制日志记录,则需要超级用户权限或设置变量/配置参数 log_bin_trust_function_creators = 1。 有关设置该变量的说明,请参见 mysqlmariadb。 请注意,如果从控制台执行,该变量仅临时设置,在 Docker 重启后将失效。 在这种情况下,请保持 SQL 服务运行,仅通过运行 'docker compose down zabbix-server' 然后 'docker compose up -d zabbix-server' 停止并重新启动 zabbix-server 服务。 或者,您可以在配置文件中设置此变量。

根据数据库的大小,升级到 version 7.0 可能会耗时较长。

Zabbix镜像升级

以下步骤可用于升级任何 Zabbix 组件。将 zabbix-server-mysql 替换为所需的组件镜像名称。

1. 检查当前镜像版本:

docker inspect -f '{{ .Config.Image }}' zabbix-server-mysql

2. 拉取所需镜像版本,例如:

docker pull zabbix/zabbix-server-mysql:alpine-7.0-latest

zabbix/zabbix-server-mysql:alpine-7.0-latest 将拉取基于 Alpine Linux 的最新发布的小版本 version,该版本支持 MySQL,并且对应 Zabbix server 7.0。请将其替换为所需的 Docker 仓库名称和标签组合。有关可用选项列表,请参见 docker

3. 停止容器:

docker stop zabbix-server-mysql

4. 删除容器:

docker rm zabbix-server-mysql

5. 执行 docker run 命令并附加其他参数以指定所需的 环境变量 和/或 ,从而启动更新后的容器。

配置示例

使用 MySQL 的 Zabbix server:

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:

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 组件的示例)可在 示例 页面上找到。

6. 验证更新:

docker logs -f zabbix-server-mysql

Compose文件

如果您是通过docker-compose安装的Zabbix,请遵循本节中的升级说明。

1. 检查当前镜像版本:

docker inspect -f '{{ .Config.Image }}' zabbix-server-mysql

2. 从GitHub的repository拉取最新更新,并切换到所需的分支:

git pull
       git checkout 7.0

3. 使用新的compose文件启动Zabbix组件:

docker-compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up -d

4. 验证更新:

docker logs -f zabbix-server-mysql

更多详细信息,请参见docker-compose,包括支持的环境变量列表和卷挂载点。