作者:Thomas Watson
Kibana 构建在 Node.js 框架之上。 为了确保每个 Kibana 版本的稳定性和使用寿命,我们始终将捆绑的 Node.js 二进制文件保持为最新的最新长期支持 (LTS) 版本。
当 Node.js 版本 18 升级到 LTS 时,我们开始将 Kibana 升级到这个主要版本的工作。
挑战
我们很快发现 Node.js 18 放弃了对某些较旧的 Linux 发行版的支持,这些发行版仍然是 Kibana 支持矩阵的一部分,尤其是 Ubuntu 16、Red Hat Enterprise Linux (RHEL) 7 和 CentOS 7。
技术原因是 Node.js 18 现在是针对较新版本的 GNU C 库 (glibc) 进行编译的,特别是版本 2.28,这些旧发行版不支持该版本。
为了确保对这些 Linux 发行版的持续支持,我们需要针对旧的 2.17 版本的 glibc 构建适用于 Linux 的自定义版本的 Node.js。 不幸的是,这推迟了 Kibana 到 Node.js 18 的升级。此外,Node.js 项目宣布将提前 Node.js 16(Node.js 的 LTS 版本)的生命周期结束 (EoL) 日期。 Kibana 目前运行时间为 2023 年 9 月 11 日。EoL 日期比原定日期早 7 个月,此后它将不再收到任何错误修复或安全补丁。
解决方案
好消息是:我们已经完成了 Node.js 自定义构建的工作,即将推出的 Kibana 8.10.0 和 7.17.13 都将随 Node.js 18 一起发布。与我们之前的 Node.js 升级类似,这将是对用户以及在生产中运行和部署 Kibana 的用户完全透明。
此外,我们正在努力使 Node.js 的自定义构建可供任何项目通过 GitHub 上的 nodejs/unofficial-builds 存储库使用。 敬请关注详情。
操作系统支持
如果你与操作系统供应商签订了扩展支持合同,则这不适用于在操作系统上运行所需的非专有软件。 我们建议在以下 Linux 发行版上运行的客户计划迁移到支持 glibc v2.28+ 的较新版本、迁移到 Elastic Cloud 或使用 Docker 映像运行 Kibana:
- CentOS/RHEL 7
- 甲骨文企业 Linux 7
- 乌班图16.04
- SLES12
- Debian 8
- Debian 9
我们建议在以下 Linux 发行版上运行的客户进行小幅升级以实现 glibc v2.28+ 支持:
- Ubuntu 18.04 — 升级到 Ubuntu 18.10
- Ubuntu 20.04 — 升级到 Ubuntu 20.04.5
- OpenSUSE 15 — 升级到 OpenSUSE 15.4
- Amazon Linux 2 — 升级到 Amazon Linux 2022
最后,请记住让你的 Elastic 集群保持最新的新版本,以确保你受益于最新的错误修复和安全更新。
本文中描述的任何特性或功能的发布和时间安排均由 Elastic 自行决定。 当前不可用的任何特性或功能可能无法按时交付或根本无法交付。