本节提供使用 Red Hat Enterprise Linux 的官方 Zabbix 软件包从 Zabbix 5.4.x 成功 升级 到 Zabbix 6.0.x 所需的步骤。
虽然升级 Zabbix agent不是强制性的(但推荐),但 Zabbix 服务器和代理必须是相同的主要版本。 因此,在服务器-代理设置中,必须停止和升级 Zabbix 服务器和所有代理。在服务器升级期间保持代理运行不再带来任何好处,因为在代理升级期间,它们的旧数据将被丢弃,并且不会收集新数据直到代理配置与服务器同步。
请注意,对于代理上的 SQLite 数据库,升级前来自代理的历史数据将丢失,因为不支持 SQLite 数据库升级并且必须手动删除 SQLite 数据库文件。 proxy 第一次启动时 SQLite 数据库文件丢失,proxy 会自动创建。
根据数据库大小,数据库升级到版本 6.0 可能需要很长时间。
升级前请务必阅读相关的升级说明!
提供以下升级说明:
升级自 | 阅读完整的升级说明 | 版本之间最重要的变化 |
---|---|---|
5.4.x · | 对于: Zabbix 6.0 |
所需的最低数据库版本已提高; 如果数据库过时,服务器/代理将不会启动; 审计日志记录丢失 因为数据库结构改变。 |
5.2.x · | 对于: Zabbix 5.4 Zabbix 6.0 |
所需的最低数据库版本已提高; 将删除的监控项汇总为单独的类型。 |
5.0.x LTS | 适用于: Zabbix 5.2 Zabbix 5.4 Zabbix 6.0 |
最低要求的 PHP 版本从 7.2.0 升级到 7.2.5。 |
4.4.x · | 对于: Zabbix 5.0 Zabbix 5.2 Zabbix 5.4 Zabbix 6.0 |
放弃对 IBM DB2 的支持; 所需的最低 PHP 版本从 5.4.0 提高到 7.2.0; 所需的最低数据库版本已提高; 更改了 Zabbix PHP 文件目录。 |
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<br >Zabbix 6.0 |
较旧的代理不再可以向升级后的服务器报告数据; 较新的代理将不再能够与较旧的 Zabbix 服务器一起工作。 |
3.4.x · | 对于: Zabbix 4.0 Zabbix 4.2 Zabbix 4.4 Zabbix 5.0 Zabbix 5.2<br >Zabbix 5.4 Zabbix 6.0 |
'libpthread' 和 'zlib' 库 现在是强制性的; 对纯文本协议的支持被删除,标头是强制性的; 1.4 之前版本的 Zabbix 代理不再受支持; 被动代理配置中的服务器参数现在是强制性的。 |
3.2.x · | 对于: Zabbix 3.4 Zabbix 4.0 Zabbix 4.2 Zabbix 4.4 Zabbix 5.0<br >Zabbix 5.2 Zabbix 5.4 Zabbix 6.0 |
SQLite 支持作为 Zabbix 服务器/前端的后端数据库; 支持 Perl 兼容正则表达式 (PCRE) 而不是 POSIX 扩展;<br >'libpcre' 和 'libevent' 库对于 Zabbix 服务器是必需的; 为用户 p 添加了退出代码检查 参数、远程命令和 system.run[] 项目没有 'nowait' 标志以及 Zabbix 服务器执行的脚本; Zabbix Java 网关必须升级以支持新功能。 |
3.0.x LTS | 适用于: Zabbix 3.2 Zabbix 3.4 Zabbix 4.0 Zabbix 4.2 Zabbix 4.4<br >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<br >Zabbix 4.4 Zabbix 5.0 Zabbix 5.2 Zabbix 5.4 Zabbix 6.0 |
最低要求的 PHP 版本从 5.3.0 升级到 5.4.0 LogFile 必须指定代理参数 |
2.2.x LTS | 适用于: Zabbix 2.4 Zabbix 3.0 Zabbix 3.2 Zabbix 3.4 Zabbix 4.0<br >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<br >Zabbix 4.0 Zabbix 4.2 Zabbix 4.4 Zabbix 5.0 Zabbix 5.2 Zabbix 5.4 Zabbix 6.0 |
所需的最低 PHP 版本从 5.1.6 升级到 5.3.0; 正确的服务器工作需要大小写敏感的MySQL 数据库; 字符集 utf8 和 utf8_bin 排序规则是 Zabbix 服务器与 MySQL 数据库正常工作所必需的。 请参阅数据库创建脚本。 需要“mysqli”PHP 扩展而不是“mysql” |
您可能还想查看 6.0 的 要求。
在升级期间运行两个并行的 SSH 会话可能很方便,在一个会话中执行升级步骤并在另一个会话中监视服务器/代理日志。 例如,在第二个 SSH 会话中运行“tail -f zabbix_server.log”或“tail -f zabbix_proxy.log”,实时显示最新的日志文件条目和可能的错误。 这对于生产实例可能至关重要。
停止 Zabbix 服务器以确保没有新数据插入到数据库。
· # systemctl stop zabbix-server
如果升级代理,也停止代理。
·#systemctl stop zabbix-proxy
不再可能启动升级后的服务器并让旧的和未升级的代理向较新的服务器报告数据。 Zabbix 从未推荐或支持的这种方法现在已被正式禁用,因为服务器将忽略来自未升级代理的数据。
这是非常重要的一步。 确保您有数据库的备份。 如果升级过程失败(磁盘空间不足、电源关闭、任何意外问题),这将有所帮助。
制作 Zabbix 二进制文件、配置文件和 PHP 文件目录的备份副本。
配置文件:
· # mkdir /opt/zabbix-backup/ · # cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/ · # cp /etc/httpd/conf.d/zabbix.conf · /opt/zabbix-backup/
PHP 文件和 Zabbix 二进制文件:
· # cp -R /usr/share/zabbix/ /opt/zabbix-backup/ · # cp -R /usr/share/zabbix-* /opt/zabbix-backup/
要继续升级,必须更新您当前的存储库包。
· # rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-1.el8.noarch.rpm
要升级 Zabbix 组件,您可以运行如下命令:
· # yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-agent
如果使用 PostgreSQL,请在命令中将 mysql
替换为 pgsql
。 如果升级代理,请在命令中将 server
替换为 proxy
。 如果升级agent 2,请在命令中将 zabbix-agent
替换为 zabbix-agent2
。
要使用 Apache on RHEL 8 正确升级 Web 前端,还要运行:
· # yum install zabbix-apache-conf
有关 强制更改 的详细信息,请参阅升级说明。
启动更新后的 Zabbix 组件。
· # systemctl start zabbix-server · # systemctl start zabbix-proxy · # systemctl start zabbix-agent · # systemctl start zabbix-agent2
升级后,您可能需要清除网络浏览器 cookie 和网络浏览器缓存,以便 Zabbix web界面正常工作。
可以在 6.0.x 的次要版本之间升级(例如,从 6.0.1 到 6.0.3)。 次要版本之间的升级很容易。
要执行 Zabbix 次要版本升级,需要运行:
· $ sudo yum upgrade 'zabbix-*'
要执行 Zabbix 服务器次要版本升级运行:
· $ sudo yum upgrade 'zabbix-server-*'
要执行 Zabbix agent次要版本升级运行:
· $ sudo yum upgrade 'zabbix-agent-*'
或者,对于 Zabbix 代理 2:
· $ sudo yum upgrade 'zabbix-agent2-*'
请注意,您也可以在这些命令中使用“更新”而不是“升级”。 虽然“升级”将删除过时的包,但“更新”将保留它们。