我有一个消息日志,可以通过以下方式解析:
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?
答案 0 :(得分:1)
你可能只是运行第二个kv过滤器吗?
filter {
kv {
field_split => "|"
}
kv {
field_split => "¸"
value_split => ":"
source => "AppBody"
}
}
第二个kv块现在拆分AppBody
字段内的子字段。