本章节提供了使用 Zabbix 官方源代码包,从 Zabbix 4.4.x 成功升级至 Zabbix 5.0.x 所需的步骤。
虽然不是强制性升级Zabbix agents(但建议升级),但是Zabbix server和proxy必须具有相同的主版本。 因此,在server-proxy设置中,必须停止并升级Zabbix server和所有proxy。 保持proxy不再运行将带来任何好处,因为在proxy升级期间,它们的旧数据将被丢弃,并且在proxy配置与server同步之前不会收集新数据。
<note important>无法再启动已升级的server,并且无法使用较旧但尚未升级的proxy将数据报告给较新的server。 当从5.0之前的任何版本升级到5.0(或更高版本)时,此方法从未被Zabbix推荐或支持,现已正式禁用,因为server将忽略来自未升级proxy的数据。 :::
请注意,对于 Zabbix proxy 上的 SQLite 数据库,升级前 Zabbix proxy 的历史数据将丢失,因为不支持 SQLite 数据库升级,而且必须手动删除 SQLite 数据库文件。 当第一次启动 Zabbix proxy 并且缺少 SQLite 数据库文件时,Zabibx proxy 会自动创建它。
根据其数据库大小,数据库升级到 5.0 版本可能需要很长时间。
<note warning>值得注意的是,在升级之前,请务必阅读相关的升级说明! :::
请阅读下面的升级说明:
早期版本 详细的 | 本升级说明 版本之间升级的重要说明/ | 更 |
---|---|---|
4.4.x | For: Zabbix 5.0 |
对IBM DB2的支持下降了; 所需的最低PHP版本从5.4.0升级到7.2.0; 升级了所需的最低数据库版本; 更改了Zabbix PHP文件目录。 |
4.2.x | For: Zabbix 4.4 Zabbix 5.0 |
Jabber,Ez Texting媒体类型已删除。 |
4.0.x LTS | For: Zabbix 4.2 Zabbix 4.4 Zabbix 5.0 |
较旧的proxy不再可以将数据报告给已升级的server; 较新的proxy不再能够与较旧的Zabbix server一起使用。 |
3.4.x | For: Zabbix 4.0 Zabbix 4.2 Zabbix 4.4 Zabbix 5.0 |
'libpthread'和'zlib'库现在是必需的; 支持删除纯文本协议,并且标头是必需的; 不再支持1.4版之前的Zabbix agents; 现在,被动代理配置中的Server参数是必需的。 |
3.2.x | For: Zabbix 3.4 Zabbix 4.0 Zabbix 4.2 Zabbix 4.4 Zabbix 5.0 |
SQLite支持作为Zabbix server/frontend的后端数据库删除; 支持Perl兼容正则表达式(PCRE),而不是POSIX扩展; Zabbix server必需的'libpcre'和'libevent'库; 添加了退出代码检查,以检查用户参数,远程命令和system.run []项目(不带'nowait'标志)以及Zabbix server执行的脚本; Zabbix Java gateway必须升级以支持新功能。 |
3.0.x LTS | For: Zabbix 3.2 Zabbix 3.4 Zabbix 4.0 Zabbix 4.2 Zabbix 4.4 Zabbix 5.0 |
数据库升级可能会很慢,具体取决于历史记录表的大小。 |
2.4.x | For: Zabbix 3.0 Zabbix 3.2 Zabbix 3.4 Zabbix 4.0 Zabbix 4.2 Zabbix 4.4 Zabbix 5.0 |
所需的最低PHP版本从5.3.0升级到5.4.0 必须指定LogFile agent参数 |
2.2.x LTS | For: Zabbix 2.4 Zabbix 3.0 Zabbix 3.2 Zabbix 3.4 Zabbix 4.0 Zabbix 4.2 Zabbix 4.4 Zabbix 5.0 |
基于节点的分布式监视已删除 |
2.0.x | For: 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 |
所需的最低PHP版本从5.1.6升级到5.3.0; 区分大小写的MySQL数据库是服务器正常工作所必需的; 字符集utf8和utf8_bin排序规则是Zabbix server与MySQL数据库一起正常工作所必需的。 请参阅数据库创建脚本。 需要'mysqli'PHP扩展名而不是'mysql' |
您可能还需要检查5.0的要求。
<note tip>在升级过程中运行两个并行的SSH会话可能很方便,在一个过程中执行升级步骤,而在另一个过程中监视server/proxy日志。 例如,在第二个SSH会话中运行tail -f zabbix_server.log
或tail -f zabbix_proxy.log
,向您显示最新的日志文件条目和实时可能的错误。 这对于生产实例可能至关重要。 :::
停止 Zabbix server 以确保没有新数据插入数据库。
这是非常重要的步骤。升级前请确保备份了数据库。如果升级失败(因磁盘空间不足、断电或其他意外导致的升级失败),备份的数据库将大有帮助。
在升级前请确保备份了配置文件、PHP 文件和 Zabbix 二进制文件。
使用此 说明 从源代码编译 Zabbixserver。
有关强制性更改的详细信息,请参阅升级说明。
有关新的可选参数,请参阅“5 Zabbix 5.0.0 新特征|新增功能]]”部分。
启动新的 Zabbix 进程。检查日志文件以查看进程是否成功启动。
待 Zabbix server 的进程启动后,它将自动升级数据库。Zabbix server 将会报告当前(强制和可选)的和所需的数据库版本。如果当前的强制版本早于所需的版本,那么 Zabbix server 会自动执行所需数据库的升级修补程序。数据库升级的开始和进度(百分比)将会写入到 Zabbix server 的日志文件中。当升级完成后,会写入一条 "database upgrade fully completed" 信息到日志文件中。如果升级失败,Zabbix server 将不会启动。如果当前的强制数据库版本比所需的数据库版本新时,则 Zabbix server 也将无法启动。只有当前强制数据库版本对应于所需的强制版本时,Zabbix server 才会启动。
8673:20161117:104750.259 current database version (mandatory/optional): 03040000/03040000
8673:20161117:104750.259 required mandatory version: 03040000
在启动 Zabbix server 之前:
其最小的需要为 PHP 7.2.0 版本。如果升级请按照安装说明进行操作。
待升级完毕后,可能需要清除浏览器的 Cookies 和缓存,以便 Zabbix 的 Web 界面能正常工作。
停止 Zabbix proxy 进程。
在升级前请确保备份了配置文件和 Zabbix proxy 二进制文件。
使用此 说明 从源代码编译 Zabbix proxy。
此版本中没有对 Zabbix proxy 的 参数 进行强制的更改。有关新的可选参数,详见 Zabbix 5.0.0 新特征章节。
启动新的 Zabbix proxy。检查日志文件以确定 Zabbix proxy 是否启动成功。
Zabbix proxy 将自动升级数据库。数据库的升级和启动和 Zabbix server 类似。
升级 Zabbix agent 并不是强制性的。如果需要使用新功能时,则可以按需升级 Zabbix agent。
本节中描述的升级过程可用于升级Zabbix agent和Zabbix agent 2。
停止 Zabbix agent 进程。
在升级前请确保备份了配置文件和 Zabbix agent 二进制文件。
使用此 说明 从源代码编译 Zabbix agent。
或者,从 Zabbix 下载页面 下载预编译的 Zabbix agent 包。
此版本中没有对agent或agent 2参数进行任何强制性更改。
启动新的 Zabbix agent。检查日志文件以确定 Zabbix agent 是否启动成功。
在5.0.x的次要版本之间升级(例如,从5.0.1升级到5.0.3)时,需要对server/proxy/agent执行与主要版本之间升级相同的操作。 唯一的区别是,在次要版本之间升级时,不会对数据库进行任何更改。