作者: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 自行決定。 當前不可用的任何特性或功能可能無法按時交付或根本無法交付。