【问题标题】:Tagging when a message is uploaded in Logstash在 Logstash 中上传消息时标记
【发布时间】:2019-07-18 18:56:47
【问题描述】:

我有一个大型摄取管道,有时需要一段时间才能从源代码推进到 Elasticsearch 索引。目前,当我们使用 Logstash 解析消息时,我们会根据源写入消息的时间来解析 @timestamp 字段。但是,由于消息量很大,在 Logstash 摄取并发送到 Elasticsearch 索引之前,它需要从源生产者传输到当前未知且可能非常不一致的时间长度。

有没有办法向 Logstash 的 Elasticsearch 输出插件添加一个字段,用于标记消息何时发送到 Elasticsearch?

【问题讨论】:

    标签: elasticsearch logstash


    【解决方案1】:

    您可以尝试添加一个 ruby​​ 过滤器作为您的最后一个过滤器,以创建一个包含当前时间的字段。

    ruby { 
         code => "event.set('fieldName', Time.now())"
    }
    

    【讨论】:

    • 检查'@timestamp'是否为空,然后你可以使用mutate来更新'@timestamp'。
    【解决方案2】:

    您可以通过ingest pipeline 进行操作。这意味着脚本是在 elasticsearch 中执行的,因此它的优点是可以包含由输出背压引起的任何延迟。

    【讨论】:

      猜你喜欢
      • 2010-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-11
      相关资源
      最近更新 更多