亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

獲取 json 數組中的指定元素 - SPLUNK

獲取 json 數組中的指定元素 - SPLUNK

飲歌長嘯 2022-08-04 15:51:19
我是新手。我有這個json:"request": {    "headers": [        {            "name": "x-real-ip",            "value": "10.31.68.186"        },        {            "name": "x-forwarded-for",            "value": "10.31.68.186"        },        {            "name": "x-nginx-proxy",            "value": "true"        }當屬性名稱具有“x-real-ip”值時,我需要選擇一個值。
查看完整描述

3 回答

?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

有幾種方法可以做到這一點 - 這是我最常使用的一種(假設你也想要旁邊的):valuename


index=ndx sourcetype=srctp request.headers{}.name="x-real-ip"

| eval combined=mvzip(request.headers{}.name,request.headers{}.value,"|")

| mvexpand combined

| search combined="x-real-ip*"

這將跳過多值字段中某處沒有“”的所有事件x-real-iprequest.headers{}.name


接下來,它將兩個多值字段(名稱和值)組合成一個mv字段,由字符分隔|


然后展開結果集,以便一次查看一行


最后,僅查找其中值為 “” 的結果x-real-ip


如果要從組合字段中提取 ,請添加以下行:value


| rex field-combined "|(?<x_real_ip>.+)"

當然,您可以對數據執行任何其他 SPL 操作


查看完整回答
反對 回復 2022-08-04
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

我嘗試@Warren的答案,但我得到以下錯誤:


“eval”命令中的錯誤:表達式格式不正確。預期)。


您需要添加重命名,因為 中的字符會導致問題。這是有效的查詢:{}mvzip


index=ndx sourcetype=srctp request.headers{}.name="x-real-ip"

| rename request.headers{}.name AS headerName, request.headers{}.value AS headerValue 

| eval reviewers=mvzip(headerName,headerValue ,"|")|

| mvexpand combined

| search combined="x-real-ip*"


查看完整回答
反對 回復 2022-08-04
?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

your search

| rex max_match=0 "name\":\s\"(?<fieldname>[^\"]+)"

| rex max_match=0 "value\":\s\"(?<fieldvalue>[^\"]+)"

| eval tmp=mvzip(fieldname,fieldvalue,"=")

| rename tmp as _raw

| kv

| fields - _* field*

當您提出問題時,請提供正確的信息。您在此過程中已用完日志。


查看完整回答
反對 回復 2022-08-04
  • 3 回答
  • 0 關注
  • 394 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號