概要
Amazon CloudFront は、Web サイト、API、ビデオコンテンツなどの Web 資産の配信を高速化するグローバルなコンテンツ配信ネットワーク (CDN) サービスです。
このインテグレーションを有効にすると、Datadog にすべての CloudFront メトリクスを表示できます。
セットアップ
インストール
Amazon Web Services インテグレーションをまだセットアップしていない場合は、最初にセットアップします。
メトリクスの収集
- AWS インテグレーションページで、
Metric Collection
タブの下にある CloudFront
が有効になっていることを確認します。 - Datadog - Amazon CloudFront インテグレーションをインストールします。
- 任意: CloudFront ディストリビューションの追加メトリクス を有効化すると、CloudFront トラフィックのパフォーマンスの可視性を高めることができます。
収集データ
ログの有効化
ディストリビューションで CloudFront ログを有効にする際は、CloudFront がログファイルを格納するために使用する Amazon S3 バケットを指定します。Amazon S3 を発信元として使用する場合、Datadog ではログファイルに同じバケットを使用しないことをお勧めしています。別のバケットを使用することで、メンテナンスを簡略化できます。
注: Datadog は、ログ転送が 1 つのバケットにサブスクライブするだけでよいように、複数のディストリビューションのログファイルを同じバケットに格納することを推奨します。
ログを CloudFront ソースで自動的に分類するには、ロギングを有効にする際にファイル名のプレフィックスとして cloudfront
を指定してください。それ以外の場合、ログは s3
に分類されます。
ログを Datadog に送信する方法
- AWS アカウントで Datadog Forwarder Lambda 関数をまだセットアップしていない場合は、セットアップします。
- 設定したら、Datadog Forwarder Lambda 関数に移動します。Function Overview セクションで、Add Trigger をクリックします。
- Trigger Configuration で S3 トリガーを選択します。
- CloudFront のログが格納されている S3 バケットを選択します。
- イベントの種類は
All object create events
のままにしておきます。 - Add をクリックすると、Lambda にトリガーが追加されます。
ログエクスプローラーに移動して、ログを確認します。
AWS Services のログを収集する方法については、Datadog Lambda 関数で AWS Services のログを送信するを参照してください。
ログの有効化
特定のコンフィギュレーションの作成
リアルタイムのログコンフィギュレーションを作成する際、受信するログのフィールドを指定することができます。デフォルトでは、すべての利用可能なフィールドが選択されています。
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 へ配信され、Amazon Data Firehose インテグレーションを使用して Datadog に直接転送することが可能です。
Amazon Data Firehose などのコンシューマーを構成してリアルタイムログを S3 バケットに送信し、Datadog Lambda forwarder を使用してログを Datadog へ送信することもできます。
収集データ
メトリクス
AWS から取得される各メトリクスには、aws_account
、region
、distributionid
など、AWS コンソールに表示されるタグと同じタグが割り当てられます。
イベント
Amazon CloudFront インテグレーションには、イベントは含まれません。
サービスチェック
Amazon CloudFront インテグレーションには、サービスのチェック機能は含まれません。
トラブルシューティング
ご不明な点は、Datadog のサポートチームまでお問合せください。