2 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.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服务,以确保没有新数据写入数据库。
# service zabbix-server stop
若需要升级 Zabbix proxy,同样需要先停止 Zabbix proxy 进程。
# service zabbix-proxy stop
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/
##### 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
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。
6 检查 Zabbix 组件配置文件的参数
在新版本中,Zabbix组件的配置文件发生了一些变化,详见升级说明 mandatory changes。
关于新的选项参数,详见此章节 What’s new 。
7 启动 Zabbix 进程
启动升级后的 Zabbix 组件。
# service zabbix-server start
# service zabbix-proxy start
# service zabbix-agent start
# service zabbix-agent2 start
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.*'