【问题标题】:logstash fitler how to get the designated fields form log datalogstash过滤器如何从日志数据中获取指定字段
【发布时间】:2018-03-13 03:49:39
【问题描述】:

日志是这样的:

{
"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”?

【问题讨论】:

    标签: filter logstash


    【解决方案1】:

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

    【讨论】:

    • 至少有礼貌,标记答案有用。如果它对你有用。
    • 很抱歉,是的,我想标记它但没有找到按钮,我会再试一次,非常感谢!
    • 感谢您的诚实。谢谢!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多