概要
このガイドでは、Datadog の CloudFormation テンプレートを使用して、Amazon Web Services (AWS) アカウントを Datadog と統合する手順を説明します。セットアップが完了したら、個々の AWS サービスインテグレーションを有効にし、より深い可視性を得るために EC2 インスタンスに Datadog Agent をインストールして、ログ転送を構成できます。
前提条件
始める前に、AWS アカウントがあることを確認してください。CloudFormation テンプレートで IAM ロールと関連するポリシーを作成し、Datadog の AWS アカウントがデータの収集やプッシュのために AWS アカウントに API コールを行えるようにします。AWS ユーザーは、テンプレートを実行するために以下の IAM 権限を持っている必要があります。
cloudformation:CreateStack
cloudformation:CreateUploadBucket
cloudformation:DeleteStack
cloudformation:DescribeStacks
cloudformation:DescribeStackEvents
cloudformation:GetStackPolicy
cloudformation:GetTemplateSummary
cloudformation:ListStacks
cloudformation:ListStackResources
ec2:DescribeSecurityGroups
ec2:DescribeSubnets
ec2:DescribeVpcs
iam:AttachRolePolicy
iam:CreatePolicy
iam:CreateRole
iam:DeleteRole
iam:DeleteRolePolicy
iam:DetachRolePolicy
iam:GetRole
iam:GetRolePolicy
iam:PassRole
iam:PutRolePolicy
iam:TagRole
iam:UpdateAssumeRolePolicy
kms:Decrypt
lambda:AddPermission
lambda:CreateFunction
lambda:DeleteFunction
lambda:GetCodeSigningConfig
lambda:GetFunction
lambda:GetFunctionCodeSigningConfig
lambda:GetLayerVersion
lambda:InvokeFunction
lambda:PutFunctionConcurrency
lambda:RemovePermission
lambda:TagResource
logs:CreateLogGroup
logs:DeleteLogGroup
logs:DescribeLogGroups
logs:PutRetentionPolicy
oam:ListSinks
oam:ListAttachedLinks
s3:CreateBucket
s3:DeleteBucket
s3:DeleteBucketPolicy
s3:GetEncryptionConfiguration
s3:GetObject
s3:GetObjectVersion
s3:PutBucketPolicy
s3:PutBucketPublicAccessBlock
s3:PutEncryptionConfiguration
s3:PutLifecycleConfiguration
secretsmanager:CreateSecret
secretsmanager:DeleteSecret
secretsmanager:GetSecretValue
secretsmanager:PutSecretValue
serverlessrepo:CreateCloudFormationTemplate
セットアップ
- Datadog の AWS インテグレーション構成ページに移動し、Add AWS Account をクリックします。
- Automatically using CloudFormation のオプションで、インテグレーションの設定を構成します。
- 統合する AWS リージョンを選択します。
- Datadog API キーを追加します。
- 必要に応じて、Datadog Forwarder Lambda でログなどのデータを Datadog に送ります。
- 必要に応じて、Cloud Security Misconfigurations を有効にして、クラウド環境、ホスト、コンテナをスキャンして、誤構成やセキュリティリスクを検出します。
- Launch CloudFormation Template をクリックします。これにより AWS コンソールが開き、CloudFormation スタックが読み込まれます。すべてのパラメーターは、事前の Datadog フォームでの選択に基づいて入力されているため、必要な場合以外は編集する必要はありません。
注:
DatadogAppKey パラメーターは、CloudFormation スタックが Datadog に API コールを行い、この AWS アカウントの Datadog 構成を追加および編集できるようにするものです。キーは自動的に生成され、Datadog アカウントに関連付けられます。 - AWS から必要な項目にチェックを入れ、Create stack をクリックします。これにより、Datadog スタックと 3 つのネストされたスタックの作成プロセスが開始されます。これには数分かかる場合があります。次に進む前に、スタックが正常に作成されたことを確認してください。
- スタックの作成後、Datadog の AWS インテグレーションタイルに戻り、Ready! をクリックします。
- データ収集が開始されるまで最大 10 分待ち、すぐに使える AWS 概要ダッシュボードを表示して、AWS サービスやインフラストラクチャーから送信されるメトリクスを確認します。
複数のアカウントを一度に設定するには、API、AWS CLI、または Terraform を使用します。詳細については、Datadog-Amazon CloudFormation ガイドを参照してください。
注: Datadog の CloudFormation テンプレートは、定義済みのリソースの作成と削除のみをサポートしています。スタックへの更新の適用方法については、スタックテンプレートの更新を参照してください。
セットアップ後にできること
インテグレーションが正常に構成されると、データが次のタイムラインから Datadog に表示されるようになります。
- メトリクス: API ポーリングで約 10 分、CloudWatch メトリクスストリーム であれば 2 ~ 3 分で表示されます。すべてのサービスが同じ間隔でレポートするわけではないため、最初の 1 時間はダッシュボードにデータが一部しか表示されなくても異常ではありません。
- タグ: AWS リソースタグの伝播には、追加の時間がかかる場合があります。AWS でのタグの変更が Datadog に反映されるまでには、15 分から数時間かかることがあります。
- リソース: セットアップ後の次のリソースクロールサイクルで検出されます。
- ログ: 別途構成が必要です。セットアップ手順については、ログを送信するを参照してください。
Datadog は、インテグレーションが有効化される前の履歴メトリクスデータをバックフィルしません。メトリクスの収集は、インテグレーションが正常に構成された時点から開始されます。
構成
個々の AWS サービスに対するインテグレーションを有効にする
利用可能なサブインテグレーションの完全なリストについては、インテグレーションページを参照してください。これらのインテグレーションの多くは、Datadog が AWS アカウントからのデータを認識したときにデフォルトでインストールされます。
AWS インテグレーションページの Metric Collection タブを使用して、Datadog インテグレーションがメトリクスを収集するサービスを構成します。
メトリクス名でメトリクスをフィルタリングします
AWS integration pageのMetric Collectionタブを使用して、名前空間ごとにCloudWatchメトリクスをフィルタリングしてください。CloudWatchメトリクス収集テーブルの名前空間を展開し、含めるまたは除外フィルターを選択してください。
- 含める: その名前空間に対して構成されたパターンに一致するDatadogメトリクス名のみを収集します。
- 除外: その名前空間に対して構成されたパターンに一致するものを除き、すべてのDatadogメトリクス名を収集します。
各名前空間で一度に使用できるフィルターモードは1つだけです。フィルターパターンは、小文字、数字、.、_、および*をサポートしています。例えば、aws.ec2.network_*はEC2ネットワークメトリクスに一致します。変更を保存する前に、各パターンに一致するメトリクスの数がテーブルでプレビュー表示されます。
メトリクス名フィルターは名前空間ごとに適用され、名前空間のメトリクス収集が有効になった後に評価されます。
メトリクス名フィルターでは削除できません aws.ec2.cpuutilization または aws.lambda.invocations。Datadogは、これらの必須メトリクスを常に収集します。
メトリクス名フィルターをプログラムで管理するには、Configure AWS metric name filters with the APIを参照してください。
リージョンを追加する
Datadog がメトリクス、CloudWatch イベント、リソースを収集する AWS リージョンは、AWS インテグレーションページ の General タブで管理できます。
ログを送信する
AWS サービスログを Datadog に送信する方法は 2 つあります。
セットアップ手順については、AWS サービスのログを有効にするを参照してください。
検証
ログを有効にしたら、ログエクスプローラーで source または service ファセットを使用してログを見つけます。以下は S3 の例です。
EC2 上の Datadog Agent でより深く視覚化する
Datadog AWS インテグレーションは、デフォルトでは CloudWatch API をクロールして AWS が提供するメトリクスを取得しますが、Datadog Agent を使用すると EC2 インスタンスをさらに深くまで視覚化することが可能です。Datadog Agent は、メトリクスやイベントをレポートする軽量のデーモンであり、ログやトレースを構成することもできます。Datadog アプリケーションの Agent Installation セクションには、さまざまなオペレーティングシステムに Datadog Agent をインストールするための手順が記載されています。多くのオペレーティングシステム (たとえば、Amazon Linux) には、インスタンスのターミナルから実行して Datadog Agent をインストールできるワンステップインストールコマンドがあります。
Agent がインストールされると、インフラストラクチャーリスト内に骨のアイコンとしてグラフィカルに表示されます。
上のスクリーンショットは、Datadog Agent が System と NTP のチェックからデータを報告しているホストを示しています。System チェックは、CPU、メモリ、ファイルシステム、I/O に関するメトリクスを提供し、ホストに関するさらなる洞察を提供します。環境やユースケースに合わせて追加のインテグレーションを有効にしたり、追加で DogStatsD を使用してカスタムメトリクスを Datadog に直接送信することもできます。
この方法の利点については、クラウドインスタンスに Datadog Agent をインストールすべき理由に関する FAQ を参照してください。
Amazon Container Services で Datadog Agent を使用する
コンテナ環境では、インスタンスの管理や Fargate を活用したサーバーレス環境でも、Datadog Agent を利用することができます。
EC2 起動タイプの ECS
Amazon ECS のドキュメントを使用して、ECS クラスターの EC2 インスタンスで Datadog Docker Agent を実行します。Amazon ECS Data Collection のドキュメントで、Datadog アカウントに報告されるメトリクスとイベントを確認します。
Fargate 起動タイプの ECS
Amazon ECS on AWS Fargate のドキュメントを使用して、アプリケーションと同じタスク定義でコンテナとして Agent を実行します。注: Fargate インテグレーションを最大限に活用するには、Datadog Agent バージョン 6.1.1 以降が必要です。
Fargate オーケストレーションタイプによる AWS Batch
Amazon ECS on AWS Fargate for AWS Batch のドキュメントを使用して、アプリケーションと同じ AWS Batch ジョブ定義でコンテナとして Agent を実行します。注: Fargate インテグレーションを最大限に活用するには、Datadog Agent バージョン 6.1.1 以降が必要です。
EKS
Kubernetes Distributions のドキュメントにあるように、Amazon Elastic Kubernetes Service (EKS) の場合は特に構成は必要ありません。EKS クラスターに Agent をデプロイするには、Kubernetes 専用ドキュメントを使用します。
EKS と Fargate
Fargate ポッドは AWS によって管理されているため、CPU やメモリなどのホストベースのシステムチェックは除外されます。AWS Fargate ポッドからデータを収集するには、Amazon EKS on AWS Fargate のドキュメントを使用して、カスタムロールベースのアクセス制御 (RBAC) でアプリケーションポッドのサイドカーとして Agent を実行するようにします。注: Datadog Agent バージョン 7.17 以降が必要です。
EKS Anywhere
オンプレミスの Kubernetes クラスターには、EKS Anywhere のドキュメントを使用します。
Datadog のリソースを追加で作成する
Datadog の UI や API を利用するほか、CloudFormation Registry で多くの Datadog リソースを作成することが可能です。視覚化とトラブルシューティングのために、ダッシュボードを使用して主要データを表示し、関数を適用し、メトリクス相関を見つけることができます。
アカウントでの望ましくない動作や予期せぬ動作について通知を受けるには、モニターを作成します。モニターは、アカウントに報告されたデータを一貫して評価し、正しい情報が正しいチームメンバーに届くように通知を送信します。チームに通知するすべての方法については、通知インテグレーションのリストを参照してください。
Serverless
Datadog で AWS Lambda 関数を監視するには、Serverless を参照して、アプリケーションのインスツルメンテーション、サーバーレスライブラリとインテグレーションのインストール、サーバーレスアプリケーションによる分散トレーシングの実装、またはサーバーレスの問題のトラブルシューティングに付いての説明を確認してください。
APM
アプリケーションと AWS サービスから分散トレースを収集するには、Datadog Agent を APM と共に使用します。AWS Lambda 関数の場合は、Datadog Lambda Extension を使用してインスツルメントします。 アプリケーションパフォーマンスデータの分析に関する詳細は、APM のドキュメントを参照してください。
さらに、APM パフォーマンスとインフラストラクチャーメトリクスのアルゴリズム機能である Watchdog を使用すると、アプリケーションの潜在的な問題を自動的に検出し、通知されるようにすることができます。
セキュリティ
Cloud SIEM
Cloud SIEM の概要を参照して、すぐに使えるログ検出ルールに照らし合わせてログを評価します。これらのルールはカスタマイズ可能であり、脅威が検出されるとセキュリティシグナルエクスプローラーでアクセス可能なセキュリティシグナルが生成されます。通知ルールを使用して複数のルールにまたがる通知設定を構成することができます。
Cloud Security Misconfigurations
クラウド環境の誤構成を検出および評価する方法については、Cloud Security Misconfigurations の設定ガイドを参照してください。デフォルトで提供される Cloud と Infrastructure のコンプライアンスルールに照らしてリソース構成データが評価され、攻撃手法や潜在的な誤構成にフラグが付けられます。
トラブルシューティング
Datadog is not authorized to perform sts:AssumeRole というエラーが発生した場合は、専用のトラブルシューティングページを参照してください。その他の問題については、AWS インテグレーショントラブルシューティングガイドを参照してください。
参考資料