**참고: 통합 설정 간소화를 위해 Datadog 에이전트 7.36에 AD Annotations v2가 도입되었습니다. 이전 버전의 Datadog 에이전트에 대해서는 AD Annotations v1을 사용하세요.
통합 템플릿은 쿠버네티스 포드 어노테이션에 저장할 수 있습니다. 자동 탐지를 통해 에이전트가 쿠버네티스에서 실행 중인지 감지하고 모든 포드 어노테이션에서 통합 템플릿을 자동으로 검색합니다.
자동 탐지는 지정된 컨테이너에 특정한 설정을 적용하기 위해 이미지가 아닌 이름으로 컨테이너를 식별합니다. <CONTAINER_IDENTIFIER>
를 .spec.containers[0].image
가 아닌 .spec.containers[0].name
과 연결시키려고 시도합니다. 포드 내에서 <CONTAINER_IDENTIFIER>
에 대한 Datadog 통합 자동 탐지를 설정하려면, 포드에 다음 어노테이션을 추가하세요:
apiVersion: v1
kind: Pod
# (...)
metadata:
name: '<POD_NAME>'
annotations:
ad.datadoghq.com/<CONTAINER_IDENTIFIER>.checks: |
{
"<INTEGRATION_NAME>": {
"init_config": <INIT_CONFIG>,
"instances": [<INSTANCE_CONFIG>]
}
}
# (...)
spec:
containers:
- name: '<CONTAINER_IDENTIFIER>'
# (...)
일반적으로 init_config
는 비어 있는 {}
입니다. AD Annotations v2에서는 선택 사항입니다.
포드 내에서 두 개의 다른 통합 템플릿을 두 개의 다른 컨테이너 <CONTAINER_IDENTIFIER_1>
, <CONTAINER_IDENTIFIER_2>
에 적용하려면, 다음 어노테이션을 포드에 추가하세요:
apiVersion: v1
kind: Pod
# (...)
metadata:
name: '<POD_NAME>'
annotations:
ad.datadoghq.com/<CONTAINER_IDENTIFIER_1>.checks: |
{
"<INTEGRATION_NAME_1>": {
"init_config": <INIT_CONFIG_1>,
"instances": [<INSTANCE_CONFIG_1>]
}
}
ad.datadoghq.com/<CONTAINER_IDENTIFIER_2>.checks: |
{
"<INTEGRATION_NAME_2>": {
"init_config": <INIT_CONFIG_2>,
"instances": [<INSTANCE_CONFIG_2>]
}
}
spec:
containers:
- name: '<CONTAINER_IDENTIFIER_1>'
# (...)
- name: '<CONTAINER_IDENTIFIER_2>'
# (...)
kind: Pod
로 쿠버네티스 포드를 직접 정의하는 경우, 각 포드의 어노테이션을 해당 metadata
섹션 바로 아래에 추가합니다. 레플리케이션 컨트롤러, 레플리카셋 또는 디플로이먼트를 사용하여 간접적으로 포드를 정의하는 경우, .spec.template.metadata
아래에 포드 어노테이션을 추가합니다.
참고: 컨테이너화된 환경의 모범 사례로서, Datadog은 태그를 할당할 때 통합 서비스 태깅을 사용할 것을 권장합니다. 통합 서비스 태깅은 세 가지 표준 태그: env
, service
, version
을 사용하여 Datadog 텔레메트리를 하나로 묶습니다. 통합 태깅으로 환경 설정하는 방법을 알아보려면 전용 통합 서비스 태깅 설명서를 참조하세요.
통합 템플릿은 쿠버네티스 포드 어노테이션에 저장할 수 있습니다. 자동 탐지를 통해 에이전트가 쿠버네티스에서 실행 중인지 감지하고 모든 포드 어노테이션에서 통합 템플릿을 자동으로 검색합니다.
자동 탐지는 지정된 컨테이너에 특정한 설정을 적용하기 위해 이미지가 아닌 이름으로 컨테이너를 식별합니다. <CONTAINER_IDENTIFIER>
를 .spec.containers[0].image
가 아닌 .spec.containers[0].name
과 연결시키려고 시도합니다. 포드 내에서 <CONTAINER_IDENTIFIER>
에 대한 Datadog 통합 자동 탐지를 설정하려면, 포드에 다음 어노테이션을 추가하세요:
apiVersion: v1
kind: Pod
# (...)
metadata:
name: '<POD_NAME>'
annotations:
ad.datadoghq.com/<CONTAINER_IDENTIFIER>.check_names: '[<INTEGRATION_NAME>]'
ad.datadoghq.com/<CONTAINER_IDENTIFIER>.init_configs: '[<INIT_CONFIG>]'
ad.datadoghq.com/<CONTAINER_IDENTIFIER>.instances: '[<INSTANCE_CONFIG>]'
# (...)
spec:
containers:
- name: '<CONTAINER_IDENTIFIER>'
# (...)
포드 내에서 두 개의 다른 통합 템플릿을 두 개의 다른 컨테이너 <CONTAINER_IDENTIFIER_1>
, <CONTAINER_IDENTIFIER_2>
에 적용하려면, 다음 어노테이션을 포드에 추가하세요:
apiVersion: v1
kind: Pod
# (...)
metadata:
name: '<POD_NAME>'
annotations:
ad.datadoghq.com/<CONTAINER_IDENTIFIER_1>.check_names: '[<INTEGRATION_NAME_1>]'
ad.datadoghq.com/<CONTAINER_IDENTIFIER_1>.init_configs: '[<INIT_CONFIG_1>]'
ad.datadoghq.com/<CONTAINER_IDENTIFIER_1>.instances: '[<INSTANCE_CONFIG_1>]'
# (...)
ad.datadoghq.com/<CONTAINER_IDENTIFIER_2>.check_names: '[<INTEGRATION_NAME_2>]'
ad.datadoghq.com/<CONTAINER_IDENTIFIER_2>.init_configs: '[<INIT_CONFIG_2>]'
ad.datadoghq.com/<CONTAINER_IDENTIFIER_2>.instances: '[<INSTANCE_CONFIG_2>]'
spec:
containers:
- name: '<CONTAINER_IDENTIFIER_1>'
# (...)
- name: '<CONTAINER_IDENTIFIER_2>'
# (...)
kind: Pod
로 쿠버네티스 포드를 직접 정의하는 경우, 각 포드의 어노테이션을 해당 metadata
섹션 바로 아래에 추가합니다. 레플리케이션 컨트롤러, 레플리카셋 또는 디플로이먼트를 사용하여 간접적으로 포드를 정의하는 경우, .spec.template.metadata
아래에 포드 어노테이션을 추가합니다.
참고: 컨테이너화된 환경의 모범 사례로서, Datadog은 태그를 할당할 때 통합 서비스 태깅을 사용할 것을 권장합니다. 통합 서비스 태깅은 세 가지 표준 태그: env
, service
, version
을 사용하여 Datadog 텔레메트리를 하나로 묶습니다. 통합 태깅으로 환경 설정하는 방법을 알아보려면 전용 통합 서비스 태깅 설명서를 참조하세요.
템플릿을 로컬 파일로 저장하고 컨테이너화된 에이전트 내부에 마운트 할 경우 외부 서비스나 특정 오케스트레이션 플랫폼이 필요하지 않습니다. 단점은 템플릿을 변경, 추가 또는 제거할 때마다 에이전트 컨테이너를 재시작해야 한다는 것입니다. 에이전트는 마운트 된 /conf.d
디렉토리에서 자동 탐지 템플릿을 찾습니다.
에이전트 v6.2.0(및 v5.24.0) 이후, 기본 템플릿은 포트를 자동 감지하는 대신 모니터링되는 소프트웨어의 기본 포트를 사용합니다. 다른 포트를 사용해야 하는 경우, 쿠버네티스 포드 어노테이션에서 커스텀 자동 탐지 템플릿을 제공하세요.
이러한 통합 템플릿은 기본적인 경우를 위한 것입니다. 추가 옵션 활성화를 위해 사용자 지정 Datadog 통합 설정이 필요하다면 다른 컨테이너 식별자 또는 템플릿 변수 인덱싱을 사용하거나 자체 자동 설정 파일을 작성하세요:
- 호스트에
conf.d/<INTEGRATION_NAME>.d/conf.yaml
파일을 생성하고 사용자 지정 자동 설정을 추가합니다. - 호스트
conf.d/
폴더를 컨테이너화된 에이전트 conf.d
폴더에 마운트합니다.
자동 설정 파일 예시:
ad_identifiers:
<INTEGRATION_AUTODISCOVERY_IDENTIFIER>
init_config:
<INIT_CONFIG>
instances:
<INSTANCES_CONFIG>
<INTEGRATION_AUTODISCOVERY_IDENTIFIER>
에 대한 자세한 내용은 자동 탐지 컨테이너 식별자 설명서를 참조하세요.
참고: 에이전트가 파일 이름에서 직접 유추하므로 <INTEGRATIONS_NAME>
을 설정할 필요가 없습니다.
쿠버네티스에서는 ConfigMaps을 사용하여 외부에서 설정을 정의한 후 매니페스트를 사용하여 마운트할 수 있습니다. 아래 템플릿과 쿠버네티스 커스텀 통합 설명서를 참조하세요.
kind: ConfigMap
apiVersion: v1
metadata:
name: "<NAME>-config-map"
namespace: default
data:
<INTEGRATION_NAME>-config: |-
ad_identifiers:
<INTEGRATION_AUTODISCOVERY_IDENTIFIER>
init_config:
<INIT_CONFIG>
instances:
<INSTANCES_CONFIG>
<INTEGRATION_AUTODISCOVERY_IDENTIFIER>
에 대한 자세한 내용은 자동 탐지 컨테이너 식별자 설명서를 참조하세요.
자동 탐지는 Consul, Etcd 및 Zookeeper를 통합 템플릿 소스로 사용할 수 있습니다. 키-값 저장소를 사용하려면 에이전트 datadog.yaml
설정 파일에서 키-값 저장소를 설정하고, 이 파일을 컨테이너화된 에이전트 내부에 마운트합니다. 또는 컨테이너화된 에이전트에 키-값 저장소를 환경 변수로 전달합니다.
** datadog.yaml에서 설정하기**
datadog.yaml
파일에서 <KEY_VALUE_STORE_IP>
주소와 키-값 저장소의 <KEY_VALUE_STORE_PORT>
를 설정합니다.
config_providers:
- name: etcd
polling: true
template_dir: /datadog/check_configs
template_url: '<KV_STORE_IP>:<KV_STORE_PORT>'
username:
password:
- name: consul
polling: true
template_dir: datadog/check_configs
template_url: '<KV_STORE_IP>:<KV_STORE_PORT>'
ca_file:
ca_path:
cert_file:
key_file:
username:
password:
token:
- name: zookeeper
polling: true
template_dir: /datadog/check_configs
template_url: '<KV_STORE_IP>:<KV_STORE_PORT>'
username:
password:
그런 다음 에이전트를 재시작하여 설정 변경사항을 적용합니다.
환경 변수 설정:
**참고: 컨테이너화된 환경의 모범 사례로서, Datadog은 태그 및 환경 변수를 설정할 때 통합 서비스 태깅을 사용할 것을 권장합니다. 통합 서비스 태깅은 세 가지 표준 태그: env
, service
, version
을 사용하여 Datadog 텔레메트리를 하나로 묶습니다. 통합 태깅으로 환경 설정하는 방법을 알아보려면 전용 [통합 서비스 태깅][9] 설명서를 참조하세요.
키-값 저장소가 템플릿 소스로 활성화되어 있는 경우 에이전트는 키/datadog/check_configs
에서 템플릿을 찾습니다. 자동 탐지에서는 다음과 같은 키-값 위계가 필요합니다:
/datadog/
check_configs/
<CONTAINER_IDENTIFIER>/
- check_names: ["<INTEGRATION_NAME>"]
- init_configs: ["<INIT_CONFIG>"]
- instances: ["<INSTANCE_CONFIG>"]
...
참고: 자동 탐지는 지정된 컨테이너에 특정 설정을 적용하기 위해 키-값 저장소 사용 시 <CONTAINER_IDENTIFIER>
와 .spec.containers[0].image
를 조합하여 image로 컨테이너를 식별합니다.
values.yaml
파일에는 정적 및 자동 탐지 통합 검사를 모두 정의하는 confd
섹션이 포함되어 있습니다. 샘플 values.yaml에서 인라인 예제를 찾을 수 있습니다. 각 키는 에이전트의 conf.d
디렉토리에서 파일이 됩니다.
confd:
<INTEGRATION_NAME>.yaml: |-
ad_identifiers:
- <INTEGRATION_AUTODISCOVERY_IDENTIFIER>
init_config:
- <INIT_CONFIG>
instances:
- <INSTANCES_CONFIG>
<INTEGRATION_AUTODISCOVERY_IDENTIFIER>
에 대한 자세한 정보는 자동 탐지 컨테이너 식별자를 참조하세요
참고: Helm 차트에는 에이전트 검사와 클러스터 검사를 위한 두 개의 confd
섹션이 있습니다. 클러스터 에이전트를 사용하고 클러스터 검사를 위해 자동 탐지를 설정하려는 경우 클러스터 검사 설정 예제를 따르고, 반드시 cluster_check: true
를 포함해야 합니다. 자세한 내용은 클러스터 검사를 참조하세요.