概要

Amazon CloudFront は、Web サイト、API、ビデオコンテンツなどの Web 資産の配信を高速化するグローバルなコンテンツ配信ネットワーク (CDN) サービスです。

このインテグレーションを有効にすると、Datadog にすべての CloudFront メトリクスを表示できます。

セットアップ

インストール

Amazon Web Services インテグレーションをまだセットアップしていない場合は、最初にセットアップします。

メトリクスの収集

  1. AWS インテグレーションページで、Metric Collection タブの下にある CloudFront が有効になっていることを確認します。
  2. Datadog - Amazon CloudFront インテグレーションをインストールします。
  3. 任意: CloudFront ディストリビューションの追加メトリクス を有効化すると、CloudFront トラフィックのパフォーマンスの可視性を高めることができます。

ログ収集

ログの有効化

ディストリビューションで CloudFront ログを有効にする際は、CloudFront がログファイルを格納するために使用する Amazon S3 バケットを指定します。Amazon S3 を発信元として使用する場合、Datadog ではログファイルに同じバケットを使用しないことをお勧めしています。別のバケットを使用することで、メンテナンスを簡略化できます。

: Datadog は、ログ転送が 1 つのバケットにサブスクライブするだけでよいように、複数のディストリビューションのログファイルを同じバケットに格納することを推奨します。

ログを CloudFront ソースで自動的に分類するには、ロギングを有効にする際にファイル名のプレフィックスとして cloudfront を指定してください。それ以外の場合、ログは s3 に分類されます。

ログを Datadog に送信する方法

  1. AWS アカウントで Datadog Forwarder Lambda 関数をまだセットアップしていない場合は、セットアップします。
  2. 設定したら、Datadog Forwarder Lambda 関数に移動します。Function Overview セクションで、Add Trigger をクリックします。
  3. Trigger Configuration で S3 トリガーを選択します。
  4. CloudFront のログが格納されている S3 バケットを選択します。
  5. イベントの種類は All object create events のままにしておきます。
  6. Add をクリックすると、Lambda にトリガーが追加されます。

ログエクスプローラーに移動して、ログを確認します。

AWS Services のログを収集する方法については、Datadog Lambda 関数で AWS Services のログを送信するを参照してください。

ログの有効化

特定のコンフィギュレーションの作成

リアルタイムのログコンフィギュレーションを作成する際、受信するログのフィールドを指定することができます。デフォルトでは、すべての利用可能なフィールドが選択されています。

CloudFront のログ 3

Datadog は、このデフォルトのコンフィギュレーションを維持し、以下のカスタムパースルールを追加して、すべてのフィールドが有効な状態でログを自動的に処理することをおすすめします。

Pipelines ページ に移動し、Amazon CloudFront を検索して、grok parser processor を作成または編集 し、Advanced Settings に次の補助ルールを追加します:

      real_time_logs (%{number:timestamp:scale(1000)}|%{number:timestamp})\s+%{_client_ip}\s+%{_time_to_first_byte}\s+%{_status_code}\s+%{_bytes_write}\s+%{_method}\s+%{regex("[a-z]*"):http.url_details.scheme}\s+%{notSpace:http.url_details.host:nullIf("-")}\s+%{notSpace:http.url_details.path:nullIf("-")}\s+%{_bytes_read}\s+%{notSpace:cloudfront.edge-location:nullIf("-")}\s+%{_request_id}\s+%{_ident}\s+%{_duration}\s+%{_version}\s+IPv%{integer:network.client.ip_version}\s+%{_user_agent}\s+%{_referer}\s+%{notSpace:cloudfront.cookie}\s+(%{notSpace:http.url_details.queryString:querystring}|%{notSpace:http.url_details.queryString:nullIf("-")})\s+%{notSpace:cloudfront.edge-response-result-type:nullIf("-")}\s+%{_x_forwarded_for}\s+%{_ssl_protocol}\s+%{_ssl_cipher}\s+%{notSpace:cloudfront.edge-result-type:nullIf("-")}\s+%{_fle_encrypted_fields}\s+%{_fle_status}\s+%{_sc_content_type}\s+%{_sc_content_len}\s+%{_sc_range_start}\s+%{_sc_range_end}\s+%{_client_port}\s+%{_x_edge_detailed_result_type}\s+%{notSpace:network.client.country:nullIf("-")}\s+%{notSpace:accept-encoding:nullIf("-")}\s+%{notSpace:accept:nullIf("-")}\s+%{notSpace:cache-behavior-path-pattern:nullIf("-")}\s+%{notSpace:headers:nullIf("-")}\s+%{notSpace:header-names:nullIf("-")}\s+%{integer:headers-count}.*

ログを Datadog に送信する方法

リアルタイム ログは、任意の Kinesis Data Stream に配信され、Kinesis Firehose インテグレーション を使って Datadog に直接転送できます。

また、Amazon Kinesis Data Firehose などのコンシューマーを設定してリアルタイム ログを S3 バケットに送り、Datadog Lambda forwarder を使って Datadog にログを転送することもできます。

収集データ

メトリクス

AWS から取得される各メトリクスには、aws_accountregiondistributionid など、AWS コンソールに表示されるタグと同じタグが割り当てられます。

イベント

Amazon CloudFront インテグレーションには、イベントは含まれません。

サービスチェック

Amazon CloudFront インテグレーションには、サービスのチェック機能は含まれません。

トラブルシューティング

ご不明な点は、Datadog のサポートチームまでお問い合わせください。