에이전트 기본 사용법

에이전트를 사용하려면 플랫폼을 선택합니다.

integration
integration
integration
integration
integration
integration
integration
integration
integration
integration
integration
integration
integration
integration
integration
integration
integration
integration
integration
integration

에이전트 아키텍처

에이전트 v6 및 v7는 인프라스트럭처 메트릭과 로그를 수집하는 부분과 DogStatsD 메트릭 수신을 담당하는 부분으로 주요 프로세스가 구성되어 있습니다. 이 프로세스의 주요 구성 요소는 다음과 같습니다.

  • 컬렉터(Collector)에서는 점검을 실행하고 메트릭을 수집합니다.
  • 포워더(Forwarder)에서는 Datadog으로 페이로드를 보냅니다.

datadog.yaml 설정 파일에서 활성화한 경우, 에이전트에서 선택 사항인 프로세스 두 개를 생성합니다.

  • 애플리케이션 성능 모니터링(APM) 에이전트는 트레이스(기본적으로 활성화됨)을 수집하는 프로세스입니다.
  • 프로세스 에이전트는 실시간 프로세스 정보를 수집하는 프로세스로, 기본적으로 사용 가능한 컨테이너만 수집하며, 그렇지 않으면 실행 중지됩니다.

Windows 서비스는 다음 목록을 참고하세요.

서비스설명
DatadogAgentDatadog 에이전트
datadog-trace-agentDatadog 트레이스 에이전트
datadog-process-agentDatadog 프로세스 에이전트

에이전트는 기본적으로 Linux에서 포트 3개를 바인딩하고, Windows 및 OSX에서는 포트 4개를 바인딩합니다.

포트설명
5000에이전트의 런타임 메트릭을 표시합니다.
5001에이전트 CLI와 GUI에서 사용되며, 실행 중인 에이전트에 명령을 보내고 정보를 가져올 때 사용됩니다.
5002Windows 및 OSX에서 GUI 서버를 제공할 때 사용됩니다.
8125DogStatsD 서버가 외부 메트릭을 수신할 때 사용됩니다.

포트 설정에 관한 자세한 내용은 네트워크 트래픽을 참고하세요.

컬렉터(Collector)

컬렉터는 15초마다 표준 메트릭을 모두 수집합니다. 에이전트 버전 6에는 Python 2.7 인터프리터가 내장되어 있어 통합 및 커스텀 점검를 실행합니다.

포워더(Forwarder)

에이전트 포워더(Forwarder)는 HTTPS를 통해 메트릭을 Datadog으로 전송합니다. 버퍼링은 네트워크 분할이 메트릭 보고에 영향을 미치는 것을 방지합니다. 메트릭은 크기 제한이나 미결 전송 요청 수 제한에 도달할 때까지 메모리에서 버퍼링됩니다. 그 후 가장 오래된 메트릭은 포워더 메모리 사용량을 관리 가능하게 유지하기 위해 삭제됩니다. 로그는 Datadog의 SSL 암호화 TCP 연결을 통해 전송됩니다.

DogStatsD

v6에서 DogStatsD는 Etsy’s StatsD 메트릭 집계 데몬을 Golang으로 구현한 것입니다. UDP 또는 유닉스 소켓을 통해 임의 메트릭을 수신하고 롤업하는 데 사용되므로 지연 시간을 추가하지 않고 커스텀 코드를 계측할 수 있습니다. DogStatsD에서 자세히 알아보세요.

Agent v5 아키텍처

에이전트 v5에는 주요 구성 요소가 4개 있으며, 각 구성 요소는 Python으로 작성된 별도의 프로세스로 실행됩니다.

  • 컬렉터(Collector)(agent.py): 컬렉터(Collector)가 현재 시스템에서 설정된 통합에 점검을 실행하고 메모리 및 CPU와 같은 시스템 메트릭을 캡처합니다.
  • DogStatsD(dogstatsd.py): 애플리케이션에서 커스텀 메트릭을 보낼 수 있는 StatsD 호환 백엔드 서버입니다.
  • 포워더(Forwarder)(ddagent.py): 포워더(Forwarder)는 DogStatsD와 컬렉터(Collector)에서 모두 데이터를 검색하여 대기열에 올린 후 Datadog로 전송합니다.
  • SupervisorD: 이는 모두 감독 프로세스 하나로 제어됩니다. 모든 파트를 함께 실행하지 않는 한 각 애플리케이션의 오버헤드를 제한하기 위해 별도로 유지되나, 일반적으로 모든 파트를 함께 실행하는 것을 권장합니다.

참고: Windows 사용자의 경우 4개의 에이전트 프로세스가 모두 DevOps' best friend 설명과 함께 ddagent.exe의 인스턴스로 표시됩니다.

감독, 권한, 네트워크 포트

SupervisorD 기본 프로세스는 dd-agent 사용자로 실행되며, 분기된 모든 하위 프로세스는 동일한 사용자로 실행됩니다. 이는 Datadog 에이전트가 시작하는 시스템 호출(iostat/netstat) 모두에도 적용됩니다. 에이전트 설정은 /etc/dd-agent/datadog.conf/etc/dd-agent/conf.d에 있습니다. 모든 설정은 dd-agent에서 읽을 수 있어야 합니다. 설정 파일에는 API 키와 메트릭 액세스에 필요한 기타 자격 증명이 포함되어 있으므로 권장 권한은 0600입니다.

다음 포트를 사용할 수 있습니다.

포트설명
tcp/17123일반적인 운영용 포워더
tcp/17124그래파이트 서포트용 포워더
udp/8125DogStatsD

모든 수신 프로세스는 기본적으로 에이전트의 v3.4.1+의 127.0.0.1 및/또는 ::1에 바인딩됩니다. 이전 버전에서는 0.0.0.0에(모든 인터페이스) 바인딩되었습니다. 프록시를 통해 에이전트를 실행하는 방법에 관한 내용은 에이전트 프록시 설정을 참고하세요. 허용할 IP 범위에 관한 내용은 네트워크 트래픽을 참고하세요.

오픈 파일 디스크립터의 권장 개수는 1024개입니다. ulimit -a 명령어를 사용하면 이 값을 볼 수 있습니다. Shell Form Bomb Protection과 같이 권장 값 이하로 어려운 제한이 있는 경우, supervisord.conf에 다음을 추가해 문제를 해결할 수 있습니다.

[supervisord]
minfds = 100  # Your hard limit

GUI

datadog.yaml파일에서 GUI가 실행되는 포트를 설정할 수 있습니다. GUI를 비활성화하려면 해당 포트의 값을 -1로 설정합니다. Windows와 macOS의 경우, GUI은 기본값으로 활성화되어 있고 포트 5002에서 실행됩니다. Linux의 경우 기본적으로 GUI가 비활성화되어 있습니다.

에이전트가 실행 중일 때 datadog-agent launch-gui 명령을 사용하여 기본 웹 브라우저에서 GUI를 엽니다.

참고: 에이전트 GUI는 32비트 Windows 플랫폼에서 지원되지 않습니다.

요건

  1. 브라우저에서 쿠키를 활성화한 상태여야 합니다. GUI는 브라우저에서 토큰을 생성하고 저장하는데, 이를 활용해 GUI 서버와의 모든 커뮤니케이션을 인증합니다.

  2. GUI를 시작하려면 사용자에게 필요한 권한이 있어야 하며 datadog.yaml을 열 수 있으면 GUI를 사용할 수 있습니다.

  3. 보안상의 이유로 로컬 네트워크 인터페이스(localhost/127.0.0.1)에서 GUI에 액세스할 수 있으므로 에이전트가 실행 중인 호스트에서 작업해야 합니다. 즉, VM이나 컨테이너에서 에이전트를 실행하고 호스트 시스템에서 액세스할 수 없습니다.

CLI

에이전트 v6+의 경우 명령줄 인터페이스는 하위 명령을 기반으로 합니다. 하위 명령을 실행하려면 먼저 에이전트 바이너리를 호출하세요.

<AGENT_BIN_PATH> <SUB_COMMAND> <OPTIONS>
하위 명령참고
check지정한 점검을 실행합니다.
configcheck실행 중인 에이전트의 로드 및 해결된 모든 설정을 인쇄합니다.
diagnose시스템에서 연결 진단을 실행합니다.
flare플레어를 수집헤 Datadog에 보냅니다.
health현재 에이전트 상태를 인쇄합니다.
help명령과 관련한 도움말입니다.
hostname에이전트에서 사용하는 호스트 이름을 인쇄합니다.
import이전 버전의 에이전트에서 설정 파일을 가져오고 변환합니다.
launch-guiDatadog 에이전트 GUI를 시작합니다.
restart에이전트를 다시 시작합니다.
restart-service서비스 제어 관리자 내에서 에이전트를 다시 시작합니다.
start에이전트를 시작합니다.
start-service서비스 제어 관리자 내에서 에이전트를 시작합니다.
status현재 에이전트 상태를 인쇄합니다.
stream-logs실행 중인 에이전트에서 처리 중인 로그를 스트림합니다.
stop에이전트를 중지합니다.
stopservice서비스 제어 관리자 내에서 에이전트를 중지합니다.
version버전 정보를 인쇄합니다.

참고: 일부 옵션에는 도움말 메시지에 설명된 자체 플래그 및 옵션 세트가 있습니다. 예를 들어 check 하위 명령을 사용하는 방법을 보려면 다음을 실행합니다.

<AGENT_BIN_PATH> check --help

에이전트 오버헤드

다음은 Datadog 에이전트 리소스 사용량의 예시입니다. Amazon EC2 시스템의 c5.xlarge 인스턴스(4VCPU/8GB RAM)에서 테스트를 실행했으며 리소스가 비슷한 ARM64 기반 인스턴스에서도 비슷한 성능을 보였습니다. 에이전트 자체를 모니터링하기 위한 프로세스 검사와 datadog-agent가 기본 구성으로 실행되었습니다. 더 많은 통합을 사용하도록 설정하면 에이전트 리소스 사용량이 증가할 수 있습니다. JMX 점검을 활성화하면 모니터링되는 JVM에 노출된 Bean 수에 따라 더 많은 메모리를 사용하도록 에이전트를 강제합니다. 트레이스 에이전트와 프로세스 에이전트를 활성화하면 리소스 소모도 증가합니다.

  • 에이전트 테스트 버전: 7.34.0
  • CPU: 평균 CPU 사용량의 ~ 0.08%
  • 메모리: RAM 사용량의 ~ 130MB(RSS 메모리)
  • 네트워크 대역폭: ~ 140B/s ▼ | 800B/s ▲
  • 디스크:
    • 분포에 따라 Linux 830MB에서 880MB까지
    • Windows: 870MB

로그 수집:

아래 결과는 HTTP 포워더가 활성화된 파일에서 초당 110KB의 로그 수를 수집한 결과입니다. 사용 가능한 여러 압축 레벨에 따른 리소스 사용의 변화를 보여줍니다.

  • 에이전트 테스트 버전: 6.15.0
  • CPU: 평균 CPU 사용량의 ~ 1.5%
  • 메모리: RAM 사용량의 ~ 95MB
  • 네트워크 대역폭: ~ 14KB/s ▲
  • 에이전트 테스트 버전: 6.15.0
  • CPU: 평균적으로 사용되는 CPU의 ~ 1%
  • 메모리: RAM 사용량의 ~ 95MB
  • 네트워크 대역폭: ~ 20KB/s ▲
  • 에이전트 테스트 버전: 6.15.0
  • CPU: 평균 사용 CPU의 ~ 0.7%
  • 메모리: RAM 사용량의 ~ 90MB(RSS 메모리)
  • 네트워크 대역폭: ~ 200KB/s ▲

Datadog 에이전트 사용 방법 더 자세히 알아보기

에이전트 업데이트

지정된 호스트의 부 버전 두 개 사이에 Datadog 에이전트 코어를 수동으로 업데이트하려면 플랫폼에 해당하는 설치 명령을 실행합니다.

참고: 특정 에이전트 통합을 수동으로 업데이트하려면 통합 관리 가이드를 참고하세요.

설정 파일

에이전트 설정 파일 설명서를 참고하세요.

Datadog 사이트

에이전트의 기본 설정 파일, datadog.yaml, site을 편집해 파라미터를 설정합니다(기본값 datadoghq.com).

site: 

참고: site 파라미터와 관련한 자세한 내용은 Datadog 사이트 설명서로 시작하기를 참고하세요.

로그 위치

에이전트 로그 파일 설명서를 참고하세요.

참고 자료