【问题标题】:Filter json objects过滤 json 对象
【发布时间】:2019-08-27 08:31:58
【问题描述】:

我的一些日志在其 message 字段中包含 json。我使用 json 过滤器如下:

  json {
    skip_on_invalid_json => true
    source => "message"
    target => "json"
  }

要尝试解析 message 字段,如果它包含有效的 json,请将其添加到 json 字段。 不幸的是,我有时会收到在 message 字段中包含像 "some random message" 这样的单个字符串的日志。在这些日志中,来自 message 的字符串最终出现在 json 中,并弄乱了索引映射。

我尝试通过添加以下内容来过滤掉它:

  prune {
    blacklist_values => { "json" => "/.+/" }
  }

但这似乎总是删除 json 字段。 有没有办法解析消息字段或仅当它包含一个对象而不是单个字符串时才保留json字段?

【问题讨论】:

    标签: json logstash


    【解决方案1】:

    您可以使用 ruby​​ 过滤器来测试您感兴趣的领域

        ruby {
            code => '
                s = event.get("json")
                if s and s.instance_of? String
                    event.remove("json")
                end
            '
        }
    

    如果是散列或数组,则不会删除 [json]。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 2019-10-02
      • 2016-07-10
      相关资源
      最近更新 更多