2022 Zabbix中国峰会
2022 Zabbix中国峰会

1 从源码包升级

概述

本节提供了使用官方 Zabbix 源码从 Zabbix 6.4.x 升级到 Zabbix 7.0.x 的步骤。

在升级之前,请务必阅读相关的 升级说明

您可能还需要查看 7.0 的 要求

在升级过程中,运行两个并行的 SSH 会话可能会很方便,一个会话执行升级步骤,另一个会话监控服务器/代理日志。例如,在第二个 SSH 会话中运行 tail -f zabbix_server.logtail -f zabbix_proxy.log,实时显示最新的日志文件条目和可能的错误。这对于生产环境实例来说可能是至关重要的。

Server 升级步骤

1 停止 Server 服务

停止 Zabbix server 服务并确认不再有新的数据写入数据库。

2 备份当前的 Zabbix 数据库

这是非常重要的一步。确保您有数据库的备份,如果升级过程失败(如磁盘空间不足、断电等任何意外问题),它将有所帮助。

3 备份配置文件、PHP 文件和 Zabbix 程序文件

备份 Zabbix 程序文件、配置文件和 PHP 文件目录。

4 安装新的server程序文件

查看从源代码编译 Zabbix Server 的 说明

5 检查服务器配置参数

请务必查看 升级说明,以检查是否需要更改配置参数。

有关新的可选参数,请参阅 新特性 页面。

6 启动新的 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

在启动 server 服务之前:

  • 确保数据库用户有足够的权限(创建表、删除表、创建索引、删除索引);
  • 确保您有足够的可用磁盘空间。
7 安装新的 Zabbix web 界面

要求的最低 PHP 版本是 7.2.5。可参阅 安装说明

升级后,您可能需要清除 Web 浏览器的 cookie 和缓存信息,以使 Zabbix Web 界面正常工作。

Proxy 升级步骤

1 停止 proxy 服务

停止 proxy 服务

2 备份配置文件和 Zabbix Proxy 旧版本程序

备份配置文件和 Zabbix Proxy 旧版本程序。

3 安装新的 proxy 程序

参考从源码编译安装 Zabbix proxy 的 说明

4 查看 proxy 配置参数

此版本没有对 proxy 的 参数 做强制性变更。

5 启动新的 Zabbix proxy

启动新的 Zabbix proxy 服务。检查日志以确认是否升级成功。

Zabbix proxy 会自动升级数据库。数据库升级与启动 Zabbix server 服务类似。

Agent 升级步骤

升级 agent 不是强制性的。只有在需要使用新功能时才需要升级 agent。

本节的升级过程适用于升级 Zabbix agent 和 Zabbix agent2。

1 停止 agent 服务

停掉 Zabbix agent 服务。

2 备份配置文件和 Zabbix agent 程序文件

备份配置文件和 Zabbix agent 程序文件。

3 安装新的 agent 程序文件

参考源码编译安装 Zabbix agent 的 说明

4 查看 agent 配置参数

在此版本中,agentagent2 的参数都没有强制更改部分。

5 启动新的 Zabbix agent

启动新的 Zabbix agent 服务。检查日志以确认启动成功。

次要版本间的升级

在 7.0.x 的次要版本之间升级时(例如从 7.0.1 升级到 7.0.3),需要执行与主要版本升级时相同的服务器/代理/代理操作。唯一的区别是,在次要版本间升级时,不会对数据库进行更改。