Logstash,如何处理具有子字段的字段

时间:2014-03-28 14:10:03

标签: logstash

我有一个消息日志,可以通过以下方式解析:

filter {
  kv {
    field_split => "|"
  }

但是有一个字段有时会有一个由utf8字符分隔的子字段。

AppBody=POIREQ:¸ID: 27¸Address: http://myserver¸Payload: <?xml version="1.0" encoding="UTF-8"?> <xml here...>

这里没有,直接转到xml字符串:

AppBody=POIRESP:<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header><xml here....>

所以我猜AppBody = TYPE

:<soap:Evnvelope ....

或者:

¸ID: 27¸ ... <?xml version ....

苦苦思索如何处理这些子域。我可以让他们正常&#39;领域。 但我真正需要的是将xml分离到自己的领域。

mutate过滤器似乎只适用于字段? 在通过kv解析字段之前是否有像mutator这样的sed?

1 个答案:

答案 0 :(得分:1)

你可能只是运行第二个kv过滤器吗?

filter {
  kv {
    field_split => "|"
  }
  kv {
    field_split => "¸"
    value_split => ":"
    source => "AppBody"
  }
}

第二个kv块现在拆分AppBody字段内的子字段。