Я хотел бы проанализировать некоторые поля из журналов json из AWS WAF.При вводе logstash используйте:
s3 {
bucket => "XXXX"
access_key_id => "XXXX"
secret_access_key => "XXXX"
prefix => "waf/"
region => "XXX"
sincedb_path => "/tmp/s3.sincedb"
add_field => [ "lso_name", "NULL", "lsi_type", "s3", "lsi_name", "waf" ]
codec => "json"
}
Я получаю сообщения типа:
{
"httpSourceName"=>"CF",
"httpRequest"=> {
"clientIp"=>"XX.XX.XX.XX",
"httpMethod"=>"GET",
"requestId"=>"XXXX",
"uri"=>"XXX",
"headers"=>
[
{"name"=>"Host", "value"=>"test.exmaple.com"},
{"name"=>"user-agent", "value"=>"Mozilla/5.0"},
{"name"=>"accept", "value"=>"*/*"}
]
}
}
Я пытаюсь разобрать этот заголовок в фильтре logstash, но не могу это сделать.
Вывод в кибане должен выглядеть следующим образом:
"httpRequest.headers.Host" => "test.example.com"
"httpRequest.headers.user-agent" => "Mozilla/5.0"
Я пробовал json filter даже kv, но безуспешно.
Спасибо за любой ответ.