logstash fitler如何从指定的字段中获取日志数据

时间:2018-03-13 03:49:40

标签: filter logstash

日志是这样的:

{
"playerId": 2,
"args": {
    "uid": 2024657127,
    "__route__": "userCenter.playerHandler.getOnLineUids"
},
"time": "03122053",
"timeUsed": 8,
"resp": {
    "code": 200,
    "uidState": {
        "imId": 2024657127,
        "uid": 0,
        "state": 0
    }
}

}

我只需要“__route__”和“timeUsed”,

filter {
if "__route__" in [message] {
    json {
        source => "message"
        remove_field => ["args.uid", "playerId", "time", "resp"]
    }
}}

像这样的kibana结果: image of the result

我们可以看到字段“arg.uid”也在那里,如何删除字段呢?或者任何其他更好的方式获得“__route__”和“timeUsed”?

1 个答案:

答案 0 :(得分:1)

只需用[args] [uid]替换args.uid,它应该在那之后工作。因为在logstash中,使用[parent] [child]表示法访问每个子字段