1 Red Hat Enterprise Linux/CentOS

概述

本节提供了使用用于Red Hat Enterprise Linux / CentOS的官方Zabbix软件包从Zabbix 4.4.x成功升级到Zabbix 5.0.x所需的步骤。

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

请注意,对于agent上的SQLite数据库,升级之前来自agent的历史记录数据将丢失,因为不支持SQLite数据库升级,并且必须手动删除SQLite数据库文件。 首次启动agent并且缺少SQLite数据库文件时,agent会自动创建它。

根据数据库大小,数据库升级到版本5.0可能会花费很长时间。

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

RHEL / CentOS 7用户,升级前端时请注意PHP> = 7.2版本要求!请务必阅读相关文档!

请阅读下面的升级说明:

早期版本详细的版本升级说明版本之间升级的重要说明/变更
4.4.xFor:
Zabbix5.0
IBM DB2的支持下降;
所需的最低PHP版本从5.4.0升级到7.2.0;
升级了所需的最低数据库版本。
4.2.xFor:
Zabbix 4.4
Zabbix5.0
Jabber,Ez Texting媒体类型已删除。
4.0.x LTSFor:
Zabbix 4.2
Zabbix 4.4
Zabbix5.0
较旧的代理不再可以将数据报告给已升级的服务器;
较新的agent不再能够与较旧的Zabbix server一起使用。
3.4.xFor:
Zabbix 4.0
Zabbix 4.2
Zabbix 4.4
Zabbix5.0
‘libpthread’和’zlib’库现在是必需的;
支持删除纯文本协议,并且标头是必需的;
不再支持1.4版之前的Zabbix agent;
现在,被动代理配置中的Server参数是必需的。
3.2.xFor:
Zabbix 3.4
Zabbix 4.0
Zabbix 4.2
Zabbix 4.4
Zabbix5.0
SQLite支持作为Zabbix server/前端的后端数据库删除;
支持Perl兼容正则表达式(PCRE),而不是POSIX扩展;
Zabbix server必需的’libpcre’和’libevent’库;
添加了退出代码检查,以检查用户参数,远程命令和system.run []项目(不带’nowait’标志)以及Zabbix server执行的脚本;
Zabbix Java gateway必须升级以支持新功能。
3.0.x LTSFor:
Zabbix3.2
Zabbix 3.4
Zabbix 4.0
Zabbix 4.2
Zabbix 4.4
Zabbix5.0
数据库升级可能会很慢,具体取决于历史记录表的大小。

您可能还需要检查5.0的要求

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

升级步骤

1 停止 Zabbix 进程

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

  1. # systemctl stop zabbix-server

如果需要升级 Zabbix proxy,那么同样停止 Zabbix proxy 进程。

  1. # systemctl stop zabbix-proxy

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

2 备份当前的数据库

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

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

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

配置文件:

  1. # mkdir /opt/zabbix-backup/
  2. # cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/
  3. # cp /etc/httpd/conf.d/zabbix.conf /opt/zabbix-backup/

PHP 文件和 Zabbix 二进制文件:

  1. # cp -R /usr/share/zabbix/ /opt/zabbix-backup/
  2. # cp -R /usr/share/doc/zabbix-* /opt/zabbix-backup/
4 升级 Zabbix 软件仓库配置包

在升级之前,必须更新当前的软件仓库包:

RHEL/CentOS 8

  1. # rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/8/x86_64/zabbix-release-5.0-1.el8.noarch.rpm

RHEL/CentOS 7

  1. # rpm -Uvh https://repo.zabbix.com/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
5 升级 Zabbix 组件

运行以下命令以升级 Zabbix 组件:

  1. # yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-agent

如果使用PostgreSQL,请在命令中将mysql替换为pgsql。 如果要升级proxy,请在命令中用proxy替换server。 如果要升级agent 2,请在命令中将zabbix-agent替换为zabbix-agent2

要在RHEL 8上使用Apache正确升级Web前端,请运行:

  1. # yum install zabbix-apache-conf

并对此文件进行必要的更改

更改要升级RHEL 7上的Web前端,请遵循本页上的说明(安装PHP 7.2或更高版本需要额外的步骤)。 特别是,如果使用Apache Web服务器,请确保安装zabbix-apache-conf-scl软件包。

  1. # yum install zabbix-apache-conf-scl
6 检查 Zabbix 组件配置文件的参数

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

7 启动 Zabbix 进程

启动升级后的 Zabbix 组件。

  1. # systemctl start zabbix-server
  2. # systemctl start zabbix-proxy
  3. # systemctl start zabbix-agent
  4. # systemctl start zabbix-agent2
8 清除浏览器的 Cookies 和缓存

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

Zabbix 次要版本之间的升级

可以在5.0.x的次要版本之间进行升级(例如,从5.0.1升级到5.0.3)。 在次要版本之间升级很容易。

要执行Zabbix次要版本升级,需要运行:

  1. $ sudo yum upgrade 'zabbix-*'

在升级 Zabbix server 的次要版本时,只需运行以下命令:

  1. $ sudo yum upgrade 'zabbix-server-*'

在升级 Zabbix agent 的次要版本时,只需运行以下命令:

  1. $ sudo yum upgrade 'zabbix-agent-*'

或者,对于Zabbix agent 2:

  1. $ sudo yum upgrade 'zabbix-agent2-*'

请注意,您也可以在这些命令中使用 ‘update’ 而不是 ‘upgrade’。 虽然 ‘upgrade’ 会删除过时的包,但 ‘update’ 会保留它们。