1

次のような形式の複数行の log4j サーバー ログがあります。

"10.1.1.1" "AUTH-USER" "22/Jul/2013:22:42:42 -0700" "GET /source1/resources/RESOURCE/ENDPOINT/1111/start HTTP/1.1" 200 4 
"10.1.1.1" "auth2" "22/Jul/2013:22:43:03 -0700" "PUT /source1/resources/RESOURCE/ENDPOINT HTTP/1.1" 200 4
"10.40.16.254" "auth2" "22/Jul/2013:22:43:03 -0700" "PUT /source1/resources/secure/RESOURCE/v1/ENDPOINT?var1=A&var2=01-01-2013&var4=Allison HTTP/1.1" 200 4

RESOURCE はリソースのリストであり、ENDPOINT はエンドポイントのリストを表します。

RESOURCE:ENDPOINT の個別のペアがログ ファイルに存在する回数を数えて、特定のタイムラインで各 Web サービスが呼び出された回数を把握したいと考えています。

次の検索を実行して、すべての値を返すことができることを知っています。

("/RevWebServices/resources/*/* HTTP/1.1" または "/RevWebServices/resources/secure/*/*/v*/* HTTP/1.1")

しかし、カウントできるキーと値のペアに値を抽出するにはどうすればよいですか?

4

1 に答える 1

1

次の手順が役立つと思います。

  1. フィールド抽出を使用して、「RESOURCE」および「ENDPOINT」という名前のカスタム フィールドを作成します。フィールド抽出は、splunk UI または props.conf (transforms.conf の高度な設定) で実行できます。

  2. 検索中に一時フィールドを作成し、"... | eval pair = RESOURCE.":".ENDPOINT | stats count by pair | ..." のような検索コマンドを使用してカウントします。

于 2013-08-12T02:45:11.183 に答える