从容器升级
概述
本节介绍成功升级到 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
更多详细信息(包括受支持的环境变量列表和卷挂载点)请参见从容器安装。