- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Supported OS
AWS Fargate의 Amazon EKS는 표준 쿠버네티스(Kubernetes) 환경의 배포 및 유지 관리의 특정 측면을 자동화하는 관리형 쿠버네티스(Kubernetes) 서비스입니다. 쿠버네티스(Kubernetes) 노드는 AWS Fargate로 관리하며 사용자로부터 추상화됩니다.
참고: EKS Fargate는 네트워크 성능 모니터링(NPM)을 지원하지 않습니다.
본 단계에서는 AWS Fargate의 Amazon EKS 내부 컨테이너에서 Datadog 에이전트 v7.17+를 설정하는 방법을 알아봅니다. AWS Fargate를 사용하지 않는 경우 Datadog-Amazon EKS 통합 문서를 참조하세요.
AWS Fargate 파드(pod)는 물리적 파드가 아니므로 CPU, 메모리 등과 같은 호스트 기반 시스템 점검에서 제외됩니다. AWS Fargate 파드에서 데이터를 수집하려면, 다음 기능을 활성화하는 커스텀 RBAC을 사용하여 애플리케이션 파드의 사이드카로 해당 에이전트를 실행합니다.
AWS Fargate 프로파일로 파드가 fargate 실행되도록 지정하지 않으면, 해당 파드는 기존 EC2 머신을 사용할 수 있습니다. 이러한 경우 Datadog-Amazon EKS 통합 설정 항목을 참조하여 데이터를 수집하세요. 해당 통합은 에이전트를 EC2 유형 워크로드로 실행하여 동작합니다. 에이전트 설정은 쿠버네티스(Kubernetes) 에이전트 설정과 동일하며 모든 옵션을 사용할 수 있습니다. EC2 노드에 에이전트를 배포하려면 Datadog 에이전트용 DaemonSet 설정을 사용합니다.
AWS EKS Fargate에서 워크로드 모니터링을 위한 최적의 옵저빌리티(observability) 범위를 확보하려면 다음 Datadog 통합을 설치하세요.
EKS로 실행하는 기타 AWS 서비스에 대한 통합도 설치하세요(예: ELB).
설치하려면 버전 7.17 이상 datadog/agent
커스텀 에이전트 이미지를 다운로드하세요.
에이전트가 사이드카로 실행되는 경우, 동일한 파드의 컨테이너와만 통신할 수 있습니다. 모니터링하려는 모든 파드에 대해 에이전트를 실행합니다.
Fargate 노드로 AWS EKS Fargate에서 실행 중인 애플리케이션의 데이터를 수집하려면 다음 설정 단계를 따릅니다.
Datadog 라이브 컨테이너 보기에서 EKS Fargate 컨테이너를 사용하려면, 파드 사양에서 shareProcessNamespace
를 활성화합니다. 프로세스 수집을 참조하세요.
AWS EKS Fargate에서 에이전트를 사이드카로 배포할 때 다음 RBAC 에이전트를 사용합니다.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: datadog-agent
rules:
- apiGroups:
- ""
resources:
- nodes
- namespaces
- endpoints
verbs:
- get
- list
- apiGroups:
- ""
resources:
- nodes/metrics
- nodes/spec
- nodes/stats
- nodes/proxy
- nodes/pods
- nodes/healthz
verbs:
- get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: datadog-agent
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: datadog-agent
subjects:
- kind: ServiceAccount
name: datadog-agent
namespace: default
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: datadog-agent
namespace: default
Datadog 어드미션 컨트롤러(클러스터 에이전트 v7.52 이상 필요) 또는 수동으로 사이드카를 설정하여 에이전트를 사이드카로 실행할 수 있습니다. 어드미션 컨트롤러를 사용하면 agent.datadoghq.com/sidecar:fargate
레이블이 있는 모든 파드에 에이전트 사이드카를 삽입할 수 있습니다.
수동 설정의 경우 에이전트 사이드카를 추가하거나 변경할 때는 모든 워크로드 매니페스트를 수정해야 합니다. Datadog은 어드미션 컨트롤러를 사용할 것을 권장합니다.
하단의 설정으로 에이전트 사이드카와 통신하도록 클러스터 에이전트를 설정하여 이벤트 컬렉션, 쿠버네티스(Kubernetes) 리소스 보기, 클러스터 점검 등의 기능에 접근할 수 있게 합니다.
전제 조건
애플리케이션 네임스페이스에서 RBAC를 설정합니다. 본 페이지의 AWS EKS Fargate RBAC 섹션을 참조하세요.
서비스 계정 이름을 설정하여 RBAC 위를 애플리케이션 파드에 바인딩합니다.
Datadog 설치 및 애플리케이션 네임스페이스에서 Datadog API 키와 클러스터 에이전트 토큰이 포함된 쿠버네티스(Kubernetes) 시크릿을 생성합니다.
kubectl create secret generic datadog-secret -n datadog-agent \
--from-literal api-key=<YOUR_DATADOG_API_KEY> --from-literal token=<CLUSTER_AGENT_TOKEN>
kubectl create secret generic datadog-secret -n fargate \
--from-literal api-key=<YOUR_DATADOG_API_KEY> --from-literal token=<CLUSTER_AGENT_TOKEN>
해당 시크릿이 어떻게 사용되는지 자세히 알아보려면 클러스터 에이전트 설정을 참조하세요.
승인 컨트롤러가 활성화된 상태로 datadog-agent.yaml
에서 DatadogAgent
커스텀 리소스를 생성합니다.
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
clusterAgentTokenSecret:
secretName: datadog-secret
keyName: token
credentials:
apiSecret:
secretName: datadog-secret
keyName: api-key
features:
admissionController:
agentSidecarInjection:
enabled: true
provider: fargate
그런 다음 새로운 설정을 적용합니다:
kubectl apply -n datadog-agent -f datadog-agent.yaml
클러스터 에이전트를 실행한 후 어드미션 컨트롤러를 변경하는 웹훅(webhook)을 등록하면 에이전트 사이드카가 agent.datadoghq.com/sidecar:fargate
레이블로 생성된 모든 파드에 자동 삽입됩니다.
어드미션 컨트롤러는 이미 생성된 파드를 변경하지 않습니다.
결과 예시
다음은 승인 컨트롤러가 Agent 사이드카를 삽입한 Redis 배포의 spec.containers
스니펫입니다. 사이드카는 EKS Fargate 환경에서 실행하기 위한 추가 설정과 함께 내부 기본값을 사용하여 자동으로 설정됩니다. 사이드카는 datadog-agent.yaml
에 설정된 이미지 리포지토리와 태그를 사용합니다. Cluster Agent와 사이드카 간의 통신은 기본적으로 활성화됩니다.
containers:
- args:
- redis-server
image: redis:latest
# ...
- env:
- name: DD_API_KEY
valueFrom:
secretKeyRef:
key: api-key
name: datadog-secret
- name: DD_CLUSTER_AGENT_AUTH_TOKEN
valueFrom:
secretKeyRef:
key: token
name: datadog-secret
- name: DD_EKS_FARGATE
value: "true"
# ...
image: gcr.io/datadoghq/agent:7.51.0
imagePullPolicy: IfNotPresent
name: datadog-agent-injected
resources:
limits:
cpu: 200m
memory: 256Mi
requests:
cpu: 200m
memory: 256Mi
Agent 또는 해당 컨테이너 리소스를 추가로 구성하려면 DatadogAgent
리소스의 속성을 사용합니다. 환경 변수 정의 및 리소스 설정을 추가하려면 spec.features.admissionController.agentSidecarInjection.profiles
를 사용합니다. agent.datadoghq.com/sidecar:fargate
레이블을 추가하기 위해 워크로드를 업데이트하는 대신 spec.features.admissionController.agentSidecarInjection.selectors
속성을 사용하여 워크로드 파드를 대상으로 지정하도록 커스텀 선택기를 설정합니다.
사이드카 프로필과 커스텀 파드 선택기를 구성하는 datadog-values.yaml
파일에 DatadogAgent
커스텀 리소스를 생성합니다.
예시
다음 예제에서 선택기는 레이블이 "app": redis
인 모든 파드를 타겟으로 합니다. 사이드카 프로파일은 DD_PROCESS_AGENT_PROCESS_COLLECTION_ENABLED
환경 변수와 리소스 설정을 구성합니다.
spec:
features:
admissionController:
agentSidecarInjection:
enabled: true
provider: fargate
selectors:
- objectSelector:
matchLabels:
"app": redis
profiles:
- env:
- name: DD_PROCESS_AGENT_PROCESS_COLLECTION_ENABLED
value: "true"
resources:
requests:
cpu: "400m"
memory: "256Mi"
limits:
cpu: "800m"
memory: "512Mi"
그런 다음 새로운 설정을 적용합니다:
kubectl apply -n datadog-agent -f datadog-agent.yaml
Cluster Agent가 실행 상태에 도달하고 승인 컨트롤러를 변경하는 웹훅을 등록하면, Agent 사이드카가 레이블 app:redis
로 생성된 모든 파드에 자동으로 주입됩니다.
어드미션 컨트롤러는 이미 생성된 파드를 변경하지 않습니다.
결과 예시
다음은 승인 컨트롤러가 Agent 사이드카를 삽입한 Redis 배포의 spec.containers
스니펫입니다. datadog-agent.yaml
의 환경 변수 및 리소스 설정이 자동으로 적용됩니다.
레이블:
app: redis
eks.amazonaws.com/fargate-profile: fp-fargate
pod-template-hash: 7b86c456c4
# ...
containers:
- args:
- redis-server
image: redis:latest
# ...
- env:
- name: DD_API_KEY
valueFrom:
secretKeyRef:
key: api-key
name: datadog-secret
# ...
- name: DD_PROCESS_AGENT_PROCESS_COLLECTION_ENABLED
value: "true"
# ...
image: gcr.io/datadoghq/agent:7.51.0
imagePullPolicy: IfNotPresent
name: datadog-agent-injected
resources:
limits:
cpu: 800m
memory: 512Mi
requests:
cpu: 400m
memory: 256Mi
하단의 설정으로 에이전트 사이드카와 통신하도록 클러스터 에이전트를 설정하여 이벤트 컬렉션, 쿠버네티스(Kubernetes) 리소스 보기, 클러스터 점검 등의 기능에 접근할 수 있게 합니다.
전제 조건
애플리케이션 네임스페이스에서 RBAC를 설정합니다. 본 페이지의 AWS EKS Fargate RBAC 섹션을 참조하세요.
서비스 계정 이름을 설정하여 RBAC 위를 애플리케이션 파드에 바인딩합니다.
Datadog 설치 및 애플리케이션 네임스페이스에서 Datadog API 키와 클러스터 에이전트 토큰이 포함된 쿠버네티스(Kubernetes) 시크릿을 생성합니다.
kubectl create secret generic datadog-secret -n datadog-agent \
--from-literal api-key=<YOUR_DATADOG_API_KEY> --from-literal token=<CLUSTER_AGENT_TOKEN>
kubectl create secret generic datadog-secret -n fargate \
--from-literal api-key=<YOUR_DATADOG_API_KEY> --from-literal token=<CLUSTER_AGENT_TOKEN>
해당 시크릿이 어떻게 사용되는지 자세히 알아보려면 클러스터 에이전트 설정을 참조하세요.
다음을 포함하는 datadog-values.yaml
파일을 만듭니다.
datadog:
clusterName: <CLUSTER_NAME>
apiKeyExistingSecret: datadog-secret
agents:
enabled: false
clusterAgent:
tokenExistingSecret: datadog-secret
admissionController:
agentSidecarInjection:
enabled: true
provider: fargate
참고: Fargate 전용 클러스터에는 agents.enabled=false
을 사용하고, 혼합 클러스터의 경우 agents.enabled=true
을 설정하여 EC2 인스턴스의 워크로드 모니터링 DaemonSet을 생성합니다.
차트를 배포합니다.
helm install datadog-agent -f datadog-values.yaml datadog/datadog
클러스터 에이전트를 실행한 후 어드미션 컨트롤러를 변경하는 웹훅(webhook)을 등록하면 에이전트 사이드카가 agent.datadoghq.com/sidecar:fargate
레이블로 생성된 모든 파드에 자동 삽입됩니다.
어드미션 컨트롤러는 이미 생성된 파드를 변경하지 않습니다.
결과 예시
다음은 어드미션 컨트롤러가 에이전트 사이드카를 삽입한 Redis 배포의 spec.containers
스니펫입니다. 사이드카는 내부 기본값을 사용하여 자동 설정되는데, EKS Fargate 환경에서 실행하기 위한 추가 설정도 포함됩니다. 사이드카는 Helm 값에 설정된 이미지 리포지토리와 태그를 사용합니다. 클러스터 에이전트와 사이드카 간의 통신은 기본값으로 활성화되어 있습니다.
containers:
- args:
- redis-server
image: redis:latest
# ...
- env:
- name: DD_API_KEY
valueFrom:
secretKeyRef:
key: api-key
name: datadog-secret
- name: DD_CLUSTER_AGENT_AUTH_TOKEN
valueFrom:
secretKeyRef:
key: token
name: datadog-secret
- name: DD_EKS_FARGATE
value: "true"
# ...
image: gcr.io/datadoghq/agent:7.51.0
imagePullPolicy: IfNotPresent
name: datadog-agent-injected
resources:
limits:
cpu: 200m
memory: 256Mi
requests:
cpu: 200m
memory: 256Mi
에이전트 또는 컨테이너 리소스를 추가 설정하려면, Helm 속성 clusterAgent.admissionController.agentSidecarInjection.profiles
으로 환경 변수 정의 및 리소스 설정을 추가합니다. clusterAgent.admissionController.agentSidecarInjection.selectors
속성으로 커스텀 선택기를 설정하여 agent.datadoghq.com/sidecar:fargate
레이블을 추가하여 워크로드를 업데이트하는 대신 워크로드 파드를 타겟팅합니다.
사이드카 프로필과 커스텀 파드 선택기를 설정하는 Helm datadog-values.yaml
파일을 생성합니다.
예시
다음 예제에서 선택기는 레이블이 "app": redis
인 모든 파드를 타겟으로 합니다. 사이드카 프로파일은 DD_PROCESS_AGENT_PROCESS_COLLECTION_ENABLED
환경 변수와 리소스 설정을 구성합니다.
clusterAgent:
admissionController:
agentSidecarInjection:
selectors:
- objectSelector:
matchLabels:
"app": redis
profiles:
- env:
- name: DD_PROCESS_AGENT_PROCESS_COLLECTION_ENABLED
value: "true"
resources:
requests:
cpu: "400m"
memory: "256Mi"
limits:
cpu: "800m"
memory: "512Mi"
차트를 설치합니다.
helm install datadog datadog/datadog -n datadog-agent \
--set datadog.clusterName=cluster-name \
--set agents.enabled=false \
--set datadog.apiKeyExistingSecret=datadog-secret \
--set clusterAgent.tokenExistingSecret=datadog-secret \
--set clusterAgent.admissionController.agentSidecarInjection.enabled=true \
--set clusterAgent.admissionController.agentSidecarInjection.provider=fargate \
-f datadog-values.yaml
참고: Fargate 전용 클러스터에는 agents.enabled=false
을 사용하고, 혼합 클러스터의 경우 agents.enabled=true
을 설정하여 EC2 인스턴스의 워크로드 모니터링 DaemonSet을 생성합니다.
클러스터 에이전트를 실행한 후 어드미션 컨트롤러를 변경하는 웹훅(webhook)을 등록하면 에이전트 사이드카가 app:redis
레이블로 생성된 모든 파드에 자동 삽입됩니다.
어드미션 컨트롤러는 이미 생성된 파드를 변경하지 않습니다.
결과 예시
다음은 어드미션 컨트롤러가 에이전트 사이드카를 삽입한 Redis 배포의 spec.containers
스니펫입니다. datadog-values.yaml
의 환경 변수와 리소스 설정이 자동 적용됩니다.
labels:
app: redis
eks.amazonaws.com/fargate-profile: fp-fargate
pod-template-hash: 7b86c456c4
# ...
containers:
- args:
- redis-server
image: redis:latest
# ...
- env:
- name: DD_API_KEY
valueFrom:
secretKeyRef:
key: api-key
name: datadog-secret
# ...
- name: DD_PROCESS_AGENT_PROCESS_COLLECTION_ENABLED
value: "true"
# ...
image: gcr.io/datadoghq/agent:7.51.0
imagePullPolicy: IfNotPresent
name: datadog-agent-injected
resources:
limits:
cpu: 800m
memory: 512Mi
requests:
cpu: 400m
memory: 256Mi
Fargate 타입 파드에서 데이터 수집을 시작하려면 애플리케이션의 사이드카로 Datadog 에이전트 v7.17+를 배포하세요. 이는 포드에서 실행 중인 애플리케이션에서 메트릭을 수집하는 데 필요한 최소 설정입니다. Datadog 에이전트 사이드카를 배포하려면 매니페스트에 DD_EKS_FARGATE=true
가 추가되어 있는지 확인하세요.
apiVersion: apps/v1
kind: Deployment
metadata:
name: "<APPLICATION_NAME>"
namespace: default
spec:
selector:
matchLabels:
app: "<APPLICATION_NAME>"
replicas: 1
template:
metadata:
labels:
app: "<APPLICATION_NAME>"
name: "<POD_NAME>"
spec:
serviceAccountName: datadog-agent
containers:
- name: "<APPLICATION_NAME>"
image: "<APPLICATION_IMAGE>"
## 에이전트를 사이드카로 실행
- image: datadog/agent
name: datadog-agent
env:
- name: DD_API_KEY
value: "<YOUR_DATADOG_API_KEY>"
## DD_SITE를 "datadoghq.eu"로 설정하여
## Datadog EU 사이트로 에이전트 데이터 전송
- name: DD_SITE
value: "datadoghq.com"
- name: DD_EKS_FARGATE
value: "true"
- name: DD_CLUSTER_NAME
value: "<CLUSTER_NAME>"
- name: DD_KUBERNETES_KUBELET_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
resources:
requests:
memory: "256Mi"
cpu: "200m"
limits:
memory: "256Mi"
cpu: "200m"
참고: <YOUR_DATADOG_API_KEY>
를 조직의 Datadog API 키로 꼭 교체하세요.
참고: DD_TAGS
의 목록에 원하는 kube_cluster_name:<CLUSTER_NAME>
을 추가하여 메트릭에 원하는 클러스터 태그가 지정되도록 합니다. 여기에 공백으로 구분되는 <KEY>:<VALUE>
태그를 추가 태그로 추가할 수 있습니다. 7.34+
및 6.34+
에이전트의 경우 해당 작업이 필요하지 않습니다. 대신 DD_CLUSTER_NAME
환경 변수를 설정하세요.
Datadog은 클러스터 에이전트를 실행하여 이벤트 컬렉션, 쿠버네티스(Kubernetes) 리소스 보기, 클러스터 점검 등의 기능에 접근하시기를 권장합니다.
EKS Fargate를 사용하는 경우, EKS 클러스터가 혼합 워크로드(Fargate/비 Fargate)를 실행 중인지 여부에 따라 다음 두 가지 가능한 시나리오가 있습니다.
EKS 클러스터로 Fargate 및 논-Fargate 워크로드를 실행하고 노드 에이전트 DaemonSet을 통해 논-Fargate 워크로드를 모니터링하려면 클러스터 에이전트/클러스터 점검 실행기를 이 배포에 추가하세요. 자세한 내용을 확인하려면 클러스터 에이전트 설정을 참조하세요.
클러스터 에이전트 토큰은 모니터링하러는 Fargate 작업에서 접근할 수 있어야 합니다. Helm 차트 또는 Datadog 오퍼레이터를 사용하는 경우, 타겟 네임스페이스에 시크릿이 생성되어 있어서 기본적으로 접근할 수 없습니다.
해당 기능이 제대로 작동하려면 다음 두 가지 옵션이 있습니다.
clusterAgent.token
, Datadog 오퍼레이터의 경우 credentials.token
)을 사용하면 편리하지만 보안성이 떨어집니다.clusterAgent.tokenExistingSecret
, Datadog 오퍼레이터에서는 불가)을 사용하여 Fargate 작업을 모니터링하려는 모든 네임스페이스에 복제하면 안전하지만 추가 작업이 필요합니다.
참고: token
값은 최소 32자 이상이어야 합니다.EKS 클러스터가 Fargate 워크로드만 실행하는 경우, 독립형 클러스터 에이전트를 배포해야 합니다. 또한 위에서 설명한 것처럼 토큰이 접근할 수 있도록 두 가지 옵션 중 하나를 선택하여 설정합니다.
다음 헬름 values.yaml
을 사용합니다.
datadog:
apiKey: <YOUR_DATADOG_API_KEY>
clusterName: <CLUSTER_NAME>
agents:
enabled: false
clusterAgent:
enabled: true
replicas: 2
env:
- name: DD_EKS_FARGATE
value: "true"
두 경우 모두 클러스터 에이전트와의 통신을 허용하려면 다음과 같이 Datadog 에이전트 사이드카 매니페스트를 변경해야 합니다.
env:
- name: DD_CLUSTER_AGENT_ENABLED
value: "true"
- name: DD_CLUSTER_AGENT_AUTH_TOKEN
value: <hardcoded token value> # Use valueFrom: if you're using a secret
- name: DD_CLUSTER_AGENT_URL
value: https://<CLUSTER_AGENT_SERVICE_NAME>.<CLUSTER_AGENT_SERVICE_NAMESPACE>.svc.cluster.local:5005
- name: DD_ORCHESTRATOR_EXPLORER_ENABLED # Kubernetes 리소스 보기를 얻는데 필요
value: "true"
- name: DD_CLUSTER_NAME
value: <CLUSTER_NAME>
EKS 클러스터 성능에 대한 통찰을 얻으려면 클러스터 점검 실행기를 활성화하여 kube-state-metrics
서비스에서 메트릭을 수집하세요.
애플리케이션 컨테이너의 자동탐지 레이블을 사용하여 지원되는 에이전트 통합에 대한 메트릭을 수집하세요.
apiVersion: apps/v1
kind: Deployment
metadata:
name: "<APPLICATION_NAME>"
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: "<APPLICATION_NAME>"
template:
metadata:
labels:
app: "<APPLICATION_NAME>"
name: "<POD_NAME>"
annotations:
ad.datadoghq.com/<CONTAINER_NAME>.check_names: '[<CHECK_NAME>]'
ad.datadoghq.com/<CONTAINER_NAME>.init_configs: '[<INIT_CONFIG>]'
ad.datadoghq.com/<CONTAINER_NAME>.instances: '[<INSTANCE_CONFIG>]'
spec:
serviceAccountName: datadog-agent
containers:
- name: "<APPLICATION_NAME>"
image: "<APPLICATION_IMAGE>"
## Agent를 사이드카로 실행
- image: datadog/agent
name: datadog-agent
env:
- name: DD_API_KEY
value: "<YOUR_DATADOG_API_KEY>"
## Agent 데이터를 Datadog EU 사이트로 보내려면
## DD_SITE를 "datadoghq.eu"로 설정하세요.
- name: DD_SITE
value: "datadoghq.com"
- name: DD_EKS_FARGATE
value: "true"
- name: DD_KUBERNETES_KUBELET_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
resources:
requests:
memory: "256Mi"
cpu: "200m"
limits:
memory: "256Mi"
cpu: "200m"
참고:
<YOUR_DATADOG_API_KEY>
를 조직의 Datadog API 키로 꼭 교체하세요.cgroups
볼륨을 에이전트에 마운트할 수 없으므로 Fargate에서 사용할 수 없습니다. 실시간 컨테이너 보기는 CPU 및 메모리에 대해 0을 보고합니다.컨테이너 에이전트의 포트 8125
컨테이너를 설정하여 애플리케이션 컨테이너에서 Datadog으로 DogStatsD 메트릭을 전달합니다.
apiVersion: apps/v1
kind: Deployment
metadata:
name: "<APPLICATION_NAME>"
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: "<APPLICATION_NAME>"
template:
metadata:
labels:
app: "<APPLICATION_NAME>"
name: "<POD_NAME>"
spec:
serviceAccountName: datadog-agent
containers:
- name: "<APPLICATION_NAME>"
image: "<APPLICATION_IMAGE>"
## 에이전트를 사이드카로 실행
- image: datadog/agent
name: datadog-agent
## DogStatsD 메트릭 수집용 8125 포트 활성화
ports:
- containerPort: 8125
name: dogstatsdport
protocol: UDP
env:
- name: DD_API_KEY
value: "<YOUR_DATADOG_API_KEY>"
## DD_SITE를 "datadoghq.eu"로 설정하여
## Datadog EU 사이트로 에이전트 데이터 전송
- name: DD_SITE
value: "datadoghq.com"
- name: DD_EKS_FARGATE
value: "true"
- name: DD_KUBERNETES_KUBELET_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
resources:
requests:
memory: "256Mi"
cpu: "200m"
limits:
memory: "256Mi"
cpu: "200m"
참고: <YOUR_DATADOG_API_KEY>
를 조직의 Datadog API 키로 꼭 교체하세요.
Datadog 에이전트 v6.19 이상 버전은 EKS Fargate 통합의 실시간 컨테이너를 지원합니다. 실시간 컨테이너는 컨테이너 페이지에 표시됩니다.
Datadog 에이전트 v6.19 이상 버전은 EKS Fargate 통합의 실시간 프로세스를 지원합니다. 실시간 프로세스는 프로세스 페이지에 표시됩니다. 실시간 프로세스를 활성화하려면 파드 사양에서 shareProcessNamespace를 활성화하세요.
쿠버네티스(Kubernetes) 리소스 보기 데이터를 수집하려면 클러스터 에이전트를 설정해야 합니다.
Fluent Bit를 사용하여 EKS 로그를 클라우드와치(CloudWatch) 로그로 라우팅, Datadog 포워더(Forwarder)를 사용하여 로그를 Datadog으로 라우팅해 EKS Fargate 로그를 모니터링합니다.
Fluent Bit를 설정하여 로그를 클라우드와치(CloudWatch)로 전송하고, 클라우드와치(CloudWatch) 로그를 출력값으로 지정하는 쿠버네티스(Kubernetes) ConfigMap을 생성합니다. ConfigMap으로 로그 그룹, 지역, 접두사 문자열, 로그 그룹 자동 생성 여부를 지정합니다.
kind: ConfigMap
apiVersion: v1
metadata:
name: aws-logging
namespace: aws-observability
data:
output.conf: |
[OUTPUT]
Name cloudwatch_logs
Match *
region us-east-1
log_group_name awslogs-https
log_stream_prefix awslogs-firelens-example
auto_create_group true
Datadog 포워더(Forwarder)를 사용하여 클라우드와치(CloudWatch) 로그를 수집하고 Datadog로 전송합니다.
컨테이너 에이전트의 포트 8126
컨테이너를 설정하여 애플리케이션 컨테이너에서 트레이스를 수집합니다. 트레이싱 설정 방법에 대한 자세한 내용을 확인하세요.
apiVersion: apps/v1
kind: Deployment
metadata:
name: "<APPLICATION_NAME>"
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: "<APPLICATION_NAME>"
template:
metadata:
labels:
app: "<APPLICATION_NAME>"
name: "<POD_NAME>"
spec:
serviceAccountName: datadog-agent
## cgroup v2를 사용하여 원본 감지용 애플리케이션과 동일한 네임스페이스에 에이전트 배치
shareProcessNamespace: true
containers:
- name: "<APPLICATION_NAME>"
image: "<APPLICATION_IMAGE>"
## 에이전트를 사이드카로 실행
- image: datadog/agent
name: datadog-agent
## 트레이스 수집용 8126 포트 활성화:
- containerPort: 8126
name: traceport
protocol: TCP
env:
- name: DD_API_KEY
value: "<YOUR_DATADOG_API_KEY>"
## DD_SITE를 "datadoghq.eu"로 설정하여
## Datadog EU 사이트로 에이전트 데이터 전송
- name: DD_SITE
value: "datadoghq.com"
- name: DD_EKS_FARGATE
value: "true"
- name: DD_APM_ENABLED
value: "true"
- name: DD_KUBERNETES_KUBELET_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
resources:
requests:
memory: "256Mi"
cpu: "200m"
limits:
memory: "256Mi"
cpu: "200m"
참고: <YOUR_DATADOG_API_KEY>
를 조직의 Datadog API 키로 꼭 교체하세요.
AWS EKS Fargate API 서버에서 이벤트를 수집하려면 EKS 클러스터 내부에서 Datadog 클러스터 에이전트를 실행하고 클러스터 에이전트 이벤트 수집을 활성화합니다.
옵션으로 Datadog 클러스터 에이전트를 설정하여 클러스터 점검을 활성화하고 클러스터 점검 실행기를 배포합니다.
참고: Fargate의 파드에서 Datadog 클러스터 에이전트를 실행하면 이벤트를 수집할 수도 있습니다.
에이전트 6.19+/7.19+의 경우, 프로세스 수집 기능을 사용할 수 있습니다. 파드 사양에서 shareProcessNamespace
을 활성화하여 Fargate 파드에서 실행 중인 모든 프로세스를 수집하세요. 예시:
apiVersion: v1
kind: Pod
metadata:
name: <NAME>
spec:
shareProcessNamespace: true
...
참고: CPU 및 메모리 메트릭를 사용할 수 없습니다.
eks_fargate 점검은 pod_name
및 virtual_node
태그를 지정한 하트비트(heartbeat) 메트릭 eks.fargate.pods.running
을 제출하므로 실행 중인 파드 수를 추적할 수 있습니다.
eks_fargate는 서비스 점검을 포함하지 않습니다.
eks_fargate는 이벤트를 포함하지 않습니다.
도움이 필요하세요? Datadog 지원에 문의하세요.
기타 유용한 문서, 링크 및 기사: