Apacheログを処理しようとしています。
Requestのトップディレクトリを抜き出そうとしていますが、トップへのアクセスはディレクトリがありません。
そのため、トップへのアクセスだけ例外処理をしようとしていますが、うまくいきません。
下記で
"first_path" => "/"
とするためのif文の書き方を教えてください。
テストデータ
> 10.236.75.4 - - [04/Jul/2016:23:59:09 +0900] "GET / HTTP/1.1" 200 41715 "-" "a10h
> m/1.0"
スクリプト(関連部分抜粋)
filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } if [ "request" ] == "/" { mutate { add_field => { "first_path" => "/" } } } else { mutate { add_field => { "first_path" => "not /" } } }
結果
{ "message" => "10.236.75.4 - - [04/Jul/2016:23:59:09 +0900] \"GET / HTTP/ 1.1\" 200 41715 \"-\" \"a10hm/1.0\"", "@version" => "1", "@timestamp" => "2016-07-04T14:59:09.000Z", "host" => "ip-172-31-30-226", "clientip" => "10.236.75.4", "ident" => "-", "auth" => "-", "verb" => "GET", "request" => "/", "httpversion" => "1.1", "response" => "200", "bytes" => "41715", "referrer" => "\"-\"", "agent" => "\"a10hm/1.0\"", "first_path" => "not /" }