1 Red Hat 企业版 Linux/CentOS

概述

本章节介绍如何使用由官方发布的、基于Red Hat 企业版 Linux/CentOS 系统的Zabbix二进制升级包,将当前应用的Zabbix 5.4.x 版本升级 到最新的 Zabbix 6.0.x 版本。

虽然Zabbix官方并未强制要求需要及时升级 Zabbix agents(推荐升级),但在使用Zabbix 的过程中,需要保持 Zabbix server 和 proxies 保持 相同的版本。因此,在服务器和代理服务器升级过程中,Zabbix Server 和所有的 proxies 都必须暂停进程以完成升级。在升级过程中不推荐坚持所有 Zabbix proxy 的运行,完成升级后所有的旧数据都会被摒弃。并且除非 proxy 的配置已完成同步操作,不会有新的数据上传。

请注意,若您在 proxy 端应用 SQLite 数据库,那么 proxy 升级之前所存储的数据将全部被清除。因为 SQLite 数据库的升级操作是不被支持的并且 SQLite 数据库文档需要被手动清除。当 proxy 第一次启动时,发现 SQLite 文档不存在,那么 proxy 会自动生成数据库文档。

6.0版本升级的时间长短取决于数据库的总体大小。

请务必在升级前仔细阅读相关的升级文档!

下表中列举了当前所有可参考的升级文档:

当前版本阅读完整的升级文档不同版本间的重要升级内容
5.4.x适用于:
Zabbix 6.0
提高了最低要求的数据库版本;
若数据库版本不满足要求,Server/proxy 将不会启动;
由于架构发生变化,旧的审计日志将会被摒弃。
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.5;
提高了对数据库最低版本的要求;
改变了 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
Zabbix 6.0
旧版本的 Zabbix proxies 将不会再向升级过的 server 发送数据;
新版本的agent 不再能够与旧的 Zabbix server 一同运作。
3.4.x适用于:
Zabbix 4.0
Zabbix 4.2
Zabbix 4.4
Zabbix 5.0
Zabbix 5.2
Zabbix 5.4
Zabbix 6.0
‘libpthread’ 与 ‘zlib’ 库强制应用;
取消对纯文本协议的支持,并且强制要求标头配置;
不再支持1.4版本之前的 Zabbix agents ;
若启用 proxy 的被动模式,那么 Server 参数是必须要配置的参数。
3.2.x适用于:
Zabbix 3.4
Zabbix 4.0
Zabbix 4.2
Zabbix 4.4
Zabbix 5.0
Zabbix 5.2
Zabbix 5.4
Zabbix 6.0
SQLite 类型的数据库不再作为 Zabbix server/frontend 的支持类型;
Perl Compatible Regular Expressions (PCRE) 兼容正则表达式,替换了 POSIX;
Zabbix server 强制要求应用 ‘libpcre’ 与 ‘libevent’库;
为用户参数添加了退出代码检查、远程命令和不标注 ‘nowait’ 标志的 system.run[] 监控项以及 Zabbix server 执行的脚本;
要求升级 Zabbix Java gateway 以支持新版本功能。
3.0.x LTS适用于:
Zabbix 3.2
Zabbix 3.4
Zabbix 4.0
Zabbix 4.2
Zabbix 4.4
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
Zabbix 4.4
Zabbix 5.0
Zabbix 5.2
Zabbix 5.4
Zabbix 6.0
PHP组件的最低版本要求由 5.3.0 升级到 5.4.0;
LogFile agent 参数必须进行配置说明
2.2.x LTS适用于:
Zabbix 2.4
Zabbix 3.0
Zabbix 3.2
Zabbix 3.4
Zabbix 4.0
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
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;
为了支持 server 的正常运作,需要支持大小写识别的 MySQL 数据库;为了使 Zabbix server 正常运作,需要对 MySQL 数据库进行字符设定,需设定字符为 utf8 和 utf8_bin 。请查阅 数据库创建脚本.
PHP扩展更改’mysql’为现在的 ‘mysqli’。

您也可以参考如下6.0版本的安装需求

对于正在运行中的项目,用户可以考虑在对 Zabbix 进行升级时,同时开启两路 SSH 协议登录,一路用于运行软件的升级操作,一路用于监控 server/proxy 的 log 文档。 举例如下: 运行tail -f zabbix_server.log或者tail -f zabbix_proxy.log在第二路SSH连接,方便用户通过最新的log文档对升级过程进行实时监控,发现可能存在的问题或错误。

升级步骤

1 停止 Zabbix 进程

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

  1. # systemctl stop zabbix-server

若升级Zabbix proxy版本,需也停止Zabbix proxy服务 。

  1. # systemctl stop zabbix-proxy

::: 重要事项 目前,不再支持启动升级后的server,使用较旧版本且未升级的proxy向其发送数据。考虑到升级后的server会自动忽略未升级proxy发送的数据,因此Zabbix官方禁用此种应用方式。

2 备份当前的数据库

备份当前的数据库是非常重要的一步。升级前请确保是否先备份数据库。若升级失败(如因磁盘空间不足、断电或其他意外导致的升级失败),备份的数据库将大派用场。

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

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

配置文件:

  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 软件仓库配置包

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

  1. # rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-1.el8.noarch.rpm
5 升级Zabbix组件

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

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

若使用 PostgreSQL 数据库,请在命令中将 mysql 替换为 pgsql。若升级 Zabbix proxy,请在命令中将 server 替换为 proxy。 若升级Zabbix agent 2,请在命令中将 zabbix-agent 替换为 zabbix-agent2

若在RHEL 8上使用Apache 使得正常升级 Web 前端,还需运行如下命令:

  1. # yum install zabbix-apache-conf

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

若在RHEL 7上升级 Web frontend ,请参考distribution-specific instructions (安装 PHP 7.2 或更高版本需额外的步骤)。

6 检查 Zabbix 组件配置文件的参数

在新版本中,Zabbix组件的配置文件发生了一些变化,请详见升级说明。 mandatory changes.

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 次要版本之间的升级

如果要升级 Zabbix 6.0.x 的次要版本(例如:从 6.0.1 升级到 6.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’ 将保留它们。