- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
",t};e.buildCustomizationMenuUi=t;function n(e){let t='
",t}function s(e){let n=e.filter.currentValue||e.filter.defaultValue,t='${e.filter.label}
`,e.filter.options.forEach(s=>{let o=s.id===n;t+=``}),t+="${e.filter.label}
`,t+=`AWS 환경에서 계정 수준 로그 구독을 사용하면 모든 CloudWatch 로그를 Datadog에 자동으로 전달할 수 있습니다. 따라서 계정 수준 로그 구독을 사용해 새 로그 소스 또는 AWS에서 새 서비스를 출시할 때 로그 전달을 수동으로 구성할 필요가 없습니다. 또 자체 선택 기준이나 필터 패턴을 정의해 전달할 로그를 더욱 세밀하게 제어할 수 있습니다.
계정 수준의 로그 구독을 생성하는 방법에는 CloudFormation과 수동 설정을 통한 두 가지 방법이 있습니다. 가장 간단하게 설정하는 방법은 CloudFormation을 사용하여 선택한 각 지역에서 Amazon Data Firehose 및 관련 리소스를 생성하는 것입니다.
https://datadog-cloudformation-template.s3.amazonaws.com/aws_account_level_logs/main.yaml
With new resources (standard)
를 선택합니다.datadog-account-level-logs-stack
과 같은 설명이 포함된 이름을 입력합니다.us-east-1
)을 입력하여 계정 수준 로그 구독에 포함할 지역을 입력합니다.I acknowledge that AWS CloudFormation might create IAM resources with custom names
확인란을 클릭합니다.<REGION>
을 Datadog Forwarder Lambda 함수가 포함된 지역으로 바꿉니다.<ACCOUNT_ID>
를 12자리 AWS 계정 ID(대시 제외)로 바꿉니다.aws lambda add-permission \
--region "<REGION>" \
--function-name "forwarder-function" \
--statement-id "forwarder-function" \
--principal "logs.amazonaws.com" \
--action "lambda:InvokeFunction" \
--source-arn "arn:aws:logs:<REGION>:<ACCOUNT_ID>:log-group:*" \
--source-account "<ACCOUNT_ID>"
ERROR
문자열이 포함된 모든 로그 이벤트가 스트리밍되지만 로그 그룹에 있는 LogGroupToExclude1
및 LogGroupToExclude2
이벤트는 제외됩니다.FORWARDER_ARN
을 Datadog Forwarder Lambda 함수의 ARN으로 바꿉니다.aws logs put-account-policy \
--policy-name "ExamplePolicyLambda" \
--policy-type "SUBSCRIPTION_FILTER_POLICY" \
--policy-document '{"DestinationArn":"<FORWARDER_ARN>", "FilterPattern": "", "Distribution": "Random"}' \
--scope "ALL"
참고: 특정 로그 그룹을 로그 전달에서 제외하려면 명령 참조에 설명된 대로 --selection-criteria
옵션을 사용하세요.
다음 단계에서는 버킷 및 IAM 역할을 만드는 방법을 안내합니다. 이 역할은 Amazon Data Firehose에 전송 실패 시 Amazon S3 버킷에 데이터를 넣을 수 있는 권한을 부여합니다.
<BUCKET_NAME>
을 S3 버킷의 이름으로 바꿉니다.<REGION>
을 S3 버킷의 리전으로 바꿉니다.aws s3api create-bucket \
--bucket MY-BUCKET \
--create-bucket-configuration LocationConstraint=<REGION>
TrustPolicyForFirehose.json
파일을 생성합니다.{
"Statement": {
"Effect": "Allow",
"Principal": { "Service": "firehose.amazonaws.com" },
"Action": "sts:AssumeRole"
}
}
aws iam create-role \
--role-name FirehosetoS3Role \
--assume-role-policy-document file://./TrustPolicyForFirehose.json
PermissionsForFirehose.json
파일을 생성합니다.<BUCKET_NAME>
을 S3 버킷의 이름으로 바꿉니다.{
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:AbortMultipartUpload",
"s3:GetBucketLocation",
"s3:GetObject",
"s3:ListBucket",
"s3:ListBucketMultipartUploads",
"s3:PutObject" ],
"Resource": [
"arn:aws:s3:::<BUCKET_NAME>",
"arn:aws:s3:::<BUCKET_NAME>/*" ]
}
]
}
aws iam put-role-policy \
--role-name FirehosetoS3Role \
--policy-name Permissions-Policy-For-Firehose \
--policy-document file://./PermissionsForFirehose.json
다음 단계에서는 Amazon Data Firehose 전송 스트림을 생성하고 구성하는 방법을 안내합니다.
Amazon Kinesis Data Streams
를 선택합니다.Direct PUT
을 선택합니다.Datadog
를 선택합니다.Amazon Kinesis Data Streams
인 경우 *Source settings**에서 Kinesis 데이터 스트림을 선택합니다.GZIP
을 선택합니다.2
MiB로 설정할 것을 권장합니다.다음 단계에서는 CloudWatch 로그에 대한 IAM 역할을 만드는 방법을 안내합니다. 이 역할은 CloudWatch 로그에 Firehose 전송 스트림에 데이터를 넣을 수 있는 권한을 부여합니다.
./TrustPolicyForCWL.json
파일을 생성합니다.<ACCOUNT_ID>
을 12자리 AWS 계정 ID(대시 제외)로 바꿉니다.<REGION>
을 CloudWatch 로그의 지역으로 바꿉니다.{
"Statement": {
"Effect": "Allow",
"Principal": { "Service": "logs.amazonaws.com" },
"Action": "sts:AssumeRole",
"Condition": {
"StringLike": {
"aws:SourceArn": "arn:aws:logs:<REGION>:<ACCOUNT_ID>:*"
}
}
}
}
aws iam create-role \
--role-name CWLtoKinesisFirehoseRole \
--assume-role-policy-document file://./TrustPolicyForCWL.json
참고: 반환된 Role.Arn 값은 이후 단계에서 사용됩니다.
./PermissionsForCWL.json
파일을 생성합니다.<REGION>
을 Datadog 포워더 람다 함수가 포함된 지역으로 바꿉니다.<ACCOUNT_ID>
를 12자리 AWS 계정 ID(대시 제외)로 바꿉니다.<DELIVERY_STREAM_NAME>
을 전송 스트림의 이름으로 바꿉니다.{
"Statement":[
{
"Effect":"Allow",
"Action":["firehose:PutRecord"],
"Resource":[
"arn:aws:firehose:<REGION>:<ACCOUNT_ID>:deliverystream/<DELIVERY_STREAM_NAME>"]
}
]
}
aws iam put-role-policy \
--role-name CWLtoKinesisFirehoseRole \
--policy-name Permissions-Policy-For-CWL \
--policy-document file://./PermissionsForCWL.json
이 단계를 완료하기 전에 Amazon Data Firehose 전송 스트림이 Active
상태여야 합니다.
<POLICY_NAME>
을 구독 필터 정책의 이름으로 바꿉니다.<CLOUDWATCH_LOGS_ROLE>
를 CloudWatch 로그 역할의 ARN으로 바꿉니다.<DELIVERY_STREAM_ARN>
을 Amazon Data Firehose 전송 스트림의 ARN으로 바꿉니다.aws logs put-account-policy \
--policy-name "<POLICY_NAME>" \
--policy-type "SUBSCRIPTION_FILTER_POLICY" \
--policy-document '{"RoleArn":"<CLOUDWATCH_LOGS_ROLE>", "DestinationArn":"<DELIVERY_STREAM_ARN>", "FilterPattern": "", "Distribution": "Random"}' \
--scope "ALL"
참고: 특정 로그 그룹을 로그 전달에서 제외하려면 명령 참조에 설명된 대로 --selection-criteria
옵션을 사용하세요.
Log Explorer로 이동하여 검색 쿼리 @aws.firehose.arn:"<FIREHOSE_ARN>"
을 입력하면 Amazon Data Firehose에서 전달한 로그를 볼 수 있습니다.
<FIREHOSE_ARN>
을 로그 스트리밍 Firehose의 ARN으로 바꿉니다.추가 유용한 문서, 링크 및 기사: