从容器升级

概述

本节介绍成功升级到 Zabbix 8.0.x 容器所需的步骤。

针对升级单个 Zabbix 组件镜像和 Docker compose 文件,分别提供了不同的说明。

升级前,请务必阅读相关的升级说明

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

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

根据数据库的大小,升级到 8.0 版本可能需要相当长的时间。

Zabbix 镜像升级

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

1. 检查当前镜像版本:

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

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

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

zabbix/zabbix-server-mysql:alpine-8.0-latest 将拉取基于 Alpine Linux、支持 MySQL 的 Zabbix 服务器 8.0 最新已发布次要版本。 请将其替换为您所需的 Docker 仓库名称和标签组合。 可用选项列表请参见从容器安装

3. 停止容器:

docker stop zabbix-server-mysql

4. 删除容器:

docker rm zabbix-server-mysql

5. 通过执行 docker run 命令启动更新后的容器,并附加额外参数以指定所需的环境变量和/或挂载点

配置示例

使用 MySQL 的 Zabbix 服务器:

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-8.0-latest

使用 PostgreSQL 的 Zabbix 服务器:

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-8.0-latest

MySQL 服务器:

docker run --name mysql-server -t \
    -e MYSQL_DATABASE="zabbix" \
    -e MYSQL_USER="zabbix" \
    -e MYSQL_PASSWORD="zabbix_pwd" \
    -e MYSQL_ROOT_PASSWORD="root_pwd" \
    --network=zabbix-net \
    --restart unless-stopped \
    -d mysql:8.4-oracle \
    --character-set-server=utf8mb4--collation-server=utf8mb4_bin \

更多配置示例(包括其他 Zabbix 组件的示例)可在从容器安装页面找到。

6. 验证更新:

docker logs -f zabbix-server-mysql

Compose 文件

如果您使用 compose 文件 安装了 Zabbix,请按照本节中的升级说明进行操作。

1. 检查当前镜像版本:

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

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

git pull
git checkout 8.0

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

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

4. 验证更新:

docker logs -f zabbix-server-mysql

更多详细信息(包括受支持的环境变量列表和卷挂载点)请参见从容器安装