- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Helm 차트 v2.7.0+ 또는 Datadog 오퍼레이터 v0.7.0+를 사용해 Datadog 에이전트를 배포하려면 클러스터 에이전트가 기본적으로 활성화되어 있어야 합니다.
Helm 차트 v2.7.0 이래로 클러스터 에이전트는 기본적으로 활성화되어 있습니다.
이전 버전을 활성화하려면 clusterAgent
키를 덮어쓰는 커스텀 datadog-values.yaml을 사용하는 경우, 다음 클러스터 에이전트 설정을 사용해 datadog-values.yaml 파일을 업데이트해야 합니다.
clusterAgent:
# clusterAgent.enabled -- Set this to false to disable Datadog Cluster Agent
enabled: true
그런 다음 Datadog Helm 차트를 업그레이드합니다.
이 작업은 자동으로 클러스터 에이전트와 Datadog 에이전트의 필수 RBAC 파일을 업데이트합니다. 양 에이전트는 동일한 API 키를 사용합니다.
오퍼레이터는 또한 일반적으로 양 클러스터 에이전트와 Datadog 에이전트가 통신을 보호하기 위해 공유하는 Secret
에서 임의 토큰을 생성합니다. clusterAgent.token
설정을 사용해 수동으로 이 토큰을 지정할 수 있습니다. 대신 clusterAgent.tokenExistingSecret
설정을 통해 token
값을 포함하는 기존 Secret
이름을 참조하여 이를 설정할 수도 있습니다.
수동으로 설정하는 경우 이 토큰은 32자의 영숫자 문자여야 합니다.
Datadog 오퍼레이터 v1.0.0 이래로 클러스터 에이전트는 활성화됩니다. 오퍼레이터는 필수 RBAC를 생성하고, 클러스터 에이전트를 배포하고, 에이전트 DaemonSet 설정을 수정합니다.
오퍼레이터는 또한 일반적으로 양 클러스터 에이전트와 Datadog 에이전트가 통신을 보호하기 위해 공유하는 Secret
에서 임의 토큰을 생성합니다. global.clusterAgentToken
필드를 사용해 수동으로 이 토큰을 지정할 수 있습니다. 대신 이 토큰을 포함하는 데이터 키와 기존 Secret
읾을 참조하여 이를 설정할 수도 있습니다.
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
credentials:
apiKey: <DATADOG_API_KEY>
clusterAgentTokenSecret:
secretName: <SECRET_NAME>
keyName: <KEY_NAME>
수동으로 설정하는 경우 이 토큰은 32자의 영숫자 문자여야 합니다.
DaemonSet을 사용하여 Datadog 클러스터 에이전트를 설정하는 경우
Datadog 클러스터 에이전트에는 적절한 RBAC가 활성화되고 실행되어야 합니다.
Datadog 클러스터 에이전트 RBAC 폴더에서 매니페스트를 검토합니다. 참고: 클러스터 에이전트를 사용하는 경우 노드 에이전트가 쿠버네티스(Kubernetes) API 서버와 상호 작용할 수 없습니다. 클러스터 에이전트만 가능합니다.
클러스터 에이전트 RBAC 권한을 설정하려면 다음 매니페스트를 적용합니다(노드 에이전트 daemonset 설정 시 이미 완료했을 수 있음).
kubectl apply -f "https://raw.githubusercontent.com/DataDog/datadog-agent/master/Dockerfiles/manifests/cluster-agent/rbac.yaml"
kubectl apply -f "https://raw.githubusercontent.com/DataDog/datadog-agent/master/Dockerfiles/manifests/cluster-agent/cluster-agent-rbac.yaml"
이 작업은 클러스터 에이전트를 위해 적절한 ServiceAccount
, ClusterRole
및 ClusterRoleBinding
를 생성하고 노드 에이전트를 위해 ClusterRole
를 업데이트합니다.
Azure 쿠버네티스(Kubernetes) 서비스(AKS)를 사용하는 경우 추가 권한이 필요할 수도 있습니다. AKS의 DCA용 RBAC FAQ를 참조하세요.
Datadog 에이전트와 클러스터 에이전트는 통신 보호를 위한 토큰을 필요로 합니다. Datadog 에이전트 및 클러스터 에이전트 모두가 환경 변수 DD_CLUSTER_AGENT_AUTH_TOKEN
에서 참조할 수 있는 이 토큰을 Secret
에 저장해 두는 것이 좋습니다. 그러면 일관성을 유지하고 PodSpec
에서 토큰을 읽는 것을 방지할 수 있습니다.
이 토큰을 생성하려면, 이 한 줄의 명령을 실행하고 token
세트를 사용해 이름이 datadog-cluster-agent
인 Secret
을 생성합니다. 32개 영숫자 문자로 <TOKEN>
을 교체합니다.
kubectl create secret generic datadog-cluster-agent --from-literal=token='<TOKEN>' --namespace="default"
참고: 이 작업으로 기본 네임스페이스에 Secret
이 생성됩니다. 커스텀 네임스페이스에 있는 경우 실행하기 전 명령의 네임스페이스 파라미터를 업데이트합니다.
클러스터 에이전트에 제공되는 기본 cluster-agent-deployment.yaml
가 이미 설정되어 환경 변수 설정을 사용해 이 Secret
를 확인할 수 있습니다.
- name: DD_CLUSTER_AGENT_AUTH_TOKEN
valueFrom:
secretKeyRef:
name: datadog-cluster-agent
key: token
이 환경 변수는 Datadog 에이전트 설정 시 동일한 설정을 사용해 설정해야 합니다.
다음 메니페스트를 다운로드합니다.
secret-api-key.yaml
매니페스트에서 PUT_YOUR_BASE64_ENCODED_API_KEY_HERE
를 base64로 인코딩된 [Datadog API 키][19]로 바꿉니다. API 키의 base64 버전을 얻으려면 다음을 실행하세요:
echo -n '<Your API key>' | base64
secrets-application-key.yaml
매니페스트에서 base64로 인코딩된 Datadog 애플리케이션 키로 PUT_YOUR_BASE64_ENCODED_APP_KEY_HERE
를 대체합니다.
기본적으로 cluster-agent-deployment.yaml
매니페스트는 Secret
datadog-cluster-agent
에서 이전에 생성한 토큰을 참조합니다. 다른 방법으로 이 토큰을 저장한 경우 DD_CLUSTER_AGENT_AUTH_TOKEN
환경 변수를 설정하세요.
클러스터 에이전트 배포를 사용하려면 이 리소스를 배포하세요.
kubectl apply -f agent-services.yaml
kubectl apply -f secret-api-key.yaml
kubectl apply -f secret-application-key.yaml
kubectl apply -f install_info-configmap.yaml
마지막으로 Datadog 클러스터 에이전트를 배포하세요.
kubectl apply -f cluster-agent-deployment.yaml
참고: Datadog 클러스터 에이전트에서 Datadog 사이트()에 환경 변수
DD_SITE
를 설정하세요. 기본적으로 US
사이트인 datadoghq.com
입니다.
이 시점에서 다음을 확인할 수 있습니다.
kubectl get deploy
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
datadog-cluster-agent 1 1 1 1 1d
kubectl get secret
NAME TYPE DATA AGE
datadog-cluster-agent Opaque 1 1d
kubectl get pods -l app=datadog-cluster-agent
datadog-cluster-agent-8568545574-x9tc9 1/1 Running 0 2h
kubectl get service -l app=datadog-cluster-agent
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
datadog-cluster-agent ClusterIP 10.100.202.234 none 5005/TCP 1d
참고: 이미 Datadog 에이전트가 실행 중인 경우 클러스터 에이전트가 실행을 시작하기 전 에이전트 rbac.yaml
매니페스트를 적용해야 할 수 있습니다.
Datadog 에이전트 설정을 수정하여 Datadog 클러스터 에이전트와 통신하세요.
기존 DaemonSet 매니페스트 파일에서 환경 변수 DD_CLUSTER_AGENT_ENABLED
를 true
로 설정하세요. 그런 다음 클러스터 에이전트 간 통신 보호에서 사용한 동일한 구문으로 DD_CLUSTER_AGENT_AUTH_TOKEN
을 설정하세요.
- name: DD_CLUSTER_AGENT_ENABLED
value: "true"
- name: DD_CLUSTER_AGENT_AUTH_TOKEN
valueFrom:
secretKeyRef:
name: datadog-cluster-agent
key: token
이러한 설정에서 DaemonSet을 다시 배포한 후 Datadog 에이전트는 클러스터 에이전트와 통신할 수 있습니다. 전체 예시에 제공된 클러스터 에이전트 [daemonset.yaml
매니페스트]를 참조할 수 있습니다.
명령을 실행하여 Datadog 에이전트 포드와 클러스터 에이전트 포드가 실행 중인지 확인할 수 있습니다.
kubectl get pods | grep agent
다음을 참조해야 합니다.
datadog-agent-4k9cd 1/1 Running 0 2h
datadog-agent-4v884 1/1 Running 0 2h
datadog-agent-9d5bl 1/1 Running 0 2h
datadog-agent-dtlkg 1/1 Running 0 2h
datadog-agent-jllww 1/1 Running 0 2h
datadog-agent-rdgwz 1/1 Running 0 2h
datadog-agent-x5wk5 1/1 Running 0 2h
[...]
datadog-cluster-agent-8568545574-x9tc9 1/1 Running 0 2h
추가로 에이전트 상태 출력을 사용해 Datadog 에이전트가 클러스터 에이전트에 연결되어 있는지 확인할 수 있습니다.
kubectl exec -it <AGENT_POD_NAME> agent status
[...]
=====================
Datadog Cluster Agent
=====================
- Datadog Cluster Agent endpoint detected: https://10.104.246.194:5005
Successfully connected to the Datadog Cluster Agent.
- Running: 1.11.0+commit.4eadd95
쿠버네티스(Kubernetes) 이벤트가 Datadog 계정으로 들어오기 시작합니다. 에이전트가 수집한 관련 메트릭은 해당되는 클러스터 수준 메타데이터로 태그 지정됩니다.
Datadog 클러스터 에이전트만 리눅스(Linux) 노드에 배포할 수 있습니다.
윈도우즈(Windows) 컨테이너를 모니터링하려면 혼합된 클러스터에서 Helm 차트 두 개를 설치해야 합니다. 첫 번째 Helm 차트는 Datadog 클러스터 에이전트와 리눅스용 에이전트 DaemonSet를 배포합니다(targetSystem: linux
사용). 두 번째 Helm 차트(targetSystem: windows
사용) 윈도우즈 노드에서 에이전트만 배포하고 첫 번째 Helm 차트의 일부로 배포된 기존 클러스터 에이전트에 연결합니다.
다음 values.yaml
파일을 사용해 윈도우즈 노드와 클러스터 에이전트에 배포된 에이전트 간 통신을 설정합니다.
targetSystem: windows
existingClusterAgent:
join: true
serviceName: "<EXISTING_DCA_SECRET_NAME>" # from the first Datadog Helm chart
tokenSecretName: "<EXISTING_DCA_SERVICE_NAME>" # from the first Datadog Helm chart
# Disable datadogMetrics deployment since it should have been already deployed with the first chart.
datadog-crds:
crds:
datadogMetrics: false
# Disable kube-state-metrics deployment
datadog:
kubeStateMetricsEnabled: false
자세한 정보는 윈도우즈 컨테이너 문제 트러블슈팅를 참조하세요.
MSK, ElastiCache 또는 RDS 등 AWS 매니지드 서비스를 모니터링하려면 clusterChecksRunner
를 설정하여 Helm 차트에서 serviceAccountAnnotation을 통해 할당된 IAM 역할이 포함된 포드를 생성합니다. 그런 다음 clusterAgent.confd
아래에서 통합 설정을 설정합니다.
clusterChecksRunner:
enabled: true
rbac:
# clusterChecksRunner.rbac.create -- If true, create & use RBAC resources
create: true
dedicated: true
serviceAccountAnnotations:
eks.amazonaws.com/role-arn: arn:aws:iam::***************:role/ROLE-NAME-WITH-MSK-READONLY-POLICY
clusterAgent:
confd:
amazon_msk.yaml: |-
cluster_check: true
instances:
- cluster_arn: arn:aws:kafka:us-west-2:*************:cluster/gen-kafka/*******-8e12-4fde-a5ce-******-3
region_name: us-west-2