从源代码包升级

概述

本章节提供了使用 Zabbix 官方源代码包,从 Zabbix 4.4.x 成功升级至 Zabbix 5.0.x 所需的步骤。

虽然不是强制性升级Zabbix agents(但建议升级),但是Zabbix server和proxy必须具有相同的主版本。 因此,在server-proxy设置中,必须停止并升级Zabbix server和所有proxy。 保持proxy不再运行将带来任何好处,因为在proxy升级期间,它们的旧数据将被丢弃,并且在proxy配置与server同步之前不会收集新数据。

无法再启动已升级的server,并且无法使用较旧但尚未升级的proxy将数据报告给较新的server。 当从5.0之前的任何版本升级到5.0(或更高版本)时,此方法从未被Zabbix推荐或支持,现已正式禁用,因为server将忽略来自未升级proxy的数据。

请注意,对于 Zabbix proxy 上的 SQLite 数据库,升级前 Zabbix proxy 的历史数据将丢失,因为不支持 SQLite 数据库升级,而且必须手动删除 SQLite 数据库文件。 当第一次启动 Zabbix proxy 并且缺少 SQLite 数据库文件时,Zabibx proxy 会自动创建它。

根据其数据库大小,数据库升级到 5.0 版本可能需要很长时间。

值得注意的是,在升级之前,请务必阅读相关的升级说明!

请阅读下面的升级说明:

早期版本详细的版本升级说明版本之间升级的重要说明/变更
4.4.xFor:
Zabbix 5.0
对IBM DB2的支持下降了;
所需的最低PHP版本从5.4.0升级到7.2.0;
升级了所需的最低数据库版本;
更改了Zabbix PHP文件目录。
4.2.xFor:
Zabbix 4.4
Zabbix 5.0
Jabber,Ez Texting媒体类型已删除。
4.0.x LTSFor:
Zabbix 4.2
Zabbix 4.4
Zabbix 5.0
较旧的proxy不再可以将数据报告给已升级的server;
较新的proxy不再能够与较旧的Zabbix server一起使用。
3.4.xFor:
Zabbix 4.0
Zabbix 4.2
Zabbix 4.4
Zabbix 5.0
‘libpthread’和’zlib’库现在是必需的;
支持删除纯文本协议,并且标头是必需的;
不再支持1.4版之前的Zabbix agents;
现在,被动代理配置中的Server参数是必需的。
3.2.xFor:
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 LTSFor:
Zabbix 3.2
Zabbix 3.4
Zabbix 4.0
Zabbix 4.2
Zabbix 4.4
Zabbix 5.0
数据库升级可能会很慢,具体取决于历史记录表的大小。
2.4.xFor:
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 LTSFor:
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.xFor:
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的要求

在升级过程中运行两个并行的SSH会话可能很方便,在一个过程中执行升级步骤,而在另一个过程中监视server/proxy日志。 例如,在第二个SSH会话中运行tail -f zabbix_server.logtail -f zabbix_proxy.log,向您显示最新的日志文件条目和实时可能的错误。 这对于生产实例可能至关重要。

Zabbix server 升级步骤

1 停止 Zabbix 进程

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

2 备份当前的数据库

这是非常重要的步骤。升级前请确保备份了数据库。如果升级失败(因磁盘空间不足、断电或其他意外导致的升级失败),备份的数据库将大有帮助。

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

在升级前请确保备份了配置文件、PHP 文件和 Zabbix 二进制文件。

4 从源代码包安装新的 Zabbix server

使用此 说明 从源代码编译 Zabbixserver。

5 检查 Zabbix server 配置文件的参数

有关强制性更改的详细信息,请参阅升级说明。

有关新的可选参数,请参阅“5 Zabbix 5.0.0 新特征|新增功能]]”部分。

6 启动新的 Zabbix 进程

启动新的 Zabbix 进程。检查日志文件以查看进程是否成功启动。

待 Zabbix server 的进程启动后,它将自动升级数据库。Zabbix server 将会报告当前(强制和可选)的和所需的数据库版本。如果当前的强制版本早于所需的版本,那么 Zabbix server 会自动执行所需数据库的升级修补程序。数据库升级的开始和进度(百分比)将会写入到 Zabbix server 的日志文件中。当升级完成后,会写入一条 “database upgrade fully completed” 信息到日志文件中。如果升级失败,Zabbix server 将不会启动。如果当前的强制数据库版本比所需的数据库版本新时,则 Zabbix server 也将无法启动。只有当前强制数据库版本对应于所需的强制版本时,Zabbix server 才会启动。

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

在启动 Zabbix server 之前:

  • 请确保数据库用户拥有足够的权限(create table, drop table, create index, drop index);

  • 请确保磁盘有足够的空间。

7 安装新的 Zabbix web 界面

其最小的需要为 PHP 7.2.0 版本。如果升级请按照安装说明进行操作。

8 清除浏览器 Cookies 和缓存

待升级完毕后,可能需要清除浏览器的 Cookies 和缓存,以便 Zabbix 的 Web 界面能正常工作。

Zabbix Proxy 升级步骤

1 停止 Zabbix proxy 进程

停止 Zabbix proxy 进程。

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

在升级前请确保备份了配置文件和 Zabbix proxy 二进制文件。

3 从源代码包安装新的 Zabbix proxy

使用此 说明 从源代码编译 Zabbix proxy。

4 检查 Zabbix proxy 配置文件的参数

此版本中没有对 Zabbix proxy 的 参数 进行强制的更改。有关新的可选参数,详见 Zabbix 5.0.0 新特征章节。

5 启动新的 Zabbix proxy

启动新的 Zabbix proxy。检查日志文件以确定 Zabbix proxy 是否启动成功。

Zabbix proxy 将自动升级数据库。数据库的升级和启动和 Zabbix server 类似。

Zabbix Agent 升级步骤

升级 Zabbix agent 并不是强制性的。如果需要使用新功能时,则可以按需升级 Zabbix agent。

本节中描述的升级过程可用于升级Zabbix agent和Zabbix agent 2。

1 停止 Zabbix agent 进程

停止 Zabbix agent 进程。

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

在升级前请确保备份了配置文件和 Zabbix agent 二进制文件。

3 从源代码包安装新的 Zabbix agent

使用此 说明 从源代码编译 Zabbix agent。

或者,从 Zabbix 下载页面 下载预编译的 Zabbix agent 包。

4 检查 Zabbix agent 配置文件的参数

此版本中没有对agentagent 2参数进行任何强制性更改。

5 启动新的 Zabbix agent

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

Zabbix 次要版本之间的升级

在5.0.x的次要版本之间升级(例如,从5.0.1升级到5.0.3)时,需要对server/proxy/agent执行与主要版本之间升级相同的操作。 唯一的区别是,在次要版本之间升级时,不会对数据库进行任何更改。