概要
Amazon Web Services (AWS) を接続すると、次のことができるようになります。
- イベントエクスプローラーで AWS ステータスの自動更新を確認する
- Agent をインストールすることなく、EC2 ホストの CloudWatch メトリクスを取得する
- EC2 ホストに EC2 固有の情報をタグ付けする
- EC2 のスケジュール設定されたメンテナンス イベントをストリームに表示する
- その他のさまざまな AWS 製品から CloudWatch メトリクスとイベントを収集する
- イベントエクスプローラーで CloudWatch アラームを確認する
AWS インテグレーションをすぐに使い始めるには、AWS スタートガイドをご確認ください。
Datadog の Amazon Web Services インテグレーションは、90 以上の AWS サービスのログ、イベント、CloudWatch からのほとんどのメトリクスを収集します。
セットアップ
以下のいずれかの方法を使用して AWS アカウントを Datadog に統合し、メトリクス、イベント、タグ、ログを収集します。
自動
手動
ロールの委任
AWS インテグレーションをロールの委任で手動設定する場合は、手動設定ガイドを参照してください。
アクセスキー (GovCloud または中国*のみ)
アクセスキーを使用して AWS インテグレーションをセットアップするには、手動セットアップガイドをご覧ください。
* 中国本土における (または中国本土内の環境に関連する) Datadog サービスの使用はすべて、当社 Web サイトのサービス制限地域セクションに掲載されている免責事項に従うものとします。
AWS IAM permissions
AWS IAM permissions enable Datadog to collect metrics, tags, EventBridge events, and other data necessary to monitor your AWS environment.
To correctly set up the AWS Integration, you must attach the relevant IAM policies to the Datadog AWS Integration IAM Role in your AWS account.
AWS integration IAM policy
The set of permissions necessary to use all the integrations for individual AWS services.
The following permissions included in the policy document use wild cards such as List*
and Get*
. If you require strict policies, use the complete action names as listed and reference the Amazon API documentation for your respective services.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"apigateway:GET",
"autoscaling:Describe*",
"backup:List*",
"bcm-data-exports:GetExport",
"bcm-data-exports:ListExports",
"budgets:ViewBudget",
"cassandra:Select",
"cloudfront:GetDistributionConfig",
"cloudfront:ListDistributions",
"cloudtrail:DescribeTrails",
"cloudtrail:GetTrailStatus",
"cloudtrail:LookupEvents",
"cloudwatch:Describe*",
"cloudwatch:Get*",
"cloudwatch:List*",
"codedeploy:BatchGet*",
"codedeploy:List*",
"cur:DescribeReportDefinitions",
"directconnect:Describe*",
"dynamodb:Describe*",
"dynamodb:List*",
"ec2:Describe*",
"ec2:GetEbsDefaultKmsKeyId",
"ec2:GetInstanceMetadataDefaults",
"ec2:GetSerialConsoleAccessStatus",
"ec2:GetSnapshotBlockPublicAccessState",
"ec2:GetTransitGatewayPrefixListReferences",
"ec2:SearchTransitGatewayRoutes",
"ecs:Describe*",
"ecs:List*",
"elasticache:Describe*",
"elasticache:List*",
"elasticfilesystem:DescribeAccessPoints",
"elasticfilesystem:DescribeFileSystems",
"elasticfilesystem:DescribeTags",
"elasticloadbalancing:Describe*",
"elasticmapreduce:Describe*",
"elasticmapreduce:List*",
"es:DescribeElasticsearchDomains",
"es:ListDomainNames",
"es:ListTags",
"events:CreateEventBus",
"fsx:DescribeFileSystems",
"fsx:ListTagsForResource",
"glacier:GetVaultNotifications",
"glue:ListRegistries",
"health:DescribeAffectedEntities",
"health:DescribeEventDetails",
"health:DescribeEvents",
"keyspaces:GetTable",
"keyspaces:ListKeyspaces",
"keyspaces:ListTables",
"kinesis:Describe*",
"kinesis:List*",
"lambda:GetPolicy",
"lambda:List*",
"lightsail:GetInstancePortStates",
"logs:DeleteSubscriptionFilter",
"logs:DescribeLogGroups",
"logs:DescribeLogStreams",
"logs:DescribeSubscriptionFilters",
"logs:FilterLogEvents",
"logs:PutSubscriptionFilter",
"logs:TestMetricFilter",
"oam:ListAttachedLinks",
"oam:ListSinks",
"organizations:Describe*",
"organizations:List*",
"rds:Describe*",
"rds:List*",
"redshift:DescribeClusters",
"redshift:DescribeLoggingStatus",
"route53:List*",
"s3:GetBucketLocation",
"s3:GetBucketLogging",
"s3:GetBucketNotification",
"s3:GetBucketTagging",
"s3:ListAccessGrants",
"s3:ListAllMyBuckets",
"s3:PutBucketNotification",
"savingsplans:DescribeSavingsPlanRates",
"savingsplans:DescribeSavingsPlans",
"ses:Get*",
"sns:GetSubscriptionAttributes",
"sns:List*",
"sns:Publish",
"sqs:ListQueues",
"states:DescribeStateMachine",
"states:ListStateMachines",
"support:DescribeTrustedAdvisor*",
"support:RefreshTrustedAdvisorCheck",
"tag:GetResources",
"tag:GetTagKeys",
"tag:GetTagValues",
"timestream:DescribeEndpoints",
"timestream:ListTables",
"waf-regional:GetRule",
"waf-regional:GetRuleGroup",
"waf-regional:ListRuleGroups",
"waf-regional:ListRules",
"waf:GetRule",
"waf:GetRuleGroup",
"waf:ListRuleGroups",
"waf:ListRules",
"wafv2:GetIPSet",
"wafv2:GetLoggingConfiguration",
"wafv2:GetRegexPatternSet",
"wafv2:GetRuleGroup",
"wafv2:ListLoggingConfigurations",
"xray:BatchGetTraces",
"xray:GetTraceSummaries"
],
"Effect": "Allow",
"Resource": "*"
}
]
}
AWS resource collection IAM policy
To use resource collection, you must attach AWS’s managed SecurityAudit Policy to your Datadog IAM role.
Notes:
- Warning messages appear on the AWS integration tile in Datadog if you enable resource collection, but do not have the AWS Security Audit Policy attached to your Datadog IAM role.
- To enable Datadog to collect account management resources from
account.GetAlternateContact
and account.GetContactInformation
, you need to enable trusted access for AWS account management.
ログ収集
AWSサービスログを Datadog に送信する方法はいくつかあります。
- Amazon Data Firehose destination: Amazon Data Firehose 配信ストリームで Datadog の宛先を使用して、ログを Datadog に転送します。CloudWatch から非常に大量のログを送信する際は、このアプローチを使用することが推奨されます。
- Forwarder Lambda 関数: S3 バケットまたは CloudWatch ロググループにサブスクライブする Datadog Forwarder Lambda 関数をデプロイし、ログを Datadog に転送します。また、S3 またはデータを Amazon Data Firehose に直接ストリーミングできないその他のリソースからログを送信する場合、Datadog ではこのアプローチを使用することをお勧めしています。
メトリクスの収集
メトリクスを Datadog に送信する方法は 2 つあります。
- メトリクスのポーリング: AWS インテグレーションで利用できる API ポーリングです。CloudWatch API をメトリクス別にクロールしてデータを取得し、Datadog に送信します。新しいメトリクスの取得は平均 10 分毎に行われます。
- Amazon Data Firehose でのメトリクスストリーム: Amazon CloudWatch Metric Streams と Amazon Data Firehose を使用してメトリクスを確認します。注: このメソッドには 2 - 3 分のレイテンシーがあり、別途設定が必要となります。
利用可能なサブインテグレーションの一覧は、インテグレーションページでご確認いただけます。これらのインテグレーションの多くは、Datadog が AWS アカウントからのデータ入力を認識した際にデフォルトでインストールされます。コスト管理のために特定のリソースを除外するオプションについては、AWS インテグレーション請求ページをご参照ください。
リソース収集
一部の Datadog 製品は、AWS リソース (S3 バケット、RDS スナップショット、CloudFront ディストリビューションなど) の構成方法に関する情報を活用します。Datadog は、AWS アカウントに対して読み取り専用の API 呼び出しを行うことにより、この情報を収集します。
AWS resource collection IAM policy
To use resource collection, you must attach AWS’s managed SecurityAudit Policy to your Datadog IAM role.
Notes:
- Warning messages appear on the AWS integration tile in Datadog if you enable resource collection, but do not have the AWS Security Audit Policy attached to your Datadog IAM role.
- To enable Datadog to collect account management resources from
account.GetAlternateContact
and account.GetContactInformation
, you need to enable trusted access for AWS account management.
Cloud Security Management
セットアップ
お使いの AWS アカウントで AWS インテグレーションの設定を行っていない場合は、上記の設定プロセスを完了させます。Cloud Security Management が有効化されていることを適宜ご確認ください。
注: この機能を使用するには、AWS インテグレーションにロールの委任を設定する必要があります。
既存の AWS インテグレーションに Cloud Security Management を追加するには、以下の手順でリソース収集を有効にしてください。
Datadog の AWS IAM ロールに、AWS が管理している SecurityAudit
ポリシーをアタッチして、Datadog の IAM ロールに必要な権限を付与します。このポリシーは AWS コンソールにあります。
Datadog AWS インテグレーションページで、以下の手順で設定を完了させます。または、Update an AWS Integration API エンドポイントを利用することも可能です。
- リソース収集を有効化したい AWS アカウントを選択します。
- そのアカウントの Resource collection タブに移動し、
Cloud Security Posture Management Collection
を有効にします。 - ページの右下にある
Save
をクリックします。
アラームの収集
AWS CloudWatch アラームを Datadog イベントエクスプローラーに送信する方法は 2 つあります。
- アラームポーリング: アラームポーリングは AWS インテグレーションですぐに使用でき、DescribeAlarmHistory API を介してメトリクスアラームをフェッチします。この方法に従うと、イベントソース
Amazon Web Services
の下にアラームが分類されます。注: クローラーは複合アラームを収集しません。 - SNS トピック: アラームを SNS トピックにサブスクライブしてから、SNS メッセージを Datadog に転送することで、イベントエクスプローラー内のすべての AWS CloudWatch アラームを確認できます。Datadog でイベントとして SNS メッセージを受信する方法については、SNS メッセージの受信を参照してください。この方法に従うと、イベントソース
Amazon SNS
の下にアラームが分類されます。
収集データ
メトリクス
aws.events.failed_invocations (count) | Measures the number of invocations that failed permanently. This does not include invocations that are retried or that succeeded after a retry attempt |
aws.events.invocations (count) | Measures the number of times a target is invoked for a rule in response to an event. This includes successful and failed invocations but does not include throttled or retried attempts until they fail permanently. |
aws.events.matched_events (count) | Measures the number of events that matched with any rule. |
aws.events.throttled_rules (count) | Measures the number of triggered rules that are being throttled. |
aws.events.triggered_rules (count) | Measures the number of triggered rules that matched with any event. |
aws.logs.delivery_errors (count) | The number of log events for which CloudWatch Logs received an error when forwarding data to the subscription destination. Shown as event |
aws.logs.delivery_throttling (count) | The number of log events for which CloudWatch Logs was throttled when forwarding data to the subscription destination. Shown as event |
aws.logs.forwarded_bytes (gauge) | The volume of log events in compressed bytes forwarded to the subscription destination. Shown as byte |
aws.logs.forwarded_log_events (count) | The number of log events forwarded to the subscription destination. Shown as event |
aws.logs.incoming_bytes (gauge) | The volume of log events in uncompressed bytes uploaded to Cloudwatch Logs. Shown as byte |
aws.logs.incoming_log_events (count) | The number of log events uploaded to Cloudwatch Logs. Shown as event |
aws.usage.call_count (count) | The number of specified operations performed in your account Shown as operation |
aws.usage.resource_count (count) | The number of specified resources in your account Shown as resource |
注: AWS カスタムメトリクスの収集を有効にしたり、Datadog がインテグレーションを提供していないサービスからのメトリクスを収集することも可能です。詳しくは、AWS インテグレーションと CloudWatch の FAQ をご参照ください。
イベント
AWS からのイベントは、AWS サービス単位で収集されます。収集されるイベントの詳細については、お使いの AWS サービスのドキュメントを参照してください。
タグ
AWS インテグレーションにより以下のタグが収集されます。注: 一部のタグは、特定のメトリクスにのみ表示されます。
インテグレーション | Datadog タグキー |
---|
All | region |
API Gateway | apiid 、apiname、 method、 resource、 stage` |
App Runner | instance 、serviceid 、servicename |
Auto Scaling | autoscalinggroupname 、autoscaling_group |
Billing | account_id 、budget_name 、budget_type 、currency 、servicename 、time_unit |
CloudFront | distributionid |
CodeBuild | project_name |
CodeDeploy | application 、creator 、deployment_config 、deployment_group 、deployment_option 、deployment_type 、status |
DirectConnect | connectionid |
DynamoDB | globalsecondaryindexname 、operation 、streamlabel 、tablename |
EBS | volumeid 、volume-name 、volume-type |
EC2 | autoscaling_group 、availability-zone 、image 、instance-id 、instance-type 、kernel 、name 、security_group_name |
ECS | clustername 、servicename 、instance_id |
EFS | filesystemid |
ElastiCache | cachenodeid 、cache_node_type 、cacheclusterid 、cluster_name 、engine 、engine_version 、preferred_availability-zone 、replication_group |
ElasticBeanstalk | environmentname 、enviromentid |
ELB | availability-zone 、hostname 、loadbalancername 、name 、targetgroup |
EMR | cluster_name 、jobflowid |
ES | dedicated_master_enabled 、ebs_enabled 、elasticsearch_version 、instance_type 、zone_awareness_enabled |
Firehose | deliverystreamname |
FSx | filesystemid 、filesystemtype |
Health | event_category 、status 、service |
IoT | actiontype 、protocol 、rulename |
Kinesis | streamname 、name 、state |
KMS | keyid |
Lambda | functionname 、resource 、executedversion 、memorysize 、runtime |
Machine Learning | mlmodelid 、requestmode |
MQ | broker 、queue 、topic |
OpsWorks | stackid 、layerid 、instanceid |
Polly | operation |
RDS | auto_minor_version_upgrade 、dbinstanceclass 、dbclusteridentifier 、dbinstanceidentifier 、dbname 、engine 、engineversion 、hostname 、name 、publicly_accessible 、secondary_availability-zone |
RDS Proxy | proxyname 、target 、targetgroup 、targetrole |
Redshift | clusteridentifier 、latency 、nodeid 、service_class 、stage 、wlmid |
Route 53 | healthcheckid |
S3 | bucketname 、filterid 、storagetype |
SES | タグキーは AWS でカスタム設定されます。 |
SNS | topicname |
SQS | queuename |
VPC | nategatewayid 、vpnid 、tunnelipaddress |
WorkSpaces | directoryid 、workspaceid |
サービスチェック
aws.status
Returns CRITICAL
if one or more AWS regions are experiencing issues. Returns OK
otherwise.
Statuses: ok, critical
トラブルシューティング
AWS インテグレーションに関する問題解決は、AWS インテグレーションのトラブルシューティングガイドをご参照ください。
その他の参考資料