3 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊
有幾種方法可以做到這一點(diǎn) - 這是我最常使用的一種(假設(shè)你也想要旁邊的):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
接下來,它將兩個(gè)多值字段(名稱和值)組合成一個(gè)mv字段,由字符分隔|
然后展開結(jié)果集,以便一次查看一行
最后,僅查找其中值為 “” 的結(jié)果x-real-ip
如果要從組合字段中提取 ,請(qǐng)?zhí)砑右韵滦校簐alue
| rex field-combined "|(?<x_real_ip>.+)"
當(dāng)然,您可以對(duì)數(shù)據(jù)執(zhí)行任何其他 SPL 操作

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊
我嘗試@Warren的答案,但我得到以下錯(cuò)誤:
“eval”命令中的錯(cuò)誤:表達(dá)式格式不正確。預(yù)期)。
您需要添加重命名,因?yàn)?中的字符會(huì)導(dǎo)致問題。這是有效的查詢:{}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*"

TA貢獻(xiàn)1877條經(jīng)驗(yàn) 獲得超6個(gè)贊
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*
當(dāng)您提出問題時(shí),請(qǐng)?zhí)峁┱_的信息。您在此過程中已用完日志。
添加回答
舉報(bào)