例: HTTP 404 コードをカウントする - Amazon CloudWatch Logs

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

例: HTTP 404 コードをカウントする

CloudWatch Logs を使用すると、Apache サーバーが HTTP 404 レスポンスを返す回数をモニタリングできます。これは、見つからなかったページのレスポンスコードです。サイトの訪問者が目的のリソースを見つけられなかった頻度を理解するためにモニタリングする場合があります。ログレコードが各ログイベント (サイト訪問) に関する次の情報を含むように設定されている前提です。

  • 要求者の IP アドレス

  • RFC 1413 ID

  • Username

  • タイムスタンプ

  • リクエスト方法およびリクエストされたリソースとプロトコル

  • リクエストに対する HTTP レスポンスコード

  • リクエストで転送されたバイト数

例は次のようになります。

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 404 2326

以下の例に示すように、HTTP 404 エラーの構造にイベントが一致するようにルールを指定できます。

CloudWatch コンソールを使用してメトリクスフィルターを作成するには
  1. https://console.aws.amazon.com/cloudwatch/ で CloudWatch コンソールを開きます。

  2. ナビゲーションペインで、[Log groups] (ロググループ) を選択します。

  3. Actions、[メトリクスフィルターの作成] を選択します。

  4. [フィルターパターン] には [IP, UserInfo, User, Timestamp, RequestInfo, StatusCode=404, Bytes] と入力します。

  5. (オプション) フィルターパターンをテストするには、[テストパターン] に、パターンのテストに使用する 1 つまたは複数のログイベントを入力します。[ログイベントメッセージ] ボックスのログイベントを区切るために改行が使用されるため、各ログイベントは 1 行以内である必要があります。

  6. [次へ] を選択し、[フィルター名] に HTTP404Errors と入力します。

  7. [メトリクスの詳細] の [メトリクス名前空間] に、MyNameSpace と入力します。

  8. [メトリクス名] に、ApacheNotFoundErrorCount を入力します。

  9. [メトリクス値] が 1 であることを確認します。これにより、各 404 エラーイベントのカウントは 1 ずつ増分されます。

  10. [デフォルト値] に 0 と入力し、[次へ] を選択します。

  11. [メトリクスフィルターの作成] を選択します。

を使用してメトリクスフィルターを作成するには AWS CLI

コマンドプロンプトで、次のコマンドを実行します。

aws logs put-metric-filter \ --log-group-name MyApp/access.log \ --filter-name HTTP404Errors \ --filter-pattern '[ip, id, user, timestamp, request, status_code=404, size]' \ --metric-transformations \ metricName=ApacheNotFoundErrorCount,metricNamespace=MyNamespace,metricValue=1

この例では、右角括弧や左角括弧、二重引用符、および文字列 404 のようなリテラル文字列が使用されていました。このパターンでは、ログイベントをモニタリングするにはログイベントメッセージ全体が一致する必要があります。

describe-metric-filters コマンドを使用して、メトリクスフィルターの作成を検証できます。このような出力が表示されます。

aws logs describe-metric-filters --log-group-name MyApp/access.log { "metricFilters": [ { "filterName": "HTTP404Errors", "metricTransformations": [ { "metricValue": "1", "metricNamespace": "MyNamespace", "metricName": "ApacheNotFoundErrorCount" } ], "creationTime": 1399277571078, "filterPattern": "[ip, id, user, timestamp, request, status_code=404, size]" } ] }

これでイベントをいくつか手動で投稿できます。

aws logs put-log-events \ --log-group-name MyApp/access.log --log-stream-name hostname \ --log-events \ timestamp=1394793518000,message="127.0.0.1 - bob [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb.gif HTTP/1.0\" 404 2326" \ timestamp=1394793528000,message="127.0.0.1 - bob [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb2.gif HTTP/1.0\" 200 2326"

これらのサンプルログイベントを入力した後すぐに、 CloudWatch コンソールで という名前のメトリクスを として取得できます ApacheNotFoundErrorCount。