- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Supported OS
ECS Fargate에서 실행 중인 모든 컨테이너에서 메트릭를 받으세요:
Datadog 에이전트는 ECS 작업 메타데이터 엔드포인트를 사용하여 작업 정의의 컨테이너에 대해 메트릭을 검색합니다. 해당 엔드포인트에 대한 ECS 설명서에 따르면 다음과 같습니다:
작업 메타데이터 엔드포인트는 작업 정의 자체 내에서만 사용할 수 있으므로 모니터링할 각 작업 정의 내에서 Datadog 에이전트 을 추가로 컨테이너 실행해야 합니다.
이 메트릭 컬렉션을 사용하려면 작업 정의에서 환경 변수 ECS_FARGATE
를 "true"
로 설정하기만 하면 됩니다.
참고: 네트워크 성능 모니터링(NPM)은 ECS Fargate에서 지원되지 않습니다.
다음 단계에서는 AWS ECS Fargate 내에서 Datadog 컨테이너 에이전트 설정에 대해 설명합니다. 참고: Fargate 통합을 최대한 활용하려면 Datadog 에이전트 버전 6.1.1 이상이 필요합니다.
Datadog 에이전트가 없는 작업은 여전히 CloudWatch로 메트릭을 보고하지만, 자동탐지, 상세 컨테이너 메트릭 , 추적 등을 위해서는 에이전트를 필요로 합니다. 또한 CloudWatch 메트릭 은 Datadog 에이전트를 통해 직접 전송되는 메트릭보다 덜 세분화되어 있으며 보고 지연 시간이 더 길어집니다.
Datadog로 ECS Fargate 작업을 모니터링하려면 애플리케이션과 동일한 작업 정의에서 에이전트를 컨테이너로 실행합니다. Datadog로 메트릭을 수집하려면 각 작업 정의에 애플리케이션 컨테이너 외에 Datadog 에이전트 컨테이너가 포함되어야 합니다. 다음 설정 단계를 따르세요.
Fargate의 기본 작업 단위는 작업 정의에서 설정되는 작업입니다. 작업 정의는 쿠버네티스(Kubernetes)의 파드에 비유할 수 있습니다. 작업 정의에는 하나 이상의 컨테이너가 포함되어야 합니다. Datadog 에이전트를 실행하려면, 애플리케이션 컨테이너와 Datadog 에이전트 컨테이너를 실행하기 위한 작업 정의를 생성해야 합니다.
아래 지침은 Amazon Web Console, AWS CLI 도구 또는 AWS CloudFormation을 사용하여 작업을 설정하는 방법을 보여줍니다.
my-app-and-datadog
와 같은 작업 정의 이름을 입력합니다.datadog-agent
를 입력합니다.public.ecr.aws/datadog/agent:latest
를 입력합니다.DD_API_KEY
를 추가하고 Datadog API 키를 값으로 입력합니다.ECS_FARGATE
및 true
값을 사용하여 환경 변수를 추가합니다. 추가를 클릭하여 컨테이너를 추가합니다.DD_SITE
및
값을 사용하여 환경 변수를 추가합니다. 설정하지 않으면 기본값은 datadoghq.com
입니다.C:\
를 작업 디렉터리로 선택합니다.TASK_NAME
, Datadog API 키 및 적절한 DD_SITE
(
)를 사용하여 JSON을 업데이트합니다. 참고: 환경 변수 ECS_FARGATE
는 이미 "true"
로 설정되어 있습니다.다른 애플리케이션 컨테이너를 작업 정의에 추가합니다. 통합 메트릭 수집에 대한 자세한 내용은 통합 ECS Fargate 설정을 참조하세요.
선택 사항 - 에이전트 상태 점검을 추가합니다.
ECS 작업 정의에 다음을 추가하여 에이전트 상태 점검을 생성하세요.
"healthCheck": {
"retries": 3,
"command": ["CMD-SHELL","agent health"],
"timeout": 5,
"interval": 30,
"startPeriod": 15
}
다음 명령을 실행하여 ECS 작업 정의를 등록합니다:
aws ecs register-task-definition --cli-input-json file://<PATH_TO_FILE>/datadog-agent-ecs-fargate.json
AWS CloudFormation 템플릿을 사용하여 Fargate 컨테이너를 설정할 수 있습니다. CloudFormation 템플릿 내의 AWS::ECS::TaskDefinition
리소스를 사용하여 Amazon ECS 작업을 설정하고 해당 작업에 필요한 실행 유형으로 FARGATE
를 지정하세요.
Datadog API 키]41를 사용하여 아래의 CloudFormation 템플릿을 업데이트합니다. 설정하지 않으면 기본값은 datadoghq.com
이므로 필요한 경우 적절한 DD_SITE
() 환경 변수를 포함하세요.
Resources:
ECSTaskDefinition:
Type: 'AWS::ECS::TaskDefinition'
Properties:
NetworkMode: awsvpc
RequiresCompatibilities:
- FARGATE
Cpu: 256
Memory: 512
ContainerDefinitions:
- Name: datadog-agent
Image: 'public.ecr.aws/datadog/agent:latest'
Environment:
- Name: DD_API_KEY
Value: <DATADOG_API_KEY>
- Name: ECS_FARGATE
Value: true
마지막으로, ContainerDefinitions
내에 다른 애플리케이션 컨테이너를 포함하고 CloudFormation을 통해 배포합니다.
CloudFormation 템플릿 및 구문에 대한 자세한 내용은 AWS CloudFormation 작업 정의 설명서를 참조하세요.
ECS Fargate의 유일한 옵션은 복제본 서비스으로 작업을 실행하는 것입니다. Datadog 에이전트는 애플리케이션 및 통합 컨테이너와 동일한 작업 정의에서 실행됩니다.
1
을 입력한 후 다음 단계 버튼을 클릭합니다.AWS CLI 도구]1를 사용하여 다음 명령을 실행합니다.
참고: Fargate 버전 1.1.0 이상이 필요하므로 아래 명령은 플랫폼 버전을 지정합니다.
필요한 경우 클러스터 을 생성합니다:
aws ecs create-cluster --cluster-name "<CLUSTER_NAME>"
클러스터 에 대해 서비스 로 작업을 실행합니다:
aws ecs run-task --cluster <CLUSTER_NAME> \
--network-configuration "awsvpcConfiguration={subnets=["<PRIVATE_SUBNET>"],securityGroups=["<SECURITY_GROUP>"]}" \
--task-definition arn:aws:ecs:us-east-1:<AWS_ACCOUNT_NUMBER>:task-definition/<TASK_NAME>:1 \
--region <AWS_REGION> --launch-type FARGATE --platform-version 1.4.0
CloudFormation 템플릿에서 이전 예제에서 생성한 ECSTaskDefinition
리소스를 생성 중인 AWS::ECS::Service
리소스로 참조할 수 있습니다. 그런 다음 Cluster
, DesiredCount
, 그리고 애플리케이션에 필요한 기타 파라미터를 복제본 서비스에 지정합니다.
Resources:
ECSTaskDefinition:
#(...)
ECSService:
Type: 'AWS::ECS::Service'
Properties:
Cluster: <CLUSTER_NAME>
TaskDefinition:
Ref: "ECSTaskDefinition"
DesiredCount: 1
#(...)
CloudFormation 템플릿 및 구문에 대한 자세한 내용은 AWS CloudFormation ECS 서비스 설명서를 참조하세요.
Datadog API 키를 비밀로 제공하려면 비밀 사용을 참조하세요.
Datadog를 사용해 AWS 배치 작업을 모니터링하려면 ECS Fargate 포함 AWS 배치 및 Datadog 에이전트를 참조하세요.
Datadog IAM 정책에 다음 권한을 추가하여 ECS Fargate 메트릭을 수집합니다. 자세한 내용은 AWS 웹사이트의 ECS 정책을 참조하세요.
AWS 권한 | 설명 |
---|---|
ecs:ListClusters | 사용 가능한 클러스터를 목록화합니다. |
ecs:ListContainerInstances | 클러스터 인스턴스 목록 |
ecs:DescribeContainerInstances | 리소스 및 실행 중인 작업에 메트릭 추가할 인스턴스를 설명합니다. |
DD_API_KEY
환경 변수를 일반 텍스트로 API 키로 채우는 대신 AWS 비밀 관리자에 저장된 일반 텍스트 비밀의 ARN을 참조할 수 있습니다. 작업 또는 작업 정의 파일의 containerDefinitions.secrets
섹션 아래에 DD_API_KEY
환경 변수를 배치합니다. 작업/작업 실행 역할에 AWS 비밀번호 관리자에서 비밀번호를 가져오는 데 필요한 권한이 있는지 확인하세요.
위에서 설명한 대로 Datadog 에이전트를 설정한 후, ecs_fargate 점검은 자동탐지를 활성화하여 메트릭을 수집합니다. 동일한 작업에서 다른 컨테이너에 도커(Docker) 레이블을 추가하여 메트릭을 추가로 수집합니다.
통합은 리눅스(Linux) 및 윈도우즈(Windows) 에서 작동하지만 일부 메트릭은 OS에 따라 다릅니다. 윈도우즈(Windows) 에서 실행될 때 노출되는 모든 메트릭은 리눅스에서도 노출되지만 일부 메트릭은 리눅스에서만 사용할 수 있습니다. 이 통합에서 제공하는 메트릭의 목록에 대해서는 수집된 데이터를 참조하세요. 목록에는 어떤 메트릭이 리눅스 전용인지도 명시되어 있습니다.
통합 메트릭 수집에 대한 자세한 내용은 통합 ECS Fargate 설정을 참조하세요.
메트릭은 UDP 포트 8125를 통해 DogStatsD로 수집됩니다.
도커(Docker) 에이전트 컨테이너에서 사용할 수 있는 환경 변수는 도커(Docker) 에이전트 페이지를 참조하세요. 참고: 일부 변수는 Fargate에서 사용할 수 없습니다.
환경 변수 | 설명 |
---|---|
DD_DOCKER_LABELS_AS_TAGS | 도커(Docker) 컨테이너 레이블 추출 |
DD_CHECKS_TAG_CARDINALITY | 메트릭 확인을 위한 태그 추가 |
DD_DOGSTATSD_TAG_CARDINALITY | 커스텀 메트릭에 태그 추가 |
글로벌 태깅의 경우 DD_DOCKER_LABELS_AS_TAGS
을 사용하는 것은 권장 사항입니다. 이 방법을 사용하면 에이전트는 컨테이너 레이블에서 태그를 가져옵니다. 이를 위해서는 다른 컨테이너에 적절한 레이블을 추가해야 합니다. 레이블은 작업 정의에서 직접 추가할 수 있습니다.
에이전트 컨테이너 형식:
{
"name": "DD_DOCKER_LABELS_AS_TAGS",
"value": "{\"<LABEL_NAME_TO_COLLECT>\":\"<TAG_KEY_FOR_DATADOG>\"}"
}
에이전트 컨테이너 예시:
{
"name": "DD_DOCKER_LABELS_AS_TAGS",
"value": "{\"com.docker.compose.service\":\"service_name\"}"
}
CloudFormation 예제(YAML):
ContainerDefinitions:
- #(...)
Environment:
- Name: DD_DOCKER_LABELS_AS_TAGS
Value: "{\"com.docker.compose.service\":\"service_name\"}"
참고: Fargate에서는 사용자에게 대한 호스트라는 개념이 없으므로 DD_HOSTNAME
을 사용해서는 안 됩니다. 태그를 사용하면 인프라스트럭처 목록에서 작업이 애플리케이션 성능 모니터링(APM) 호스트로 표시되어 빌링에 영향을 줄 수 있습니다. 대신 DD_TAGS
를 사용하여 호스트 태그를 할당합니다. Datadog 에이전트 버전 6.13.0부터 DD_TAGS
환경 변수를 사용하여 통합 메트릭에서 글로벌 태그를 설정할 수도 있습니다.
Datadog 에이전트에서 수집하는 메트릭 외에도 Datadog에는 CloudWatch 기반 ECS 통합이 있습니다. 이 통합은 Amazon ECS CloudWatch 메트릭을 수집합니다.
앞서 언급했듯이 Fargate 작업도 이러한 방식으로 메트릭을 보고합니다.
사용 가능한 메트릭 은 작업의 시작 유형과 클러스터 또는 배치 작업의 서비스에 따라 달라집니다. 서비스에 Fargate 시작 유형을 사용하는 경우 모니터링 CPU 및 메모리 사용량 메트릭이 제공되어 서비스를 지원합니다.
이 방법은 Datadog 에이전트를 사용하지 않으므로 통합 타일에서 ECS를 확인하여 AWS 통합을 설정해야 합니다. 그런 다음 Datadog가 CloudWatch 메트릭(Datadog의 네임스페이스 aws.ecs.*
)를 대신 가져옵니다. 이 문서의 수집된 데이터 섹션을 참조하세요.
메트릭만 필요한 경우 CloudWatch 메트릭을 사용하여 통합을 수집할 수 있습니다. 참고: CloudWatch 데이터는 활성화한 모니터링의 유형에 따라 세분성이 떨어지고(1~5분) Datadog로의 보고가 지연됩니다. 이는 CloudWatch의 데이터 수집이 에이전트를 통해 Datadog로 푸시하는 대신 AWS API 한도를 준수해야 하기 때문입니다.
Datadog의 기본 CloudWatch 크롤러가 메트릭을 10분에 한 번씩 폴링합니다. 더 빠른 크롤링 일정이 필요한 경우 Datadog 지원팀에 문의하여 이용 가능 여부를 확인하세요. 참고: AWS 측의 경우 API 통화에 대한 CloudWatch 요금이 청구되므로 비용이 증가합니다.
다음 중 하나를 사용하여 Fargate 로그를 모니터링할 수 있습니다.
awslogs
로그 드라이버를 사용하여 로그를 CloudWatch 로그 그룹에 저장한 다음, 람다 함수를 사용하여 로그를 Datadog에 라우팅합니다.Datadog는 Fargate 작업에서 Fluent Bit를 직접 설정할 수 있으므로 AWS FireLens를 사용할 것을 권장합니다.
참고: Fluent Bit 및 FireLens를 사용한 로그 수집은 ECS Fargate 기반 AWS 배치에서 지원되지 않습니다.
Datadog의 Fluent Bit 출력 플러그인에 빌드된 AWS FireLens 통합을 설정하여 FireLens 모니터링 로그 데이터를 Datadog 로그와 연결하세요. [여기서 이 설정에 대한 샘플 작업 정의]를 찾아볼 수 있습니다.
Fluent Bit FireLens 로그 라우터 컨테이너를 기존 Fargate 작업에 추가합니다. Fargate 활성화에 대한 자세한 내용은 전용 AWS Fargate 설명서를 참조하세요. Fargate 컨테이너 정의에 대한 자세한 내용은 AWS 설명서 컨테이너 정의를 참조하세요. AWS에서는 지역별 도커(Docker) 이미지를 사용할 것을 권장합니다. 다음은 Fluent Bit 이미지가 구성된 작업 정의의 예시입니다:
{
"essential": true,
"image": "amazon/aws-for-fluent-bit:stable",
"name": "log_router",
"firelensConfiguration": {
"type": "fluentbit",
"options": { "enable-ecs-log-metadata": "true" }
}
}
컨테이너에서 stdout를 통한 직렬화된 JSON 로그를 게시하는 경우, 이 추가 FireLens 설정를 사용하여 Datadog 내에서 올바르게 파싱해야 합니다:
{
"essential": true,
"image": "amazon/aws-for-fluent-bit:stable",
"name": "log_router",
"firelensConfiguration": {
"type": "fluentbit",
"options": {
"enable-ecs-log-metadata": "true",
"config-file-type": "file",
"config-file-value": "/fluent-bit/configs/parse-json.conf"
}
}
}
log:
필드의 직렬화된 JSON을 최상위 필드로 변환합니다. 자세한 내용은 AWS 샘플 JSON으로 직렬화된 파싱 컨테이너 stdout 로그를 참조하세요.
다음으로, 동일한 Fargate 작업에서 원하는 컨테이너에 대한 로그 설정을 정의해 로그로 전송합니다. 이 로그 설정에는 AWS FireLens가 로그로 지정되어 데이터를 Fluent Bit로 출력해야 합니다. 다음은 FireLens가 로그 드라이버로 데이터를 Fluent Bit에 출력하는 작업 정의의 예시 스니펫입니다.
{
"logConfiguration": {
"logDriver": "awsfirelens",
"options": {
"Name": "datadog",
"apikey": "<DATADOG_API_KEY>",
"Host": "http-intake.logs.datadoghq.com",
"dd_service": "firelens-test",
"dd_source": "redis",
"dd_message_key": "log",
"dd_tags": "project:fluentbit",
"TLS": "on",
"provider": "ecs"
}
}
}
{
"logConfiguration": {
"logDriver": "awsfirelens",
"options": {
"Name": "datadog",
"apikey": "<DATADOG_API_KEY>",
"Host": "http-intake.logs.us3.datadoghq.com",
"dd_service": "firelens-test",
"dd_source": "redis",
"dd_message_key": "log",
"dd_tags": "project:fluentbit",
"TLS": "on",
"provider": "ecs"
}
}
}
{
"logConfiguration": {
"logDriver": "awsfirelens",
"options": {
"Name": "datadog",
"apikey": "<DATADOG_API_KEY>",
"Host": "http-intake.logs.us5.datadoghq.com",
"dd_service": "firelens-test",
"dd_source": "redis",
"dd_message_key": "log",
"dd_tags": "project:fluentbit",
"TLS": "on",
"provider": "ecs"
}
}
}
{
"logConfiguration": {
"logDriver": "awsfirelens",
"options": {
"Name": "datadog",
"apikey": "<DATADOG_API_KEY>",
"Host": "http-intake.logs.datadoghq.eu",
"dd_service": "firelens-test",
"dd_source": "redis",
"dd_message_key": "log",
"dd_tags": "project:fluentbit",
"TLS": "on",
"provider": "ecs"
}
}
}
{
"logConfiguration": {
"logDriver": "awsfirelens",
"options": {
"Name": "datadog",
"apikey": "<DATADOG_API_KEY>",
"Host": "http-intake.logs.ddog-gov.datadoghq.com",
"dd_service": "firelens-test",
"dd_source": "redis",
"dd_message_key": "log",
"dd_tags": "project:fluentbit",
"TLS": "on",
"provider": "ecs"
}
}
}
참고: apikey
및 Host
을 해당 사이트 http-intake.logs.
와 비교하여 설정하세요. 사용 가능한 파라미터의 전체 목록은 Datadog Fluent Bit 설명서에 설명되어 있습니다.
dd_service
, dd_source
, dd_tags
는 원하는 태그에 맞게 조정할 수 있습니다.
기존 작업 정의 점검에 Fluent Bit 컨테이너를 추가하려면 로그 라우터 통합 아래의 ** FireLens 활성화 통합** 체크박스를 선택하면 log_router
컨테이너가 자동으로 생성됩니다. 이렇게 하면 지역 이미지를 가져오지만, latest
태그 대신 stable
이미지를 사용하는 것이 좋습니다. 적용을 클릭하면 기본 컨테이너가 생성됩니다. firelensConfiguration
을 추가로 커스터마이즈 하단의 JSON을 통한 설정 버튼을 클릭하여 수동으로 편집하세요.
이를 추가한 후 로그에서 제출하려는 작업 정의의 컨테이너 애플리케이션을 수정하고 로그 드라이버를 awsfirelens
로 변경하여 로그 옵션을 위 예시에 표시된 키로 채웁니다.
이전 섹션에서 설명한 대로 애플리케이션에 대한 log_router
컨테이너 및 업데이트된 logConfiguration
컨테이너 을 포함하도록 기존 JSON 작업 정의 파일을 편집합니다. 이 작업이 완료되면 다음 명령을 사용하여 작업 정의의 새 수정본을 만듭니다:
AWS ecs register-task-definition --cli-input-json file://<PATH_TO_FILE>/Datadog-에이전트-ecs-fargate.json
AWS CloudFormation]1 템플릿을 사용하려면 AWS::ECS::TaskDefinition
리소스를 사용하고 Datadog
옵션을 설정하여 로그 관리를 설정하세요.
예를 들어 Fluent Bit를 설정하여 Datadog에 로그를 전송하려면,
Resources:
ECSTaskDefinition:
Type: 'AWS::ECS::TaskDefinition'
Properties:
NetworkMode: awsvpc
RequiresCompatibilities:
- FARGATE
Cpu: 256
Memory: 1GB
ContainerDefinitions:
- Name: tomcat-test
Image: 'tomcat:jdk8-adoptopenjdk-openj9'
LogConfiguration:
LogDriver: awsfirelens
Options:
Name: datadog
apikey: <DATADOG_API_KEY>
Host: http-intake.logs.datadoghq.com
dd_service: test-service
dd_source: test-source
TLS: 'on'
provider: ecs
MemoryReservation: 500
- Name: log_router
Image: 'amazon/aws-for-fluent-bit:stable'
Essential: true
FirelensConfiguration:
Type: fluentbit
Options:
enable-ecs-log-metadata: true
MemoryReservation: 50
Resources:
ECSTaskDefinition:
Type: 'AWS::ECS::TaskDefinition'
Properties:
NetworkMode: awsvpc
RequiresCompatibilities:
- FARGATE
Cpu: 256
Memory: 1GB
ContainerDefinitions:
- Name: tomcat-test
Image: 'tomcat:jdk8-adoptopenjdk-openj9'
LogConfiguration:
LogDriver: awsfirelens
Options:
Name: datadog
apikey: <DATADOG_API_KEY>
Host: http-intake.logs.us3.datadoghq.com
dd_service: test-service
dd_source: test-source
TLS: 'on'
provider: ecs
MemoryReservation: 500
- Name: log_router
Image: 'amazon/aws-for-fluent-bit:stable'
Essential: true
FirelensConfiguration:
Type: fluentbit
Options:
enable-ecs-log-metadata: true
MemoryReservation: 50
Resources:
ECSTaskDefinition:
Type: 'AWS::ECS::TaskDefinition'
Properties:
NetworkMode: awsvpc
RequiresCompatibilities:
- FARGATE
Cpu: 256
Memory: 1GB
ContainerDefinitions:
- Name: tomcat-test
Image: 'tomcat:jdk8-adoptopenjdk-openj9'
LogConfiguration:
LogDriver: awsfirelens
Options:
Name: datadog
apikey: <DATADOG_API_KEY>
Host: http-intake.logs.us5.datadoghq.com
dd_service: test-service
dd_source: test-source
TLS: 'on'
provider: ecs
MemoryReservation: 500
- Name: log_router
Image: 'amazon/aws-for-fluent-bit:stable'
Essential: true
FirelensConfiguration:
Type: fluentbit
Options:
enable-ecs-log-metadata: true
MemoryReservation: 50
Resources:
ECSTaskDefinition:
Type: 'AWS::ECS::TaskDefinition'
Properties:
NetworkMode: awsvpc
RequiresCompatibilities:
- FARGATE
Cpu: 256
Memory: 1GB
ContainerDefinitions:
- Name: tomcat-test
Image: 'tomcat:jdk8-adoptopenjdk-openj9'
LogConfiguration:
LogDriver: awsfirelens
Options:
Name: datadog
apikey: <DATADOG_API_KEY>
Host: http-intake.logs.datadoghq.eu
dd_service: test-service
dd_source: test-source
TLS: 'on'
provider: ecs
MemoryReservation: 500
- Name: log_router
Image: 'amazon/aws-for-fluent-bit:stable'
Essential: true
FirelensConfiguration:
Type: fluentbit
Options:
enable-ecs-log-metadata: true
MemoryReservation: 50
Resources:
ECSTaskDefinition:
Type: 'AWS::ECS::TaskDefinition'
Properties:
NetworkMode: awsvpc
RequiresCompatibilities:
- FARGATE
Cpu: 256
Memory: 1GB
ContainerDefinitions:
- Name: tomcat-test
Image: 'tomcat:jdk8-adoptopenjdk-openj9'
LogConfiguration:
LogDriver: awsfirelens
Options:
Name: datadog
apikey: <DATADOG_API_KEY>
Host: http-intake.logs.ddog-gov.datadoghq.com
dd_service: test-service
dd_source: test-source
TLS: 'on'
provider: ecs
MemoryReservation: 500
- Name: log_router
Image: 'amazon/aws-for-fluent-bit:stable'
Essential: true
FirelensConfiguration:
Type: fluentbit
Options:
enable-ecs-log-metadata: true
MemoryReservation: 50
CloudFormation 서식 지정 및 구문에 대한 자세한 내용은 AWS CloudFormation 설명서를 참조하세요.
참고: 작업 정의 비밀을 사용하여 apikey
가 일반 텍스트로 노출되지 않도록 하세요.
awslogs
로그 드라이버 및 람다 함수를 사용하여 Fargate 로그를 모니터링하고 로그를 Datadog에 라우팅하세요.
로그를 수집하려는 작업 또는 작업의 애플리케이션 컨테이너에서 로그 드라이버를 awslogs
로 정의합니다. AWS Fargat 개발자 가이드를 참조하세요.
이렇게 하면 Fargate 작업을 구성하여 로그 정보를 Amazon CloudWatch 로그로 보내도록 설정합니다. 다음은 작업 정의의 스니펫에서 awslogs 로그 드라이버가 설정된 작업/작업 정의의 스니펫을 표시합니다.
{
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/fargate-task|job-definition",
"awslogs-region": "us-east-1",
"awslogs-stream-prefix": "ecs"
}
}
}
awslogs
로그 드라이버를 작업 또는 작업 정의에 추가하여 컨테이너 로그를 CloudWatch 로그로 보내는 자세한 방법은 awslogs 로그 드라이버 사용을 참조합니다. 이 드라이버는 컨테이너에서 생성된 로그를 수집하여 CloudWatch로 직접 전송합니다.
마지막으로 Datadog 람다 로그 포워더(Forwarder) 함수를 사용하여 CloudWatch에서 로그를 수집하여 Datadog로 전송합니다.
DD_APM_ENABLED
를 true
로 설정합니다. DD_SITE
변수를
로 설정합니다. 설정하지 않으면 기본값은 datadoghq.com
입니다.설정을 기반으로 애플리케이션 계측:
참고: Fargate 애플리케이션 성능 모니터링(APM) 애플리케이션의 경우, DD_AGENT_HOST
를 설정하지 마세요. 기본값인 localhost
이 작동합니다.
언어 |
---|
자바(Java)]31 |
파이썬(Python) |
루비(Ruby) |
고(Go) |
Node.js |
PHP |
C++ |
.NET Core |
.NET Framework |
Datadog에 트레이스 전송에 대한 자세한 일반 정보를 참조하세요.
애플리케이션이 Datadog 에이전트 컨테이너와 동일한 작업 또는 작업 정의에서 실행되고 있는지 확인합니다.
Datadog 에서 ECS Fargate 프로세스를 모니터링할 수 있습니다. [실시간 페이지 처리41를 사용하세요. 프로세스 수집을 활성화하려면 작업 정의에 PidMode
파라미터 를 추가하고 다음과 같이 task
로 설정합니다:
"pidMode": "task"
ECS를 기준으로 프로세스 필터링하려면 AWS Fargate
컨테이너 패싯을 사용하거나 검색 쿼리 페이지에 fargate:ecs
을 입력하세요. 실시간 프로세스 페이지에 입력합니다.
에이전트는 전체 작업 또는 이 작업 내의 컨테이너에서 전송되는 모든 데이터를 자동 검색하여 태그를 첨부할 수 있습니다. 태그 목록이 자동으로 첨부되는 것은 에이전트의 카디널리티 설정에 따라 달라집니다.
태그 | 카디널리티 | 소스 |
---|---|---|
container_name | 높음 | ECS API |
container_id | 높음 | ECS API |
docker_image | 낮음 | ECS API |
image_name | 낮음 | ECS API |
short_image | 낮음 | ECS API |
image_tag | 낮음 | ECS API |
ecs_cluster_name | 낮음 | ECS API |
ecs_container_name | 낮음 | ECS API |
task_arn | 오케스트레이터 | ECS API |
task_family | 낮음 | ECS API |
task_name | 낮음 | ECS API |
task_version | 낮음 | ECS API |
availability-zone | 낮음 | ECS API |
region | 낮음 | ECS API |
ecs.fargate.cpu.limit (gauge) | Soft limit (CPU Shares) in CPU Units. |
ecs.fargate.cpu.percent (gauge) | Percentage of CPU used per container (Linux only). Shown as percent |
ecs.fargate.cpu.system (gauge) | System CPU time. Shown as nanocore |
ecs.fargate.cpu.task.limit (gauge) | Task CPU Limit (shared by all containers). Shown as nanocore |
ecs.fargate.cpu.usage (gauge) | Total CPU Usage. Shown as nanocore |
ecs.fargate.cpu.user (gauge) | User CPU time. Shown as nanocore |
ecs.fargate.ephemeral_storage.reserved (gauge) | The reserved ephemeral storage of this task. (Fargate 1.4.0+ required). Shown as mebibyte |
ecs.fargate.ephemeral_storage.utilized (gauge) | The current ephemeral storage usage of this task. (Fargate 1.4.0+ required). Shown as mebibyte |
ecs.fargate.io.bytes.read (gauge) | Number of bytes read on the disk. Shown as byte |
ecs.fargate.io.bytes.write (gauge) | Number of bytes written to the disk. Shown as byte |
ecs.fargate.io.ops.read (gauge) | Number of read operation on the disk. |
ecs.fargate.io.ops.write (gauge) | Number of write operations to the disk. |
ecs.fargate.mem.active_anon (gauge) | Number of bytes of anonymous and swap cache memory on active LRU list (Linux only). Shown as byte |
ecs.fargate.mem.active_file (gauge) | Number of bytes of file-backed memory on active LRU list (Linux only). Shown as byte |
ecs.fargate.mem.cache (gauge) | Number of bytes of page cache memory (Linux only). Shown as byte |
ecs.fargate.mem.hierarchical_memory_limit (gauge) | Number of bytes of memory limit with regard to hierarchy under which the memory cgroup is (Linux only). Shown as byte |
ecs.fargate.mem.hierarchical_memsw_limit (gauge) | Number of bytes of memory+swap limit with regard to hierarchy under which memory cgroup is (Linux only). Shown as byte |
ecs.fargate.mem.inactive_file (gauge) | Number of bytes of file-backed memory on inactive LRU list (Linux only). Shown as byte |
ecs.fargate.mem.limit (gauge) | Number of bytes memory limit (Linux only). Shown as byte |
ecs.fargate.mem.mapped_file (gauge) | Number of bytes of mapped file (includes tmpfs/shmem) (Linux only). Shown as byte |
ecs.fargate.mem.max_usage (gauge) | Show max memory usage recorded. Shown as byte |
ecs.fargate.mem.pgfault (gauge) | Number of page faults per second (Linux only). |
ecs.fargate.mem.pgmajfault (gauge) | Number of major page faults per second (Linux only). |
ecs.fargate.mem.pgpgin (gauge) | Number of charging events to the memory cgroup. The charging event happens each time a page is accounted as either mapped anon page(RSS) or cache page(Page Cache) to the cgroup (Linux only). |
ecs.fargate.mem.pgpgout (gauge) | Number of uncharging events to the memory cgroup. The uncharging event happens each time a page is unaccounted from the cgroup (Linux only). |
ecs.fargate.mem.rss (gauge) | Number of bytes of anonymous and swap cache memory (includes transparent hugepages) (Linux only). Shown as byte |
ecs.fargate.mem.task.limit (gauge) | Task Memory Limit (shared by all containers). Shown as byte |
ecs.fargate.mem.usage (gauge) | Number of bytes of memory used. Shown as byte |
ecs.fargate.net.bytes_rcvd (gauge) | Number of bytes received (Fargate 1.4.0+ required). Shown as byte |
ecs.fargate.net.bytes_sent (gauge) | Number of bytes sent (Fargate 1.4.0+ required). Shown as byte |
ecs.fargate.net.packet.in_dropped (gauge) | Number of ingoing packets dropped (Fargate 1.4.0+ required). Shown as packet |
ecs.fargate.net.packet.out_dropped (gauge) | Number of outgoing packets dropped (Fargate 1.4.0+ required). Shown as packet |
ecs.fargate.net.rcvd_errors (gauge) | Number of received errors (Fargate 1.4.0+ required). Shown as error |
ecs.fargate.net.sent_errors (gauge) | Number of sent errors (Fargate 1.4.0+ required). Shown as error |
ECS Fargate 점검에는 이벤트가 포함되어 있지 않습니다.
fargate_check
Returns CRITICAL
if the Agent is unable to connect to Fargate, otherwise returns OK
.
Statuses: ok, critical
도움이 필요하신가요? Datadog 지원팀에 문의해 주세요.