Zabbix6.0升级教程:二进制包升级

Posted 正月十六工作室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zabbix6.0升级教程:二进制包升级相关的知识,希望对你有一定的参考价值。


Zabbix6.0升级教程(一):二进制包升级


目录


概述
Zabbix 6.0升级教程分为两篇,分别介绍二进制包升级及源码包升级。本篇介绍使用 Zabbix 的 RPM 和 DEB 二进制包成功升级至 Zabbix 6.0 所需的步骤升级,适用于如下操作系统:

  • 一、红帽企业 Linux/CentOS
  • 二、Debian/Ubuntu

由操作系统存储库中的Zabbix软件包进行升级。
通常,发行版本的操作系统(特别是基于 Debian 的发行版)会提供基于自身系统的Zabbix软件包。
请注意,Zabbix 不支持这些软件包,它们通常已经过时并且缺乏最新的功能和错误修复。 建议通过由官方支持的 软件安装包来完成安装。
若需从 OS 发行版提供的软件包进行升级(或在某时已安装),请按照以下步骤换到官方 Zabbix 软件包:

  1. 首先,卸载旧版本的安装包。
  2. 检查卸载后可能留下的残留文件。
  3. 按照Zabbix提供的安装官方包。
注意:切勿进行直接更新,因为这可能会导致安装中断。

一、 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]提高了对数据库最低版本的要求; 所有的聚合监控项将被视为单独的监控项直接删除。
5.0.x LTS适用于: Zabbix 5.2 Zabbix 5.4 Zabbix 6.0php组件最低版本组件由 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.0Jabber, 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.0SQLite 类型的数据库不再作为 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.0PHP组件的最低版本要求由 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.1 停止 Zabbix 进程

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

 systemctl stop zabbix-server

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

 systemctl stop zabbix-proxy

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

1.2 备份当前的数据库

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

1.3 备份配置文件、PHP 文件和 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/doc/zabbix-* /opt/zabbix-backup/

1.4 升级 Zabbix 软件仓库配置包

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

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

1.5 升级Zabbix组件

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

 yum upgrade zabbix-server-mysql zabbix-web-mysql zabbix-agent  

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

2,请在命令中将 zabbix-agent 替换为 zabbix-agent2。
若在RHEL 8**上使用Apache **使得正常升级 Web 前端,还需运行如下命令:

 yum install zabbix-apache-conf 

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

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

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

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

1.7 启动 Zabbix 进程

启动升级后的 Zabbix 组件。

 systemctl start zabbix-server
 systemctl start zabbix-proxy
 systemctl start zabbix-agent
 systemctl start zabbix-agent2

1.8 清除浏览器的 Cookies 和缓存

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

Zabbix 次要版本之间的升级

如果要升级 Zabbix 6.0.x 的次要版本(例如:从 6.0.1 升级到 6.0.3),是非常容易的。

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

$ sudo yum upgrade 'zabbix-*'

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

 $ sudo yum upgrade 'zabbix-server-*'

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

 $ sudo yum upgrade 'zabbix-agent-*'

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

$ sudo yum upgrade 'zabbix-agent2-*'

请注意,在这些命令中也可以使用’update’ 而不是 ‘upgrade’。 两者区别是’upgrade’ 将删除过时的软件包,但’update’ 将保留它们。

二、Debian/Ubuntu

概述

这一部分将介绍如何使用由官方发布的、基于 Debian/Ubuntu 系统的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.0PHP组件最低版本组件由 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.0Jabber, 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.0SQLite 类型的数据库不再作为 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.0PHP组件的最低版本要求由 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文档对升级过程进行实时监控,发现可能存在的问题或错误。

升级程序

2.1 停止 Zabbix 进程

用户需要停止 Zabbix server服务,以确保没有新数据写入数据库。

 service zabbix-server stop

若需要升级 Zabbix proxy,同样需要先停止 Zabbix proxy 进程。

 service zabbix-proxy stop

2.2 备份当前的数据库

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

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

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

配置文件:

 mkdir /opt/zabbix-backup/ 
 cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup/ 
 cp /etc/apache2/conf-enabled/zabbix.conf /opt/zabbix-backup/

PHP 文件和 Zabbix 二进制文件:

 cp -R /usr/share/zabbix/ /opt/zabbix-backup/ 
 cp -R /usr/share/doc/zabbix-* /opt/zabbix-backup/

2.4更新存储配置包

要继续更新,必须卸载当前的存储库包。

 rm -Rf /etc/apt/sources.list.d/zabbix.list

然后安装新的存储库配置包。
在 Debian 11 运行:

 wget https://repo.zabbix.com/zabbix/6.0/debian/pool/main/z/zabbix-release/zabbix-release_6.0-1+debian11_all.deb
 dpkg -i zabbix-release_6.0-1+debian11_all.deb

在 Debian 10 运行:

 wget https://repo.zabbix.com/zabbix/6.0/debian/pool/main/z/zabbix-release/zabbix-release_6.0-1+debian10_all.deb
 dpkg -i zabbix-release_6.0-1+debian10_all.deb

在 Debian 9 运行:

 wget https://repo.zabbix.com/zabbix/6.0/debian/pool/main/z/zabbix-release/zabbix-release_6.0-1+debian9_all.deb
 dpkg -i zabbix-release_6.0-1+debian9_all.deb

在 Ubuntu 20.04 运行:

 wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-1+ubuntu20.04_all.deb
 dpkg -i zabbix-release_6.0-1+ubuntu20.04_all.deb

在 Ubuntu 18.04 运行:

 wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-1+ubuntu18.04_all.deb
 dpkg -i zabbix-release_6.0-1+ubuntu18.04_all.deb

在 Ubuntu 16.04 运行:

 wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-1+ubuntu16.04_all.deb
 dpkg -i zabbix-release_6.0-1+ubuntu16.04_all.deb

在 Ubuntu 14.04 运行:

 wget https://repo.zabbix.com/zabbix/6.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_6.0-1+ubuntu14.04_all.deb
 dpkg -i zabbix-release_6.0-1+ubuntu14.04_all.deb

更新存储库信息

 apt-get update

2.5 升级Zabbix组件

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

 apt-get install --only-upgrade zabbix-server-mysql zabbix-frontend-php zabbix-agent

若使用 PostgreSQL数据库,请在命令中将 mysql 替换为 pgsql。 若升级proxy,请在命令中将 server 替换为 proxy。 若升级 Zabbix agent 2,在命令中将 zabbix-agent 替换为 zabbix-agent2。
与此同时,要使得Apache 能正常升级 Web 前端,还需运行如下命令:

 apt-get install zabbix-apache-conf

发行版prior to Debian 10 (buster) / Ubuntu 18.04 (bionic) / Raspbian 10 (buster) 不提供 PHP 7.2 或更高版本,而其对Zabbix 前端 5.0又是必要的。 有关安装 Zabbix 前端旧发行版的信息,请查阅information

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

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

关于新的选项参数,详见此章节 What’s new 。

2.7 启动 Zabbix 进程

启动升级后的 Zabbix 组件。

 service zabbix-server start
 service zabbix-proxy start
 service zabbix-agent start
 service zabbix-agent2 start

2.8 清除浏览器的 Cookies 和缓存

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

注:Zabbix 次要版本之间的升级

如果要升级 Zabbix 6.0.x 的次要版本(例如:从 6.0.1 升级到 6.0.3),是非常容易的。

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

$ sudo apt install --only-upgrade 'zabbix.*'

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

$ sudo apt install --only-upgrade 'zabbix-server.*'

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

$ sudo apt install --only-upgrade 'zabbix-agent.*'

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

$ sudo apt install --only-upgrade 'zabbix-agent2.*'

排版: 林浩如
初审: 玩具熊
复审: 何鹏辉

本篇教程来源乐维社区|专注IT运维技术分享,经本工作室二次编辑,如有侵权,请联系我们。
参考资料
zabbix6.0由二进制包升级

以上是关于Zabbix6.0升级教程:二进制包升级的主要内容,如果未能解决你的问题,请参考以下文章

zabbix6.0升级教程:源码包升级

zabbix6.0升级教程:源码包升级

zabbix6.0升级教程:源码包升级

zabbix6.0安装教程:二进制包安装

zabbix6.0安装教程:二进制包安装

zabbix6.0安装教程:二进制包安装