8.0 中的重大变更

以下是 8.0 的重大变更。

与 Elasticsearch 的安全通信

Logstash 必须先建立安全套接字层 (SSL) 连接,才能将数据传输到本地 Elasticsearch 集群。Logstash 必须拥有签署集群证书的 Elasticsearch CA 的副本。当新的 Elasticsearch 集群没有专用证书启动时,它会在启动时生成自己的默认自签名证书颁发机构。

我们托管的 Elasticsearch 服务简化了 Logstash 和 Elasticsearch 之间的安全通信。Elasticsearch 服务使用由标准的公认证书颁发机构签署的证书,因此无需设置 cacert。

有关更多信息,请参阅 默认情况下启用 Elasticsearch 安全

Java 11 最低要求

Logstash 需要 Java 11 或更高版本。默认情况下,Logstash 将使用捆绑的 JDK 运行,该 JDK 已验证可与每个特定版本的 Logstash 配合使用,并且通常提供最佳性能和可靠性。

不再支持 JAVA_HOME

我们已不再支持使用 JAVA_HOME 覆盖 JDK 的路径。需要使用捆绑 JDK 以外的版本的用户应将 LS_JAVA_HOME 的值设置为其首选 JDK 的路径。将忽略 JAVA_HOME 的值。

ECS 兼容性现在默认启用

许多插件现在可以在一种模式下运行,这种模式可以避免与 Elastic Common Schema 发生隐式冲突。此模式由每个插件的 ecs_compatibility 选项单独控制,该选项默认为 Logstash pipeline.ecs_compatibility 设置的值。在 Logstash 8 中,此兼容性模式将默认对所有管道启用。 #11623

如果您希望在升级到 Logstash 8 之前锁定 Logstash 7.x 中的管道行为,可以在 pipelines.yml(或全局地在 logstash.yml 中)中将其定义设置为 pipeline.ecs_compatibility: disabled

已删除 Ruby 执行引擎

自 Logstash 7.0 以来,Java 执行引擎一直是默认引擎,并且适用于用 Ruby 或 Java 编写的插件。删除 Ruby 执行引擎不会影响运行现有管道的能力。 #12517

支持 UTF-16

我们在读取日志文件时添加了对 UTF-16 和其他多字节字符的支持。 #9702

已删除字段引用解析器配置设置

字段引用解析器解释管道和插件中对字段的引用。它的行为在 6.x 中是可配置的,而 7.x 只允许一个选项:strict。8.0 不再识别该设置,但保持与 strict 设置相同的行为。Logstash 将拒绝模棱两可和非法的输入作为标准行为。