例: Apache ログからフィールドを抽出してディメンションを割り当てる - Amazon CloudWatch Logs

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

例: Apache ログからフィールドを抽出してディメンションを割り当てる

カウントの代わりに、個別のログイベント内の値をメトリクス値に使用する方が役に立つ場合があります。この例では、Apache ウェブサーバーが転送したバイト数を計測するメトリクスを作成する抽出ルールの作成方法を示しています。

この抽出ルールは、ログイベントの 7 つのフィールドと一致します。メトリクス値は 7 番目に一致したトークンの値です。抽出ルールの metricValue フィールドにある「$7」がトークンの参照です。

この例では、作成するメトリクスにディメンションを割り当てる方法も示します。

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

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

  3. Apache サーバーのロググループの名前を選択します。

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

  5. [フィルターパターン] に「[ip, id, user, timestamp, request, status_code, size]」と入力します。

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

  7. [次へ] を選択し、[フィルター名] に「size」と入力します。

  8. [メトリクスの詳細] の [メトリクス名前空間] に、「MyNameSpace」と入力します。これは新しい名前空間であるため、[新規作成] が選択されていることを確認してください。

  9. [メトリクス名] に、「BytesTransferred」と入力します。

  10. [メトリクス値] に「$size」と入力します。

  11. [Unit] (単位) で、[Bytes] (バイト) を選択します。

  12. [Dimension Name] (ディメンション名) で、IP と入力します。

  13. [Dimension Value] (ディメンションの値) に、$ip と入力し、[Next] (次へ) を選択します。

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

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

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

aws logs put-metric-filter \ --log-group-name MyApp/access.log \ --filter-name BytesTransferred \ --filter-pattern '[ip, id, user, timestamp, request, status_code, size]' \ --metric-transformations \ metricName=BytesTransferred,metricNamespace=MyNamespace,metricValue='$size'
aws logs put-metric-filter \ --log-group-name MyApp/access.log \ --filter-name BytesTransferred \ --filter-pattern '[ip, id, user, timestamp, request, status_code, size]' \ --metric-transformations \ metricName=BytesTransferred,metricNamespace=MyNamespace,metricValue='$size',unit=Bytes,dimensions='{{IP=$ip}}'
注記

このコマンドでは、この形式を使用して複数のディメンションを指定します。

aws logs put-metric-filter \ --log-group-name my-log-group-name \ --filter-name my-filter-name \ --filter-pattern 'my-filter-pattern' \ --metric-transformations \ metricName=my-metric-name,metricNamespace=my-metric-namespace,metricValue=my-token,unit=unit,dimensions='{dimension1=$dim,dimension2=$dim2,dim3=$dim3}'

put-log-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