로그 수집 및 통합

개요

로그 수집을 시작하려면 아래 구성 옵션을 선택하세요. 이미 log-shipper 데몬을 사용하고 있다면 Rsyslog, Syslog-ng, NXlog, FluentD 또는 Logstash 전용 문서를 참조하세요

로그를 Datadog에 직접 전송하려면 사용 가능한 Datadog 로그 수집 엔드포인트 목록을 참조하세요.

참고: JSON 형식의 로그를 Datadog에 보낼 때 Datadog 내에서 특정 의미를 갖는 예약된 속성 세트가 있습니다. 자세한 내용은 예약된 속성 섹션을 참조하세요.

설정

  1. Datadog Agent를 설치합니다.
  2. 로그 수집을 활성화하려면 Agent의 기본 구성 파일(datadog.yaml)에서 logs_enabled: falselogs_enabled: true로 변경합니다. 자세한 내용과 예시는 Host Agent Log 로그 수집 문서를 참조하세요.
  3. 활성화되면 Datadog Agent는 로그 파일 추적 또는 UDP/TCP를 통해 전송된 로그 수신, 로그 필터링 또는 민감한 데이터 삭제, 여러 행 로그 집계를 위한 목적으로 설정될 수 있습니다.
  1. Datadog Agent를 설치합니다.
  2. 로그 수집을 활성화하려면 Agent의 기본 구성 파일(datadog.yaml)에서 logs_enabled: falselogs_enabled: true로 변경합니다. 자세한 내용과 예시는 Host Agent Log 수집 문서를 참조하세요.
  3. 애플리케이션 언어 설치 지침에 따라 로거를 구성하고 로그 생성을 시작하세요.
Java
Python
go
Ruby
.Net
PHP
Node.js
Javascript
React Native
Android
ios
Flutter
Roku
Kotlin Multiplatform

컨테이너 또는 오케스트레이터 공급자를 선택하고 로그 수집 지침을 따르세요.

Docker
Kubernetes
Red Hat OpenShift
Amazon ECS
ECS Fargate

참고:

환경에서 Datadog으로 로그를 전송하는 AWS Lambda 함수인 Datadog Forwarder를 사용합니다. AWS 서버리스 환경에서 로그 수집을 활성화하려면 Datadog Forwarder 설명서를 참조하세요.

로그를 자동으로 수집하여 Datadog에 전달하는 방법을 보려면 아래에서 클라우드 제공업체를 선택하세요.

Docker
Kubernetes
Amazon ECS
Amazon ECS

Datadog 통합과 로그 수집은 서로 연결되어 있습니다. 통합의 기본 구성 파일을 사용하여 Datadog에서 전용 프로세서, 파싱패싯을 활성화할 수 있습니다. 통합으로 로그 수집을 시작하려면 다음 지침을 따르세요.

  1. Integrations 페이지에서 통합을 선택하고 설정 지침을 따릅니다.
  2. 통합의 로그 수집 지침을 따릅니다. 이 섹션에서는 해당 통합 conf.yaml 파일에서 로그 섹션의 주석 처리를 제거하고 환경에 맞게 구성하는 방법을 다룹니다.

데이터 전송 수수료 절감

Datadog의 Network Performance Monitoring을 사용하여 조직에서 처리량이 가장 많은 애플리케이션을 파악하세요. 지원되는 프라이빗 연결을 통해 Datadog에 연결하고 프라이빗 네트워크를 통해 데이터를 전송함으로써 공용 인터넷을 사용하지 않고 데이터 전송 수수료를 절감할 수 있습니다. 프라이빗 링크로 전환한 후에는 Datadog의 Cloud Cost Management 도구를 사용하여 클라우드 비용의 감소와 영향을 모니터링하세요.

자세한 내용은 데이터 전송 비용을 절감하면서 Datadog에 로그를 보내는 방법을 참조하세요.

추가 구성 옵션

로깅 엔드포인트

Datadog은 SSL 암호화 연결과 암호화되지 않은 연결 모두에 대한 로깅 엔드포인트를 제공합니다. 가능하면 암호화된 엔드포인트를 사용하시길 권장합니다. Datadog Agent는 암호화된 엔드포인트를 사용하여 Datadog에 로그를 보냅니다. 자세한 내용은 Datadog 보안 문서에서 확인할 수 있습니다.

지원되는 엔드포인트

Datadog 사이트에서 지원되는 엔드포인트를 보려면 페이지 오른쪽에 있는 사이트 선택기 드롭다운을 사용하세요.

사이트유형엔드포인트포트설명
USHTTPShttp-intake.logs.datadoghq.com443커스텀 포워더가 HTTPS를 통해 JSON 또는 일반 텍스트 형식으로 로그를 보내는 데 사용됩니다. Logs HTTP API 문서를 참조하세요.
USHTTPSagent-http-intake-pci.logs.datadoghq.com443Agent가 PCI DSS 컴플라이언스가 활성화된 조직에 HTTPS를 통해 로그를 보내는 데 사용됩니다. 자세한 내용은 로그 관리를 위한 PCI DSS 컴플라이언스를 참조하세요.
USHTTPSagent-http-intake.logs.datadoghq.com443Agent가 HTTPS를 통해 JSON 형식으로 로그를 보내는 데 사용됩니다. Host Agent Log 수집 문서를 참조하세요.
USHTTPSlambda-http-intake.logs.datadoghq.com443Lambda 함수가 HTTPS를 통해 원시값, Syslog 또는 JSON 형식으로 로그를 전송하는 데 사용됩니다.
USHTTPSlogs.443Browser SDK에서 HTTPS를 통해 JSON 형식으로 로그를 보내는 데 사용됩니다.
USTCPagent-intake.logs.datadoghq.com10514Agent가 TLS 없이 로그를 보내는 데 사용됩니다.
USTCP 및 TLSagent-intake.logs.datadoghq.com10516Agent가 TLS를 통해 로그를 보내는 데 사용됩니다.
USTCP 및 TLSintake.logs.datadoghq.com443SSL로 암호화된 TCP 연결을 통해 원시값, Syslog 또는 JSON 형식으로 로그를 전송하기 위해 커스텀 포워더에서 사용됩니다.
USTCP 및 TLSfunctions-intake.logs.datadoghq.com443Azure 함수에서 SSL로 암호화된 TCP 연결을 통해 원시값, Syslog 또는 JSON 형식으로 로그를 보내는 데 사용됩니다. 참고: 이 엔드포인트는 다른 클라우드 제공업체에 유용할 수 있습니다.
USTCP 및 TLSlambda-intake.logs.datadoghq.com443SSL로 암호화된 TCP 연결을 통해 원시값, Syslog 또는 JSON 형식으로 로그를 전송하기 위해 Lambda 함수에서 사용됩니다.

사이트유형엔드포인트포트설명
EUHTTPShttp-intake.logs.datadoghq.eu443커스텀 포워더가 HTTPS를 통해 JSON 또는 일반 텍스트 형식으로 로그를 보내는 데 사용됩니다. Logs HTTP API 문서를 참조하세요.
EUHTTPSagent-http-intake.logs.datadoghq.eu443Agent가 HTTPS를 통해 JSON 형식으로 로그를 보내는 데 사용됩니다. Host Agent Log 수집 문서를 참조하세요.
EUHTTPSlambda-http-intake.logs.datadoghq.eu443Lambda 함수가 HTTPS를 통해 원시값, Syslog 또는 JSON 형식으로 로그를 전송하는 데 사용됩니다.
EUHTTPSlogs.443Browser SDK에서 HTTPS를 통해 JSON 형식으로 로그를 보내는 데 사용됩니다.
EUTCP 및 TLSagent-intake.logs.datadoghq.eu443SSL로 암호화된 TCP 연결을 통해 protobuf 형식으로 로그를 전송하기 위해 Agent에서 사용됩니다.
EUTCP 및 TLSfunctions-intake.logs.datadoghq.eu443Azure 함수에서 SSL로 암호화된 TCP 연결을 통해 원시값, Syslog 또는 JSON 형식으로 로그를 보내는 데 사용됩니다. 참고: 이 엔드포인트는 다른 클라우드 제공업체에 유용할 수 있습니다.
EUTCP 및 TLSlambda-intake.logs.datadoghq.eu443SSL로 암호화된 TCP 연결을 통해 원시값, Syslog 또는 JSON 형식으로 로그를 전송하기 위해 Lambda 함수에서 사용됩니다.

사이트유형엔드포인트포트설명
US3HTTPShttp-intake.logs.us3.datadoghq.com443커스텀 포워더가 HTTPS를 통해 JSON 또는 일반 텍스트 형식으로 로그를 보내는 데 사용됩니다. Logs HTTP API 문서를 참조하세요.
US3HTTPSlambda-http-intake.logs.us3.datadoghq.com443Lambda 함수가 HTTPS를 통해 원시값, Syslog 또는 JSON 형식으로 로그를 전송하는 데 사용됩니다.
US3HTTPSagent-http-intake.logs.us3.datadoghq.com443Agent가 HTTPS를 통해 JSON 형식으로 로그를 보내는 데 사용됩니다. Host Agent Log 수집 문서를 참조하세요.
US3HTTPSlogs.443Browser SDK에서 HTTPS를 통해 JSON 형식으로 로그를 보내는 데 사용됩니다.

사이트유형엔드포인트포트설명
US5HTTPShttp-intake.logs.us5.datadoghq.com443커스텀 포워더가 HTTPS를 통해 JSON 또는 일반 텍스트 형식으로 로그를 보내는 데 사용됩니다. Logs HTTP API 문서를 참조하세요.
US5HTTPSlambda-http-intake.logs.us5.datadoghq.com443Lambda 함수가 HTTPS를 통해 원시값, Syslog 또는 JSON 형식으로 로그를 전송하는 데 사용됩니다.
US5HTTPSagent-http-intake.logs.us5.datadoghq.com443Agent가 HTTPS를 통해 JSON 형식으로 로그를 보내는 데 사용됩니다. Host Agent Log 수집 문서를 참조하세요.
US5HTTPSlogs.443Browser SDK에서 HTTPS를 통해 JSON 형식으로 로그를 보내는 데 사용됩니다.

사이트유형엔드포인트포트설명
AP1HTTPShttp-intake.logs.ap1.datadoghq.com443커스텀 포워더가 HTTPS를 통해 JSON 또는 일반 텍스트 형식으로 로그를 보내는 데 사용됩니다. Logs HTTP API 문서를 참조하세요.
AP1HTTPSlambda-http-intake.logs.ap1.datadoghq.com443Lambda 함수가 HTTPS를 통해 원시값, Syslog 또는 JSON 형식으로 로그를 전송하는 데 사용됩니다.
AP1HTTPSagent-http-intake.logs.ap1.datadoghq.com443Agent가 HTTPS를 통해 JSON 형식으로 로그를 보내는 데 사용됩니다. Host Agent Log 수집 문서를 참조하세요.
AP1HTTPSlogs.443Browser SDK에서 HTTPS를 통해 JSON 형식으로 로그를 보내는 데 사용됩니다.

사이트유형엔드포인트포트설명
US1-FEDHTTPShttp-intake.logs.ddog-gov.com443커스텀 포워더가 HTTPS를 통해 JSON 또는 일반 텍스트 형식으로 로그를 보내는 데 사용됩니다. Logs HTTP API 문서를 참조하세요.
US1-FEDHTTPSlambda-http-intake.logs.ddog-gov.datadoghq.com443Lambda 함수가 HTTPS를 통해 원시값, Syslog 또는 JSON 형식으로 로그를 전송하는 데 사용됩니다.
US1-FEDHTTPSagent-http-intake.logs.ddog-gov.datadoghq.com443Agent가 HTTPS를 통해 JSON 형식으로 로그를 보내는 데 사용됩니다. Host Agent Log 수집 문서를 참조하세요.
US1-FEDHTTPSlogs.443Browser SDK에서 HTTPS를 통해 JSON 형식으로 로그를 보내는 데 사용됩니다.

커스텀 로그 전달

TCP 또는 HTTP를 통해 로그를 전달할 수 있는 모든 사용자 정의 프로세스 또는 로깅 라이브러리를 Datadog Logs와 함께 사용할 수 있습니다.

HTTP를 통해 Datadog 플랫폼에 로그를 보낼 수 있습니다. 시작하려면 Datadog Log HTTP API 문서를 참조하세요.

OpenSSL, GnuTLS 또는 다른 SSL/TLS 클라이언트를 사용하여 연결을 수동으로 테스트할 수 있습니다. GnuTLS의 경우 다음 명령을 실행합니다.

gnutls-cli intake.logs.datadoghq.com:10516

OpenSSL의 경우 다음 명령을 실행합니다.

openssl s_client -connect intake.logs.datadoghq.com:10516

로그 항목 앞에 Datadog API 키를 붙이고 페이로드를 추가해야 합니다.

<DATADOG_API_KEY> Log sent directly using TLS

페이로드는 또는 예제에 작성된 대로 Log sent directly using TLS는 원시값, Syslog 또는 JSON 형식일 수 있습니다. 페이로드가 JSON 형식인 경우 Datadog은 해당 속성을 자동으로 파싱합니다.

<DATADOG_API_KEY> {"message":"json formatted log", "ddtags":"env:my-env,user:my-user", "ddsource":"my-integration", "hostname":"my-hostname", "service":"my-service"}

OpenSSL, GnuTLS 또는 다른 SSL/TLS 클라이언트를 사용하여 연결을 수동으로 테스트할 수 있습니다. GnuTLS의 경우 다음 명령을 실행합니다.

gnutls-cli tcp-intake.logs.datadoghq.eu:443

OpenSSL의 경우 다음 명령을 실행합니다.

openssl s_client -connect tcp-intake.logs.datadoghq.eu:443

로그 항목 앞에 Datadog API 키를 붙이고 페이로드를 추가해야 합니다.

<DATADOG_API_KEY> Log sent directly using TLS

페이로드는 또는 예제에 작성된 대로 Log sent directly using TLS는 원시값, Syslog 또는 JSON 형식일 수 있습니다. 페이로드가 JSON 형식인 경우 Datadog은 해당 속성을 자동으로 파싱합니다.

<DATADOG_API_KEY> {"message":"json formatted log", "ddtags":"env:my-env,user:my-user", "ddsource":"my-integration", "hostname":"my-hostname", "service":"my-service"}

이 사이트에는 TCP 엔드포인트가 권장되지 않습니다. 자세한 내용은 지원 팀에 문의하세요.

이 사이트에서는 TCP 엔드포인트가 지원되지 않습니다.

참고:

  • HTTPS API는 최대 1MB 크기의 로그를 지원합니다. 그러나 최적의 성능을 위해서는 개별 로그가 25K바이트를 초과하지 않는 것이 좋습니다. 로깅을 위해 Datadog Agent를 사용하는 경우 로그를 256kB(256000바이트)로 분할하도록 구성됩니다.
  • 로그 이벤트에는 태그가 100개 미만이어야 하며, 각 태그는 256자를 초과할 수 없고 하루에 최대 1,000만 개의 고유 태그를 사용할 수 있습니다.
  • JSON 형식으로 변환된 로그 이벤트에는 256개 미만의 속성이 포함되어야 합니다. 각 속성의 키는 50자 미만이어야 하고 20개 미만의 연속 수준에 중첩되어야 하며 패싯으로 승격된 경우 해당 값은 1024자 미만이어야 합니다.
  • 로그 이벤트는 과거 최대 18시간의 타임스탬프와 함께 제출될 수 있습니다.

이러한 제한을 준수하지 않는 로그 이벤트는 시스템에 의해 변환되거나 잘릴 수 있으며, 제공된 시간 범위를 벗어나는 경우 색인이 생성되지 않을 수 있습니다. 그러나 Datadog은 가능한 한 많은 사용자 데이터를 보존하려고 노력합니다.

인덱싱된 로그에만 적용되는 필드에는 추가 잘림이 있습니다. 값은 메시지 필드의 경우 75KiB, 메시지가 아닌 필드의 경우 25KiB로 잘립니다. Datadog은 여전히 ​​전체 텍스트를 저장하며 Logs Explorer의 일반 목록 쿼리에 계속 표시됩니다. 그러나 잘린 필드별로 로그를 그룹화하거나 해당 특정 필드를 표시하는 유사한 작업을 수행하는 등 그룹화된 쿼리를 수행할 때는 잘린 버전이 표시됩니다.

속성 및 태그

속성은 Log Explorer에서 필터링 및 검색에 사용되는 로그 패싯을 규정합니다. 예약된 속성과 표준 속성 목록을 알아보고 로그 속성과 별칭을 사용하여 명명 규칙을 지원하는 방법을 알아보려면 전용 속성 및 별칭 문서를 참조하세요.

스택 추적에 대한 속성

스택 추적을 로깅할 때 Datadog 애플리케이션 내에 로거 이름, 현재 스레드, 오류 유형, 스택 추적 자체와 같은 전용 UI 표시가 있는 특정 속성이 있습니다.

Attributes for a parsed stack trace

이러한 기능을 활성화하려면 다음 속성 이름을 사용합니다.

속성설명
logger.name로거의 이름
logger.thread_name현재 스레드의 이름
error.stack실제 스택 추적
error.message스택 추적에 포함된 오류 메시지
error.kind오류의 유형 또는 “종류”(예: “Exception” 또는 “OSError”)

참고: 기본적으로 통합 파이프라인은 기본 로깅 라이브러리 파라미터를 해당 특정 속성으로 리매핑하고 스택 추적 또는 트레이스백을 파싱하여 자동으로 error.messageerror.kind를 추출하려고 시도합니다.

자세한 내용은 전체 소스 코드 속성 문서를 참조하세요.

다음 단계

로그가 수집되고 수집되면 Log Explorer에서 사용할 수 있습니다. Log Explorer는 로그에 대한 알림을 검색하고 강화하며, 확인할 수 있는 곳입니다. 로그 데이터 분석을 시작하려면 Log Explorer 문서를 참조하거나 아래의 추가 로그 관리 문서를 참조하세요.

Logs appearing in the Log Explorer

참고 자료


*Logging without Limits는 Datadog, Inc.의 상표입니다.