以下是 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 以外版本的 JDK 的用户应将 LS_JAVA_HOME
的值设置为其首选 JDK 的路径。将忽略 JAVA_HOME
的值。
许多插件现在可以在一种避免与 Elastic 通用模式 (ECS) 发生隐式冲突的模式下运行。此模式由每个插件的 ecs_compatibility
选项单独控制,该选项默认为 Logstash pipeline.ecs_compatibility
设置的值。在 Logstash 8 中,此兼容性模式将默认对所有管道启用。 #11623
如果您希望在升级到 Logstash 8 之前锁定 Logstash 7.x 中管道的行为,可以将其 pipeline.ecs_compatibility: disabled
设置添加到 pipelines.yml
(或全局地添加到 logstash.yml
) 中的定义。
自 Logstash 7.0 以来,Java 执行引擎一直是默认引擎,并且可与用 Ruby 或 Java 编写的插件一起使用。移除 Ruby 执行引擎不会影响运行现有管道的能力。 #12517
我们添加了对读取日志文件时使用 UTF-16 和其他多字节字符的支持。 #9702
字段引用解析器解释管道和插件中对字段的引用。它的行为在 6.x 版本中是可配置的,而 7.x 版本只允许一个选项:strict
。8.0 版本不再识别此设置,但保持与 strict
设置相同的行为。Logstash 会将模棱两可和非法的输入作为标准行为拒绝。