Есть несколько способов сделать это - вот тот, который я использую чаще всего (предполагая, что вы также хотите value
рядом с name
):
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-ip
" где-нибудь в request.headers{}.name
многозначном поле
Затем он объединяет два многозначных поля (имя и значение) в одно поле mv, разделенное |
символ
Затем разверните набор результатов так, чтобы вы просматривали по одной строке за раз
Наконец, вы ищете только результатов со значением "x-real-ip
"в них
Если вы хотите затем извлечь value
из объединенного поля, добавьте следующую строку:
| rex field-combined "|(?<x_real_ip>.+)"
И, конечно, вы можете сделать любые другие операции SPL с вашими данными sh