以下是 8.0 的重大变更。
Logstash 必须先建立安全套接字层 (SSL) 连接,然后才能将数据传输到本地 Elasticsearch 集群。Logstash 必须拥有签署集群证书的 Elasticsearch CA 的副本。当启动没有专用证书的新 Elasticsearch 集群时,它会在启动时生成自己的默认自签名证书颁发机构。
我们托管的 Elasticsearch 服务简化了 Logstash 和 Elasticsearch 之间安全可靠的通信。Elasticsearch 服务使用由标准公共信任证书颁发机构签署的证书,因此无需设置 cacert。
有关更多信息,请参阅 默认启用 Elasticsearch 安全性。
Logstash 需要 Java 11 或更高版本。默认情况下,Logstash 将使用捆绑的 JDK 运行,该 JDK 已经过验证可与每个特定版本的 Logstash 配合使用,并且通常提供最佳的性能和可靠性。
我们已经删除了使用 JAVA_HOME
覆盖 JDK 路径的支持。需要使用捆绑的 JDK 之外版本的用户应将 LS_JAVA_HOME
的值设置为其首选 JDK 的路径。JAVA_HOME
的值将被忽略。
现在,许多插件可以在避免与 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
设置为禁用。
自 Logstash 7.0 以来,Java 执行引擎一直是默认引擎,并且可以与用 Ruby 或 Java 编写的插件一起使用。删除 Ruby 执行引擎不会影响运行现有管道的能力。#12517
我们在读取日志文件时添加了对 UTF-16 和其他多字节字符的支持。#9702
字段引用解析器解释管道和插件中对字段的引用。它的行为在 6.x 中是可配置的,而 7.x 仅允许一个选项:strict
。8.0 不再识别该设置,但保持与 strict
设置相同的行为。Logstash 将拒绝含糊不清和不合法的输入作为标准行为。