- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
AWS 서비스 로그는 Datadog 포워더(Forwarder) 람다 함수로 수집할 수 있습니다. 이 S3 Bucket, 클라우드와치(CloudWatch) 로그 그룹 및 EventBridge 이벤트 -포워더 로그를 Datadog로 전달합니다.
AWS 서비스에서 로그 수집을 시작하려면,
참고: AWS us-east-1
지역에 있는 경우 Datadog-AWS 비공개 링크를 활용하세요.
참고: Cloudformation은 모든 리소스에 대해 KMS:Decrypt를 포함하는 IAM 정책을 생성하며, AWS Security Hub의 모범 사례와 매칭되지 않습니다. 이 권한은 KMS로 암호화된 S3 버킷에서 개체의 암호를 해독하여 람다 함수를 설정하는 데 사용됩니다. S3 버킷을 암호화하는 데 사용되는 KMS 키는 예측할 수 없습니다. 설치가 성공적으로 완료된 후 이 권한을 안전하게 삭제할 수 있습니다.
로그를 S3 버킷 또는 클라우드와치(CloudWatch)에 생성하는 AWS 서비스 모두가 지원됩니다. 아래 표에서 가장 많이 사용되는 서비스에 대한 설정 지침을 확인하세요.
AWS 서비스 | AWS 서비스 로깅 활성화 | Datadog에 AWS 로그 전송 |
---|---|---|
API 게이트웨이 | Amazon API 게이트웨이 활성화 로그 | 수동 및 자동 로그 수집 |
Cloudfront | Amazon CloudFront 로그 활성화 | 수동 및 자동 로그 수집 |
CloudTrail | AWS CloudTrail 로그 활성화 | 수동 로그 수집. Cloud SIEM용 AWS CloudTrail을 설정하는 경우 Cloud SIEM용 AWS 설정을 참조하세요. |
DynamoDB | Amazon DynamoDB 로그 활성화 | 수동 로그 수집 |
EC2 | - | Datadog 에이전트를 사용하여 로그를 Datadog에 전송하세요. |
ECS | - | 도커(Docker) 에이전트를 사용하여 로그을 수집합니다. |
Elastic 로드밸런싱(ELB) | Amazon ELB 활성화 로그 | 수동 및 자동 로그 수집 |
람다 | - | 수동 및 자동 로그 수집 |
RDS | Amazon RDS 활성화 로그 | 수동 로그 수집 |
Route 53 | Amazon Route 53 로그 활성화 | 수동 로그 수집 |
S3 | Amazon S3 로그 활성화 | 수동 및 자동 로그 수집 |
SNS | SNS에서는 로그를 제공하지 않지만, SNS 서비스를 통과하는 로그 및 이벤트를 처리할 수 있습니다. | 수동 로그 수집 |
RedShift | Amazon Redshift 로그 활성화 | 수동 및 자동 로그 수집 |
인증된 액세스 | 인증된 액세스 로그 활성화 | 수동 로그 수집 |
VPC | Amazon VPC 로그 활성화 | 수동 로그 수집 |
Step 함수 | Amazon Step 함수 로그 활성화 | 수동 로그 수집 |
웹 애플리케이션 방화벽 | Amazon WAF 로그 활성화 | 수동 및 자동 로그 수집 |
MWAA | Amazon MWAA 로그 활성화 | 수동 로그 수집 |
Datadog 포워더(Forwarder) 람다 함수에서 트리거를 설정하는 두 가지 옵션이 있습니다.
Datadog는 Datadog 포워더(Forwarder) 람다 함수에서 자동으로 트리거되도록 설정되어 다음 소스와 위치에서 AWS 로그를 수집할 수 있습니다.
소스 | 위치 |
---|---|
API 게이트웨이 액세스 로그 | 클라우드와치(CloudWatch) |
API Gateway 실행 로그 | 클라우드와치(CloudWatch) |
애플리케이션 ELB 액세스 로그 | S3 |
클래식 ELB 액세스 로그 | S3 |
CloudFront 액세스 로그 | S3 |
람다 로그 | 클라우드와치(CloudWatch) |
Redshift 로그 | S3 |
S3 액세스 로그 | S3 |
Step Functions | 클라우드와치(CloudWatch) |
웹 애플리케이션 방화벽 | S3, 클라우드와치(CloudWatch) |
참고: 구독 필터는 DatadogForwarder에 의해 자동으로 생성되지 않습니다. 로그 그룹에서 직접 생성하세요.
아직 설정하지 않았다면 Datadog 로그 컬렉션 AWS 람다 함수를 설정하세요.
Datadog-AWS 통합에 사용되는 IAM 역할의 정책에 다음 권한이 있는지 확인합니다. 이러한 권한이 어떻게 사용되는지에 대한 정보는 아래 설명에서 확인할 수 있습니다.
"cloudfront:GetDistributionConfig",
"cloudfront:ListDistributions",
"elasticloadbalancing:DescribeLoadBalancers",
"elasticloadbalancing:DescribeLoadBalancerAttributes",
"lambda:List*",
"lambda:GetPolicy",
"redshift:DescribeClusters",
"redshift:DescribeLoggingStatus",
"s3:GetBucketLogging",
"s3:GetBucketLocation",
"s3:GetBucketNotification",
"s3:ListAllMyBuckets",
"s3:PutBucketNotification",
"states:ListStateMachines",
"states:DescribeStateMachine",
"wafv2:ListLoggingConfigurations",
"logs:PutSubscriptionFilter",
"logs:DeleteSubscriptionFilter",
"logs:DescribeSubscriptionFilters"
AWS 권한 | 설명 |
---|---|
cloudfront:GetDistributionConfig | CloudFront 액세스 로그가 포함된 S3 버킷 이름을 가져옵니다. |
cloudfront:ListDistributions | 모든 CloudFront 분포를 목록화합니다. |
elasticloadbalancing: DescribeLoadBalancers | 모든 로드 밸런서를 목록화합니다. |
elasticloadbalancing: DescribeLoadBalancerAttributes | ELB 액세스가 포함된 S3 버킷의 이름 가져오기 로그. |
lambda:List* | 모든 람다 함수를 목록화합니다. |
lambda:GetPolicy | 트리거가 제거될 때 람다 정책을 가져옵니다. |
redshift:DescribeClusters | Redshift 클러스터를 모두 목록화합니다. |
redshift:DescribeLoggingStatus | Redshift가 포함된 S3 버킷 이름을 가져옵니다. |
s3:GetBucketLogging | S3 액세스 로그가 포함된 S3 버킷의 이름을 가져옵니다. |
s3:GetBucketLocation | S3 액세스 로그가 포함된 S3 버킷 지역을 가져옵니다. |
s3:GetBucketNotification | 기존 람다 트리거 설정을 가져옵니다. |
List all S3 buckets. | |
s3:PutBucketNotification | S3 버킷 이벤트 기반 람다 트리거를 추가하거나 제거합니다. |
states:ListStateMachines | 모든 Step 함수를 목록화합니다. |
states:DescribeStateMachine | Step 함수에 대한 로깅 상세 정보를 가져옵니다. |
wafv2:ListLoggingConfigurations | 웹 애플리케이션 방화벽의 모든 로깅 설정을 목록화합니다. |
logs:PutSubscriptionFilter | 클라우드와치(CloudWatch) 로그 이벤트 기반으로 람다 트리거를 추가합니다. |
logs:DeleteSubscriptionFilter | 클라우드와치(CloudWatch) 로그를 남기다 이벤트 에 기반하여 람다 트리거를 제거합니다. |
logs:DescribeSubscriptionFilters | 지정된 로그 그룹에 대한 구독 필터를 목록화합니다 |
AWS 통합 페이지에서 AWS 계정을 선택해 로그를 수집할 AWS 계정을 선택하고 로그 수집 탭을 클릭합니다.
이전 섹션에서 생성한 람다의 ARN을 입력하고 추가를 클릭합니다.
로그를 수집하려는 서비스를 선택하고 저장을 클릭합니다. 특정 서비스에서 로그 수집을 중지하려면 로그를 선택 해제합니다.
여러 지역의 로그를 보유하고 있는 경우 해당 지역에 람다 함수를 추가로 생성하여 이 페이지에 입력해야 합니다.
모든 AWS 로그 수집을 중지하려면 람다 위로 마우스를 가져간 다음 삭제 아이콘을 클릭합니다. 해당 함수에 대한 모든 트리거가 제거됩니다.
이 초기 설정 후 몇 분 내에 Datadog 로그 탐색기에 AWS 로그가 나타납니다.
클라우드와치(CloudWatch) 그룹에서 로그를 수집하는 경우 다음 방법 중 하나를 사용하여 Datadog 포워더(Forwarder) 람다 함수 트리거를 설정합니다.
Terraform 사용자의 경우, 트리거를 프로비저닝하고 관리하기 위해 aws_cloudwatch_log_subscription_filter 리소스를 사용할 수 있습니다. 아래 샘플 코드를 참조하세요.
resource "aws_cloudwatch_log_subscription_filter" "datadog_log_subscription_filter" {
name = "datadog_log_subscription_filter"
log_group_name = <CLOUDWATCH_LOG_GROUP_NAME> # 예: /aws/lambda/my_lambda_name
destination_arn = <DATADOG_FORWARDER_ARN> # 예: arn:aws:lambda:us-east-1:123:function:datadog-forwarder
filter_pattern = ""
}
AWS CloudFormation 사용자의 경우, CloudFormation AWS::Logs::SubscriptionFilter 리소스를 사용하여 트리거를 프로비저닝하고 관리할 수 있습니다. 아래 샘플 코드를 참조하세요.
샘플 코드는 AWS SAM 및 서버리스 프레임워크에서도 작동합니다. 서버리스 프레임워크의 경우 serverless.yml
의 리소스 섹션 아래에 코드를 넣으세요.
Resources:
MyLogSubscriptionFilter:
Type: "AWS::Logs::SubscriptionFilter"
Properties:
DestinationArn: "<DATADOG_FORWARDER_ARN>"
LogGroupName: "<CLOUDWATCH_LOG_GROUP_NAME>"
FilterPattern: ""
S3 버킷에서 로그를 수집하는 경우, 다음 방법 중 하나를 사용하여 Datadog 포워더(Forwarder) 람다 함수 트리거를 설정합니다.
람다 함수가 설치되면 AWS 콘솔에서 로그가 포함된 S3 버킷에 트리거를 수동으로 추가합니다.
버킷을 선택한 다음 AWS 안내를 따릅니다.
S3 버킷에 올바른 이벤트 유형을 설정합니다.
완료되면 Datadog 로그 섹션으로 이동하여 로그 탐색을 시작합니다.
Terraform 사용자의 경우, aws_s3_bucket_notification 리소스를 사용하여 트리거를 프로비저닝하고 관리할 수 있습니다. 아래 샘플 코드를 참조하세요.
resource "aws_s3_bucket_notification" "my_bucket_notification" {
bucket = my_bucket
lambda_function {
lambda_function_arn = "<DATADOG_FORWARDER_ARN>"
events = ["s3:ObjectCreated:*"]
filter_prefix = "AWSLogs/"
filter_suffix = ".log"
}
}
CloudFormation 사용자의 경우, S3 버킷에 대해 CloudFormation NotificationConfiguration을 사용하여 트리거를 설정할 수 있습니다. 아래 샘플 코드를 참조하세요.
Resources:
Bucket:
Type: AWS::S3::Bucket
Properties:
BucketName: "<MY_BUCKET>"
NotificationConfiguration:
LambdaConfigurations:
- Event: 's3:ObjectCreated:*'
Function: "<DATADOG_FORWARDER_ARN>"
람다 함 에서 보낸 이메일 또는 IP 주소(로그)를 스크러빙하거나 람다 파라미터에서 커스텀 스크러빙 규칙을 정의할 수 있습니다. 필터링 옵션을 사용하여 특정 패턴과 일치하는 로그만 제외하거나 보낼 수도 있습니다.
추가 유용한 문서, 링크 및 기사: