从源代码包升级
概述
本章节提供了使用 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.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的要求。
在升级过程中运行两个并行的SSH会话可能很方便,在一个过程中执行升级步骤,而在另一个过程中监视server/proxy日志。 例如,在第二个SSH会话中运行tail -f zabbix_server.log
或tail -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 才会启动。
8673:20161117:104750.259 current database version (mandatory/optional): 03040000/03040000
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 配置文件的参数
此版本中没有对agent或agent 2参数进行任何强制性更改。
5 启动新的 Zabbix agent
启动新的 Zabbix agent。检查日志文件以确定 Zabbix agent 是否启动成功。
Zabbix 次要版本之间的升级
在5.0.x的次要版本之间升级(例如,从5.0.1升级到5.0.3)时,需要对server/proxy/agent执行与主要版本之间升级相同的操作。 唯一的区别是,在次要版本之间升级时,不会对数据库进行任何更改。