处理详情

编辑

了解 Logstash 的工作原理以及组件之间的相互关系可以帮助您在设置或调整 Logstash 环境时做出更好的决策。本节旨在提升概念,以帮助您达到该知识水平。

这是一个新章节。我们仍在努力完善。

事件排序

编辑

按照设计和默认设置,Logstash 不保证事件顺序。重新排序可能发生在两个地方

  • 批处理中的事件在筛选器处理期间可能会重新排序。
  • 当一个或多个批处理的速度比其他批处理快时,正在处理的批处理可能会重新排序。

当维护事件顺序很重要时,请使用单个工作线程并设置 pipeline.ordered ⇒ true。此方法确保批处理逐个计算,并且事件在批处理中保持其顺序。

pipeline.ordered 设置
编辑

logstash.yml 中的 pipeline.ordered 设置可让您更好地控制单个工作线程管道的事件排序。

auto 如果 pipeline.workers 设置也设置为 1,则自动启用排序。true 将强制管道排序,如果存在多个工作线程,将阻止 logstash 启动。false 将禁用保留顺序所需的处理。不保证排序,但您可以节省保留顺序所需的处理成本。

Java 管道初始化时间

编辑

Java 管道初始化时间出现在启动日志中的 INFO 级别。初始化时间是指编译管道配置并为所有工作线程实例化已编译的执行所花费的时间。

Logstash 事件中的保留字段

编辑

Logstash 事件中的某些字段是保留的,或者需要遵循特定格式。使用这些字段可能会在事件 API 或插件遇到不兼容的值时导致运行时异常。

@metadata

键/值映射。

基于 Ruby 的插件 API:值是 org.jruby.RubyHash

基于 Java 的插件 API:值是 org.logstash.ConvertedMap

以序列化形式(例如 JSON):键/值映射,其中键必须是字符串,并且值不受特定类型限制。

@timestamp

表示特定时间点的对象。

基于 Ruby 的插件 API:值是 org.jruby.RubyTime

基于 Java 的插件 API:值是 java.time.Instant

以序列化形式(例如 JSON)或使用 Event#set 设置时:可以接受符合 ISO8601 标准的字符串值。

@version

一个字符串,保存整数值。

tags

不同的字符串数组