1

ログのこの種があります 21.4.1.2 - [28/Dec/2016:12:18:40 +0000] "GET a/b/c/d/e/f HTTP/1.1 "200 984072" Mozilla/5.0(Windows NT 10.0; WOW64)AppleWebKit/537.36(GeckoのようなKHTML)Chrome/55.0.2883.87 Safari/537.36 "0.104 0.103。 grokパターンを使ってこれをどのように抽出すればよいですか? フィールドの数もわかっていません。つまり、残りのapiは/ b/cとa/b/c/d/e/f/gにもなります。どのように私はそれを扱い、私がキバナでa、b、またはcでグループ化できるようにするべきですか?ログスタッシュで残りのAPIを抽出する正しい方法

+0

この回答は役に立ちました:http://stackoverflow.com/questions/37605189/how-to-get-url-path-using-logstash-on-elasticsearch/37606224#37606224 – Val

+0

お時間をありがとう@Avalあなたが投稿した質問リンクはクエリパラメータがある場合ですが、私の場合はURLの一部ですex: - facebook.com/user1、facebook.com/user2そして私はFacebookをつかみたい.comを1つのフィールドとし、ユーザーを他のフィールドとします。 a/b/cのようなurlの複数の部分があることができることだけがひねります。 – agrawal1084

答えて

1

既知の深さがある場合は、URLフィールドをこれらのフィールドに再グルークすることができます。

任意の深さがある場合、mutate-splitはそれらの配列を作ることができますが、それらは有用ではありません。

「/」を区切り文字とするcsv {}フィルタは、「column1」、「column2」などの一連のフィールドを生成しますか?

0

%/ GREEDYDATA:value} grokテンプレートがあります。このテンプレートを使用してAPIパス部分を抽出できます。そこから「/」で分割することができます。このツールはgrokパターンをデバッグするときに便利です。http://grokdebug.herokuapp.com/

そうで始まる:あなたのAPIフィールドのAPIのパスを与えるどの

%{IP:clientip} \- \- \[%{NOTSPACE:date} \+%{INT}\] \"%{WORD:action} %{GREEDYDATA:api} %{WORD:protocol}/%{NUMBER:protocolNum}\" %{NUMBER:status} %{NUMBER} %{QUOTEDSTRING} %{NUMBER} %{NUMBER} 

また、必要なものに応じて役立つAPIデバッグおよび解析ツール(https://www.moesif.com/features)であるMoesifに取り組んでいます。 (完全な開示、私は最高経営責任者)

関連する問題