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

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

前の例と同じように、ウェブサービスアクセスログをモニタリングしたり HTTP 応答コードレベルをモニタリングする場合があります。たとえば、HTTP 400 レベルのエラーをすべてモニタリングする場合です。ただし、それぞれのリターンコードに 1 つずつ新しいメトリクスフィルターを指定したくない場合があります。

以下の例は、「例: HTTP 404 コードをカウントする」の例の Apache アクセスログ形式を使用して、アクセスログから 400 レベルの HTTP コードレスポンスを含むメトリクスを作成する方法を示しています。

CloudWatch コンソールを使用してメトリクスフィルターを作成するには

  1. https://console.aws.amazon.com/cloudwatch/ にある CloudWatch コンソールを開きます。

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

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

  4. [フィルターパターン] には [ip, id, user, timestamp, request, status_code=4*, size] と入力します。

  5. フィルターパターンをテストするには、[パターンのテスト] を選択します。

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

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

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

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

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

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

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

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

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

put-event 呼び出しの次のデータを使用してこのルールをテストできます。前の例のモニタリングのルールを削除していない場合は、2 つの異なるメトリクスを生成します。

127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287 127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287 127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /~test/ HTTP/1.1" 200 3 127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308 127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308 127.0.0.1 - - [24/Sep/2013:11:51:34 -0700] "GET /~test/index.html HTTP/1.1" 200 3