- 필수 기능
- 시작하기
- 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+=`각 시나리오별 예시 템플릿을 통해 컨테이너화된 환경에서 통합이 어떻게 구성되는지 확인하세요.
컨테이너 및 통합에 대한 자세한 내용은 Docker 및 통합 및 Kubernetes 및 통합을 참고하세요.
모든 예제는 Datadog의 Autodiscovery 기능을 활용합니다. 이 기능을 사용하면 지정된 컨테이너 세트에서 Agent 점검의 구성 템플릿을 정의할 수 있습니다. Autodiscovery에 관한 자세한 내용은 컨테이너 시작하기: Autodiscovery에서 확인하세요.
이 시나리오에서는 컨테이너화된 환경에서 이름 redis
와 일치하는 모든 컨테이너에 Datadog-Redis 통합을 설정하고 구성합니다. redis
라는 컨테이너와 my-custom-redis
라는 컨테이너가 있으며, 두 컨테이너 모두에 Redis 통합을 구성하고자 합니다.
Redis 통합에 기본 자동 설정이 있지만 추가로 password
파라미터를 지정하고 로그 수집을 구성하려고 합니다.
호스트에서 이 통합을 설정한다고 가정할 때, 파라미터는 redisdb.d/conf.yaml.example
을 참조하여 다음을 포함하는 conf.yaml
파일을 생성할 수 있습니다.
init_config:
instances:
- host: localhost
port: 6379
password: <PASSWORD>
logs:
- type: file
path: /var/log/redis_6379.log
source: redis
service: redis_service
<PASSWORD>
는 연결에 사용할 비밀번호입니다.
이 구성을 Redis 컨테이너에 적용하려면 먼저 비밀번호를 REDIS_PASSWORD
라는 환경 변수로 저장하고 다음을 실행합니다.
포드 매니페스트:
Autodiscovery Annotations v2(Datadog Agent v7.36 이상)
apiVersion: v1
kind: Pod
metadata:
name: redis
annotations:
ad.datadoghq.com/redis.checks: |
{
"redisdb": {
"instances": [
{
"host": "%%host%%",
"port":"6379",
"password":"%%env_REDIS_PASSWORD%%"
}
]
}
}
ad.datadoghq.com/redis.logs: |
[
{
"type": "file",
"path": "/var/log/redis_6379.log",
"source": "redis",
"service": "redis_service"
}
]
spec:
containers:
- name: redis
image: redis:latest
ports:
- containerPort: 6379
Autodiscovery Annotations v1
apiVersion: v1
kind: Pod
metadata:
name: redis
annotations:
ad.datadoghq.com/redis.check_names: '["redisdb"]'
ad.datadoghq.com/redis.init_configs: '[{}]'
ad.datadoghq.com/redis.instances: |
[
{
"host": "%%host%%",
"port":"6379",
"password":"%%env_REDIS_PASSWORD%%"
}
]
ad.datadoghq.com/redis.logs: |
[
{
"type": "file",
"path": "/var/log/redis_6379.log",
"source": "redis",
"service": "redis_service"
}
]
spec:
containers:
- name: redis
image: redis:latest
ports:
- containerPort: 6379
docker-compose.yaml
Datadog Agent v7.36 이상:
labels:
com.datadoghq.ad.checks: '{"redisdb": {"instances": [{"host": "%%host%%","port":"6379","password":"%%env_REDIS_PASSWORD%%"}], "logs": [{"type": "file", "path": "/var/log/redis_6379.log", "source": "redis", "service": "redis_service"}]}}'
이전 Agent 버전:
labels:
com.datadoghq.ad.check_names: '["redisdb"]'
com.datadoghq.ad.init_configs: '[{}]'
com.datadoghq.ad.instances: '[{"host": "%%host%%","port":"6379","password":"%%env_REDIS_PASSWORD%%"}]'
com.datadoghq.ad.logs: '[{"type": "file", "path": "/var/log/redis_6379.log", "source": "redis", "service": "redis_service"}]'
호스트에 conf.d/redisdb.d/conf.yaml
파일을 생성합니다.
ad_identifiers:
- redis
init config:
instances:
- host: "%%host%%"
port: "6379"
username: "datadog"
password: "%%env_REDIS_PASSWORD%%"
logs:
- type: "file"
path: "/var/log/redis.log"
source: "redis"
service: "redis_service"
호스트 conf.d/
폴더를 컨테이너화된 에이전트 conf.d
폴더에 마운트합니다.
ConfigMap:
kind: ConfigMap
apiVersion: v1
metadata:
name: redisdb-config-map
namespace: default
data:
redisdb-config: |-
ad_identifiers:
- redis
init_config:
instances:
- host: "%%host%%"
port: "6379"
password: "%%env_REDIS_PASSWORD%%"
logs:
- type: "file"
path: "/var/log/redis_6379.log"
source: "redis"
service: "redis_service"
그런 다음 매니페스트에서 volumeMounts
와 volumes
를 정의합니다.
# [...]
volumeMounts:
# [...]
- name: redisdb-config-map
mountPath: /conf.d/redisdb.d
# [...]
volumes:
# [...]
- name: redisdb-config-map
configMap:
name: redisdb-config-map
items:
- key: redisdb-config
path: conf.yaml
# [...]
다음 etcd 명령은 사용자 지정 password
매개 변수를 사용하여 Redis 통합 템플릿을 생성합니다.
etcdctl mkdir /datadog/check_configs/redis
etcdctl set /datadog/check_configs/redis/check_names '["redisdb"]'
etcdctl set /datadog/check_configs/redis/init_configs '[{}]'
etcdctl set /datadog/check_configs/redis/instances '[{"host": "%%host%%","port":"6379","password":"%%env_REDIS_PASSWORD%%"}]'
세 값은 각각의 목록입니다. 자동 탐지는 공유 목록 인덱스를 기반으로 목록의 항목들을 통합 설정에 맞춥니다. 이 경우 check_names[0]
, init_configs[0]
및 instances[0]
에서 첫 번째(그리고 유일한) 검사 설정을 구성합니다.
datadog-agent.yaml
:
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
[...]
features:
[...]
override:
nodeAgent:
env:
- name: DD_IGNORE_AUTOCONF
value: redisdb
extraConfd:
configDataMap:
redisdb.yaml: |-
ad_identifiers:
- redis
init_config:
instances:
- host: "%%host%%"
port: 6379
password: "%%env_REDIS_PASSWORD%%"
결과적으로 Agent의 conf.d
디렉터리에 위 구성을 가진 redisdb.yaml
파일이 포함됩니다.
참고: Redis 통합에는 기본 자동 구성이 포함되어 있으며, 이는 Datadog Operator 매니페스트에 설정된 구성보다 우선순위가 높습니다. 따라서 제공된 매니페스트 예시에서는 DD_IGNORE_AUTOCONF
변수를 사용하여 자동 구성을 비활성화합니다.
datadog-values.yaml
:
datadog:
ignoreAutoConfig:
- redisdb
confd:
redisdb.yaml: |-
ad_identifiers:
- redis
init_config:
instances:
- host: "%%host%%"
port: 6379
password: "%%env_REDIS_PASSWORD%%"
결과적으로 Agent는 conf.d
디렉토리에 위 구성을 가진 redisdb.yaml
파일을 포함합니다.
참고: Redis 통합은 기본 자동 구성을 포함하며, 이는 Helm 값에 설정된 구성보다 우선합니다. 이 때문에 예시에서는 datadog.ignoreAutoConfig
를 사용하여 자동 구성을 비활성화합니다.
다음 모든 예시에서는 Autodiscovery 템플릿 변수를 사용합니다:
%%host%%
는 컨테이너의 IP로 채워집니다.%%env_REDIS_PASSWORD%%
는 Agent 프로세스가 인식하는 REDIS_PASSWORD
라는 환경 변수로 채워집니다.이 시나리오에서는 컨테이너화된 환경에서 이름 apache
와 일치하는 모든 컨테이너에 Datadog-Apache 통합을 설정하고 구성합니다. 또한 /website_1
과 /website_2
엔드포인트를 테스트하기 위한 HTTP Check도 설정합니다.
Apache 통합이 제공하는 기본 자동 구성 외에 수집 간격을 30초로 설정하려고 합니다.
호스트에서 이 통합을 구성한다고 가정하면 apache.d/conf.yaml.example
과 http_check.d/conf.yaml.example
의 구성 옵션을 참조할 수 있습니다. 두 conf.yaml
파일을 생성해야 합니다.
apache.d/conf.yaml
init_config:
instances:
- apache_status_url: http://%%host%%/server-status?auto
min_collection_interval: 30
http_check.d/conf.yaml
init_config:
instances:
- name: my_website_1
url: http://%%host%%/website_1
timeout: 1
- name: my_website_2
url: http://%%host%%/website_2
timeout: 1
Autodiscovery Annotations v2 (Datadog Agent v7.36 이상)
apiVersion: v1
kind: Pod
metadata:
name: apache
annotations:
ad.datadoghq.com/apache.checks: |
{
"apache": {
"instances": [
{
"apache_status_url": "http://%%host%%/server-status?auto",
"min_collection_interval": 30
}
]
},
"http_check": {
"instances": [
{
"name": "my_website_1",
"url": "http://%%host%%/website_1",
"timeout": 1
},
{
"name": "my_website_2",
"url": "http://%%host%%/website_2",
"timeout": 1
}
]
}
}
labels:
name: apache
spec:
containers:
- name: apache
# (...)
Autodiscovery Annotations v1
apiVersion: v1
kind: Pod
metadata:
name: apache
annotations:
ad.datadoghq.com/apache.check_names: '["apache","http_check"]'
ad.datadoghq.com/apache.init_configs: '[{},{}]'
ad.datadoghq.com/apache.instances: |
[
[
{
"apache_status_url": "http://%%host%%/server-status?auto",
"min_collection_interval": 30
}
],
[
{
"name": "my_website_1",
"url": "http://%%host%%/website_1",
"timeout": 1
},
{
"name": "my_website_2",
"url": "http://%%host%%/website_2",
"timeout": 1
}
]
]
labels:
name: apache
spec:
containers:
- name: apache
# (...)
Dockerfile
Datadog Agent v7.36 이상:
LABEL "com.datadoghq.ad.checks"='{"apache": {"instances": [{"apache_status_url": "http://%%host%%/server-status?auto", "min_collection_interval": 30}]}, "http_check":{"instances": [{"name":"my_website_1","url":"http://%%host%%/website_1","timeout":1},{"name":"my_website_2","url":"http://%%host%%/website_2","timeout":1}]}}'
이전 Agent 버전:
LABEL "com.datadoghq.ad.check_names"='["apache", "http_check"]'
LABEL "com.datadoghq.ad.init_configs"='[{},{}]'
LABEL "com.datadoghq.ad.instances"='[[{"apache_status_url": "http://%%host%%/server-status?auto", "min_collection_interval": 30}],[{"name":"my_website_1","url":"http://%%host%%/website_1","timeout":1},{"name":"my_website_2","url":"http://%%host%%/website_2","timeout":1}]]'
conf.d/
와 conf.d/apache.d
폴더를 생성하세요.conf.d/apache.d/conf.yaml
에 추가합니다.ad_identifiers:
- apache
init_config:
instances:
- apache_status_url: http://%%host%%/server-status?auto
min_collection_interval: 30
conf.d/http_check.d
폴더를 생성하세요.conf.d/http_check.d/conf.yaml
에 추가합니다.ad_identifiers:
- apache
init_config:
instances:
- name: "<WEBSITE_1>"
url: "http://%%host%%/website_1"
timeout: 1
- name: "<WEBSITE_2>"
url: "http://%%host%%/website_2"
timeout: 1
conf.d/
폴더를 컨테이너화된 에이전트 conf.d/
폴더에 마운트합니다.다음 ConfigMap은 apache
및 http_check
컨테이너에 대한 통합 템플릿을 정의합니다:
kind: ConfigMap
apiVersion: v1
metadata:
name: apache-config-map
namespace: default
data:
apache-config: |-
ad_identifiers:
- apache
init_config:
instances:
- apache_status_url: http://%%host%%/server-status?auto
min_collection_interval: 30
http-check-config: |-
ad_identifiers:
- apache
init_config:
instances:
- name: "<WEBSITE_1>"
url: "http://%%host%%/website_1"
timeout: 1
- name: "<WEBSITE_2>"
url: "http://%%host%%/website_2"
timeout: 1
매니페스트에서 volumeMounts
와 volumes
를 정의합니다:
# [...]
volumeMounts:
# [...]
- name: apache-auto-config
mountPath: /conf.d/apache.d/
- name: http-auto-config
mountPath: /conf.d/http_check.d/
# [...]
volumes:
# [...]
- name: apache-auto-config
configMap:
name: apache-config-map
items:
- key: apache-config
path: auto_conf.yaml
- name: http-auto-config
configMap:
name: apache-config-map
items:
- key: http-check-config
path: auto_conf.yaml
# [...]
etcdctl set /datadog/check_configs/apache/check_names '["apache", "http_check"]'
etcdctl set /datadog/check_configs/apache/init_configs '[{}, {}]'
etcdctl set /datadog/check_configs/apache/instances '[[{"apache_status_url": "http://%%host%%/server-status?auto", "min_collection_interval": 30}],[{"name": "<WEBSITE_1>", "url": "http://%%host%%/website_1", timeout: 1},{"name": "<WEBSITE_2>", "url": "http://%%host%%/website_2", timeout: 1}]]'
참고: 각 목록의 순서가 중요합니다. 에이전트는 설정의 모든 부분이 세 목록에 걸쳐 동일한 인덱스를 갖는 경우에만 HTTP 검사 설정을 올바르게 생성할 수 있습니다.
apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
global:
[...]
features:
[...]
override:
nodeAgent:
env:
- name: DD_IGNORE_AUTOCONF
value: apache
extraConfd:
configDataMap:
apache.yaml: |-
ad_identifiers:
- apache
init_config:
instances:
- apache_status_url: "http://%%host%%/server-status?auto"
min_collection_interval: 30
http_check.yaml: |-
ad_identifiers:
- apache
init_config:
instances:
- name: "my_website_1"
url: "http://%%host%%/website_1"
timeout: 1
- name: "my_website_2"
url: "http://%%host%%/website_2"
timeout: 1
참고: Apache 통합에는 기본 자동 구성이 포함되어 있으며, 이는 Datadog Operator 매니페스트에 설정된 구성보다 우선 순위가 높습니다. 따라서 제공된 매니페스트 예시에서는 DD_IGNORE_AUTOCONF
변수를 사용하여 자동 구성을 비활성화합니다.
datadog-values.yaml
:
datadog:
ignoreAutoConfig:
- apache
confd:
apache.yaml: |-
ad_identifiers:
- apache
init_config:
instances:
- apache_status_url: "http://%%host%%/server-status?auto"
min_collection_interval: 30
http_check.yaml: |-
ad_identifiers:
- apache
init_config:
instances:
- name: "my_website_1"
url: "http://%%host%%/website_1"
timeout: 1
- name: "my_website_2"
url: "http://%%host%%/website_2"
timeout: 1
참고: Apache 통합에는 기본 자동 구성이 포함되어 있으며, 이는 Helm 값에 설정된 구성에 우선합니다. 따라서 제공된 예시에서는 datadog.ignoreAutoConfig
을 사용하여 자동 구성을 비활성화합니다.
다음 모든 예에서는 Autodiscovery 템플릿 변수를 사용합니다:
%%host%%
는 컨테이너의 IP로 채워집니다.