【问题标题】:How to extract Key Value fields from Json string in Splunk如何从 Splunk 中的 Json 字符串中提取键值字段
【发布时间】:2021-02-17 09:18:45
【问题描述】:

我有如下 json 格式的 Splunk 搜索结果:

"{
    "Name": "RUNQDATA",
    "RunId": "2021021701",
    "Details": <{
        "RunQID": "796562",
        "TQID": "796562",
        "Ent": {
            "NAME": "Inv",
            "Store": {
                "NAME": "FSW",
                "TYPE": "QUEUE",
                "USERNAME": "abc"
            }
        },
        "ADD_COUNT": "5740",
        "UPDATE_COUNT": "0",
        "DELETE_COUNT": "0"
    }>,
    "status": "success",
}" 

如何从中提取像 ADD_COUNT 或 UPDATE_COUNT 这样的字段?我尝试了 spath 和其他选项,但无法获得所需的结果。可能是因为 json 包含 .

感谢您提供任何帮助。

【问题讨论】:

    标签: json splunk text-extraction


    【解决方案1】:

    已确认。如果尖括号被删除,那么spath 命令将解析整个内容。 spath 命令不处理格式错误的 JSON。

    如果您无法更改事件的格式,那么您将不得不使用rex 命令来提取字段,就像在这个随处运行的示例中一样

    | makeresults 
    | eval _raw="{
        \"Name\": \"RUNQDATA\",
        \"RunId\": \"2021021701\",
        \"Details\": <{
            \"RunQID\": \"796562\",
            \"TQID\": \"796562\",
            \"Ent\": {
                \"NAME\": \"Inv\",
                \"Store\": {
                    \"NAME\": \"FSW\",
                    \"TYPE\": \"QUEUE\",
                    \"USERNAME\": \"abc\"
                }
            },
            \"ADD_COUNT\": \"5740\",
            \"UPDATE_COUNT\": \"0\",
            \"DELETE_COUNT\": \"0\"
        }>,
        \"status\": \"success\",
    }"
    | rex "UPDATE_COUNT\": \"(?<UPDATE_COUNT>\d+)"
    | rex "DELETE_COUNT\": \"(?<DELETE_COUNT>\d+)"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-03
      • 1970-01-01
      相关资源
      最近更新 更多