1 从源代码升级

概述

本节提供了成功所需的步骤 upgrade 从Zabbix 5.4.x升级到Zabbix 6.0.x 使用官方Zabbix源码

虽然升级Zabbix agents并非强制要求(但建议执行),Zabbix 服务器和proxies必须属于same major version。因此,在服务器-proxy中 安装, Zabbix server 和所有 proxies 必须停止并进行升级. 保持 proxies 运行不再带来任何益处,因为在 proxy 期间 升级后,旧数据将被丢弃且不会生成新数据 在proxy配置与服务器同步之前收集

升级后无法再启动 服务器并拥有较旧且未升级的proxies报告数据需要迁移至新版本 服务器。这种方法从未被推荐或支持 Zabbix现已正式禁用,因为服务器将忽略来自 未升级的proxies

请注意,在proxies上使用SQLite数据库时,来自proxies的历史数据 升级前的数据将会丢失,因为SQLite数据库升级不支持 支持,且必须手动移除SQLite数据库file。当 proxy首次启动时,SQLite数据库file 缺失时,proxy会自动创建它。

根据数据库大小,升级至version 6.0可能需要 很长时间。

升级前请确保阅读相关 升级注意事项!

以下升级说明可供参考:

从版本升级 阅读完整升级说明 版本间最重要的变更
5.4.x 适用于:
Zabbix 6.0
最低数据库版本要求提升;
server/proxy 在数据库版本过旧时将无法启动;
由于数据库结构变更导致的审计日志记录丢失.
5.2.x 适用于:
Zabbix 5.4
Zabbix 6.0
最低要求数据库版本提升;
聚合 监控项 不再作为独立类型保留.
5.0.x LTS 适用于:
Zabbix 5.2
Zabbix 5.4
Zabbix 6.0
最低要求的PHP version 从7.2.0提升至7.2.5.
4.4.x 适用于:
Zabbix 5.0
Zabbix 5.2
Zabbix 5.4
Zabbix 6.0
停止支持IBM DB2;
最低PHP version要求从5.4.0提升至7.2.0;
最低数据库版本要求提升;
变更了Zabbix PHP file目录.
4.2.x 适用于:
Zabbix 4.4
Zabbix 5.0
Zabbix 5.2
Zabbix 5.4
Zabbix 6.0
Jabber、Ez Texting媒体类型已移除。
4.0.x LTS 适用于:
Zabbix 4.2
Zabbix 4.4
Zabbix 5.0
Zabbix 5.2
Zabbix 5.4
Zabbix 6.0
旧版proxies无法向升级后的服务器报告数据;
新版agents将无法与旧版Zabbix server协同工作.
3.4.x 适用于:
Zabbix 4.0
Zabbix 4.2
Zabbix 4.4
Zabbix 5.0
Zabbix 5.2
Zabbix 5.4
Zabbix 6.0
'libpthread'和'zlib'库现为强制依赖项;
不再支持纯文本协议且必须包含消息头;
不再支持1.4版本前的version Zabbix agents;
被动proxy配置中的Server参数现为必填项.
3.2.x 适用于:
Zabbix 3.4
Zabbix 4.0
Zabbix 4.2
Zabbix 4.4
Zabbix 5.0
Zabbix 5.2
Zabbix 5.4
Zabbix 6.0
不再支持SQLite作为Zabbix server/前端后端数据库;
采用Perl兼容正则表达式(PCRE)替代POSIX扩展正则;
Zabbix server必须依赖'libpcre'和'libevent'库;
新增对用户参数、远程命令及不带'nowait'flag的system.run[] 监控项以及Zabbix server执行脚本的退出码检查;
Zabbix Java网关需升级以支持新功能.
3.0.x LTS 适用于:
Zabbix 3.2
Zabbix 3.4
Zabbix 4.0
Zabbix 4.2
Zabbix 4.4
Zabbix 5.0
Zabbix 5.2
Zabbix 5.4
Zabbix 6.0
数据库升级可能较慢,具体取决于历史表的大小。
2.4.x 适用于:
Zabbix 3.0
Zabbix 3.2
Zabbix 3.4
Zabbix 4.0
Zabbix 4.2
Zabbix 4.4
Zabbix 5.0
Zabbix 5.2
Zabbix 5.4
Zabbix 6.0
PHP version 最低要求版本从5.3.0提升至5.4.0
必须指定 LogFile agent 参数
2.2.x LTS 适用于:
Zabbix 2.4
Zabbix 3.0
Zabbix 3.2
Zabbix 3.4
Zabbix 4.0
Zabbix 4.2
Zabbix 4.4
Zabbix 5.0
Zabbix 5.2
Zabbix 5.4
Zabbix 6.0
基于节点的分布式监控已移除
2.0.x 适用于:
Zabbix 2.2
Zabbix 2.4
Zabbix 3.0
Zabbix 3.2
Zabbix 3.4
Zabbix 4.0
Zabbix 4.2
Zabbix 4.4
Zabbix 5.0
Zabbix 5.2
Zabbix 5.4
Zabbix 6.0
最低要求的PHP version 从5.1.6提升至5.3.0;
服务器正常运行需要区分大小写的MySQL数据库; Zabbix server 要正常使用MySQL数据库需要字符集utf8和utf8_bin排序规则。参见mysqlmariadb.
需要'mysqli' PHP扩展替代'mysql数据库'

您可能还需要查看 requirements 适用于6.0版本。

在操作过程中,同时开启两个并行的SSH会话可能会比较方便run 升级,在一个步骤中执行升级操作并监控 server/proxy 登录到另一个。例如,run tail -f zabbix_server.logtail -f zabbix_proxy.log 在第二个 SSH会话显示最新的日志file条目及可能的错误 实时。这对生产环境可能至关重要 实例。

服务器升级过程

1 停止服务器

停止 Zabbix server 以确保没有新数据插入数据库.

2 备份现有Zabbix数据库

这是一个非常重要的步骤。请确保您已备份数据库。当升级过程失败时(如磁盘空间不足、断电或任何意外问题),备份将起到关键作用。

3 备份配置文件、PHP 文件及 Zabbix 二进制文件

对Zabbix二进制文件、配置文件及PHPfile目录进行copy备份操作

4 安装新服务器二进制文件

使用这些 安装-zabbix-守护进程 从源代码编译Zabbix server.

5 审查服务器配置参数

确保实现通常在升级说明新功能页面的相关子章节中提及的最新配置参数(如果有的话)。

6 启动新的 Zabbix 二进制文件

启动新的二进制文件。检查日志文件确认二进制文件是否已成功启动。

Zabbix server 将自动升级数据库。启动时, Zabbix server 会报告当前(强制和可选)及所需的 数据库版本。如果当前强制 version 比所需 version 旧, Zabbix server 会自动执行所需的数据库升级补丁。数据库升级的 开始和进度级别(百分比)会被写入 Zabbix server 日志 file。当 升级完成时,一条"数据库升级完全完成"的消息会被 写入日志 file。如果任何升级补丁失败,Zabbix 服务器将不会启动。如果当前强制数据库 version 比所需版本新, Zabbix server 也不会启动。Zabbix server 只会在当前强制数据库 version 与所需强制 version 匹配时启动。

8673:20161117:104750.259 current database version (mandatory/optional): 03040000/03040000
       8673:20161117:104750.259 required mandatory version: 03040000

在启动服务器之前:

  • 确保数据库用户拥有足够的权限(create 表, 删除表,create 索引,删除索引)
  • 确保有足够的可用磁盘空间。
7 安装新的Zabbix web界面

PHP最低要求版本为version 7.2.5。如有需要请更新并遵循 installation instructions

8 清除浏览器cookie和缓存

升级后,您可能需要clear网页浏览器cookies和网页浏览器缓存以使Zabbix web界面正常工作。

Proxy 升级过程

1 停止 proxy

停止 Zabbix proxy.

2 备份配置文件和 Zabbix proxy 二进制文件

对Zabbix proxy二进制文件和配置file进行备份copy

3 安装新的 proxy 二进制文件

使用这些 安装-zabbix-守护进程 从源代码编译Zabbix proxy.

4 审查 proxy 配置参数

请务必查阅Upgrade notes以确认是否需要调整配置参数

5 启动新的 Zabbix proxy

启动新的Zabbix proxy. 检查日志文件确认proxy是否已成功启动.

Zabbix proxy将自动升级数据库. 数据库升级过程与启动6-启动新的-zabbix-二进制文件时类似.

Agent升级过程

升级 agents 并非强制要求。只有当需要访问新功能时,才需要升级 agents。

本节描述的升级流程既适用于升级 Zabbix agent 也适用于升级 Zabbix agent 2。

1 停止agent

停止 Zabbix agent.

2 备份配置文件和 Zabbix agent 二进制文件

对Zabbix agent二进制文件和配置file进行备份copy。

3 安装新的 agent 二进制文件

使用这些 安装-zabbix-守护进程 从源代码编译Zabbix agent.

或者,您可以从 Zabbix download page 下载预编译的Zabbix agents.

4 审查agent配置参数

此version中既没有对agent也没有对agent 2参数的强制性变更.

5 启动新的Zabbix agent

启动新的Zabbix agent。检查日志文件确认agent是否已成功启动。

小版本间升级

在6.0.x小版本间升级时(例如从6.0.1升级到6.0.3),需要对server/proxy/agent执行与主版本升级时相同的execute操作。唯一区别在于小版本升级时不会对数据库进行任何更改。