【问题标题】:Avoid overridding of default message field in logstash避免覆盖logstash中的默认消息字段
【发布时间】:2016-10-16 12:28:27
【问题描述】:

我正在使用 logstash 来解析我的日志。当我解析 json(包含“消息”字段)时,会覆盖默认消息字段。我尝试使用 json{ } 过滤器的 remove_field 选项,但这对我不起作用。

这是我的过滤器代码:

filter {
    mutate {
        gsub => ["message", "\"", "'"]
    }
    mutate {
        gsub => ["message", ".", "_"]
    }
    csv {
        columns => ["TIMESTAMP", "HEADERS", "FIELD1", "FIELD2", "FIELD2_TIME", "INTER_FIELD2"]
        separator => "|"
    }
    mutate {
        gsub => ["FIELD1", "'", '"']
    }

  #Removing message field inside FIELD1 json to avoid overriding
    json {
        source => "FIELD1"
        remove_field => ["message"]
    }
    mutate {
        gsub => ["FIELD2", "'", '"']
    }
    json {
        source => "FIELD2"
        remove_field => ["message"]
    }
}

如何避免覆盖默认消息字段?

【问题讨论】:

    标签: json logstash logstash-grok


    【解决方案1】:

    想到两个选项:

    1. 在调用 json{} 过滤器(mutate->rename)之前将 [message] 字段移开。
    2. 使用 json{} 过滤器的“目标”参数将 json 数据放在文档根目录以外的位置。

    【讨论】:

      猜你喜欢
      • 2019-06-15
      • 2020-01-17
      • 2014-03-05
      • 1970-01-01
      • 2014-04-04
      • 1970-01-01
      • 2011-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多