로그를 사용자 정의 대상으로 전달
개요
Log Forwarding를 사용하면 Datadog에서 Splunk, Elasticsearch, HTTP 엔드포인트 같은 사용자 정의 대상으로 로그를 보낼 수 있어요. 즉 Log Pipelines을 사용해 로그를 Datadog에서 중앙으로 수집·처리·표준화한 다음, Datadog에서 다른 도구로 로그를 보내 각 팀의 워크플로를 지원할 수 있어요. 수집된 로그 중 인덱싱 여부와 무관하게 전달하고 싶은 로그를 선택해 사용자 정의 대상으로 보낼 수 있어요. 로그는 JSON 형식으로 전달되며 기본적으로 GZIP으로 압축돼요.
참고: logs_write_forwarding_rules 권한을 가진 Datadog 사용자만 로그 전달용 사용자 정의 대상을 만들고, 편집하고, 삭제할 수 있어요.
전달 시도가 실패하면(예: 대상이 일시적으로 사용 불가능해진 경우) Datadog는 지수 백오프 전략으로 2시간 동안 주기적으로 재시도해요. 첫 시도는 1분 지연 후 이루어져요. 이후 재시도의 경우 지연은 최대 8-12분(20% 변동으로 10분)까지 점진적으로 증가해요.
다음 메트릭은 재시도 후 성공적으로 보내진 로그와 삭제된 로그를 포함해 성공적으로 전달된 로그에 대해 보고해요.
- datadog.forwarding.logs.bytes
- datadog.forwarding.logs.count
출처: 문서
본문
사용자 정의 대상으로 로그 전달 설정
{% callout %}
다음 Datadog 사이트 사용자를 위한 중요 참고 사항: app.ddog-gov.com, us2.ddog-gov.com
{% alert level="danger" %} 사용자 정의 대상으로 로그를 보내는 것은 Datadog GovCloud 환경 밖으로 나가는 것이며, 이는 Datadog의 통제를 벗어나요. Datadog은 GovCloud 환경을 떠난 로그, 특히 사용자가 FedRAMP, DoD Impact Levels, ITAR, 수출 규정 준수, 데이터 상주 또는 해당 로그에 적용되는 유사 규정과 관련해 가질 수 있는 의무나 요구사항을 포함해 어떤 것에도 책임지지 않아요. {% placeholder "user-datadog-datacenter" /%} 사이트의 보안 프로토콜로 인해 로그 전달에는 포트 443과 8088만 열려 있어요. 다른 포트를 사용하려면 Datadog 지원팀에 문의하세요. {% /alert %}
{% /callout %}
- IP 범위 목록의 웹훅 IP를 허용 목록에 추가하세요.
- Log Archiving & Forwarding로 이동하세요.
- Custom Destinations를 선택하세요.
- New Destination을 클릭하세요.
- 전달할 로그를 필터링하는 쿼리를 입력하세요. 자세한 내용은 Search Syntax를 참고하세요.
- Destination Type을 선택하세요.
{% tab title="HTTP" %}
대상의 이름을 입력하세요.Define endpoint 필드에 로그를 보낼 엔드포인트를 입력하세요. 엔드포인트는 https://로 시작해야 해요.
- 예를 들어 Sumo Logic으로 로그를 보내려면 HTTP Source for Logs and Metrics 구성 문서를 따라 컬렉터로 데이터를 보낼 HTTP Source Address URL을 얻으세요. Define endpoint 필드에 HTTP Source Address URL을 입력하세요.
(선택 사항) HTTP 엔드포인트가 압축된 페이로드를 지원하지 않으면 GZIP 압축을 비활성화하세요.Configure Authentication 섹션에서 다음 인증 유형 중 하나를 선택하고 관련 세부 정보를 제공하세요:
| 인증 유형 | 설명 | 예시 |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
| Basic Authentication | 로그를 보내려는 계정의 사용자 이름과 암호를 제공하세요. | Username:
myaccountPassword:mypassword| | Request Header | 헤더 이름과 값을 제공하세요. Authorization용 예시:*** Header Name에Authorization을 입력하세요.- base64로 인코딩된Basic username:password형식의 헤더 값을 사용하세요. | Header Name:AuthorizationHeader Value:Basic bXlhY2NvdW50Om15cGFzc3dvcmQ=|
{% /tab %}
{% tab title="Splunk" %}
대상의 이름을 입력하세요.Configure Destination 섹션에서 로그를 보낼 엔드포인트를 입력하세요. 엔드포인트는 https://로 시작해야 해요. 예: https://<your_account>.splunkcloud.com:8088을 입력하세요. 참고: /services/collector/event가 엔드포인트에 자동으로 추가돼요.Configure Authentication 섹션에서 Splunk HEC 토큰을 입력하세요. Splunk HEC 토큰에 대한 자세한 내용은 Set up and use HTTP Event Collector를 참고하세요. 참고: indexer acknowledgment는 비활성화해야 해요.(선택 사항) Configure Sourcetype 섹션에서 전달된 이벤트에 할당할 Splunk sourcetype을 지정하세요. Splunk sourcetype에 대한 자세한 내용은 Why Sourcetype matters를 참고하세요. 설정하지 않으면 기본 sourcetype _json이 사용돼요. sourcetype 없이 이벤트를 보내려면 Send without sourcetype을 선택하세요.
{% /tab %}
{% tab title="Elasticsearch" %}
대상의 이름을 입력하세요.Configure Destination 섹션에서 다음 세부 정보를 입력하세요:
| 설정 | 설명 | 예시 |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
| Endpoint | 로그를 보낼 엔드포인트를 입력하세요. 엔드포인트는 https://로 시작해야 해요. | https://<your_account>.us-central1.gcp.cloud.es.io (Elasticsearch) |
| Destination Index Name | 로그를 보낼 대상 인덱스의 이름을 지정하세요. | your_index_name |
| Index Rotation | 선택 사항으로 새 인덱스를 만들 주기를 선택하세요: No Rotation, Every Hour, Every Day, Every Week, Every Month. 기본값은 No Rotation. | Every Day |
Configure Authentication 섹션에서 Elasticsearch 계정의 사용자 이름과 암호를 입력하세요.
{% /tab %}
{% tab title="Microsoft Sentinel" %}
대상의 이름을 입력하세요.Microsoft Sentinel Forwarder의 인증에는 Datadog Azure 통합을 통해 구성된 앱 등록이 필요해요. Azure 통합용 앱 등록이 이미 있다면 새로 만들지 않고 재사용할 수 있어요.Configure Destination 섹션에서 다음 세부 정보를 입력하세요:
| 설정 | 설명 | 예시 |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| Logs Ingestion Endpoint | 로그가 전송되는 Data Collection Endpoint(DCE)의 엔드포인트를 입력하세요. DCE 개요 페이지에서 "Logs Ingestion"으로 표시돼요. | https://my-dce-5kyl.eastus-1.ingest.monitor.azure.com |
| Immutable ID | 로깅 라우팅이 정의된 Data Collection Rule(DCR)의 불변 ID를 지정하세요. DCR 개요 페이지에서 "Immutable Id"로 찾을 수 있어요. 참고: DCR IAM 설정에서 Monitoring Metrics Publisher 역할이 할당되어 있는지 확인하세요. | dcr-000a00a000a00000a000000aa000a0aa |
| Stream Declaration Name | DCR의 Resource JSON에서 streamDeclarations 아래에 있는 대상 Stream Declaration의 이름을 제공하세요. | Custom-MyTable |
{% /tab %}
{% tab title="Google SecOps (Chronicle)" %}
대상의 이름을 입력하세요.
Google Chronicle Forwarder의 인증에는 Chronicle 쓰기 접근 권한이 있는 GCP 서비스 계정을 사용해야 해요.
Configure Destination 섹션에서 다음 세부 정보를 입력하세요:
| 설정 | 설명 | 예시 |
|---|---|---|
| Customer ID | Google이 제공하는 Chronicle 고객 ID. | abcd1234 |
| Regional Endpoint | 지역에 따른 Chronicle 수집 API 엔드포인트 URL. 참고: DCR IAM 설정에서 Monitoring Metrics Publisher 역할이 할당되어 있는지 확인하세요. | https://us.chronicle.googleapis.com |
| Namespace | Chronicle 로그가 수집되어야 하는 네임스페이스. | default |
Configure authentication settings 섹션에서 다음 세부 정보를 입력하세요:
| 설정 | 설명 | 예시 |
|---|---|---|
| Project ID | Chronicle 인스턴스와 연결된 GCP 프로젝트 ID. | my-gcp-chronicle-project |
| Private Key ID | 서비스 계정 자격 증명의 개인 키 ID. | 0123456789abcdef |
| Private Key | 서비스 계정 자격 증명의 개인 키. | -----BEGIN PRIVATE KEY-----\nMIIE... |
| Client Email | 서비스 계정의 이메일 주소. | chronicle-writer@my-gcp-chronicle-project.iam.gserviceaccount.com |
| Client ID | 서비스 계정 자격 증명의 클라이언트 ID. | 123456789012345678901 |
{% /tab %} Select Tags to Forward 섹션에서:
- All tags, No tags, Specific Tags 중 어느 것을 포함할지 선택하세요.
- 특정 태그를 Include 또는 Exclude할지 선택하고 포함·제외할 태그를 지정하세요. Save를 클릭하세요. Log Forwarding 페이지에서 대상의 상태에 마우스를 올려 지난 1시간 동안 필터 기준과 일치해 전달된 로그의 비율을 확인하세요.
대상 편집
- Log Forwarding로 이동하세요.
- Custom Destinations를 선택해 기존 대상 목록을 보세요.
- 편집하려는 대상의 Edit 버튼을 클릭하세요.
- 구성 페이지에서 변경하세요.
- Save를 클릭하세요.
대상 삭제
- Log Forwarding로 이동하세요.
- Custom Destinations를 선택해 기존 대상 목록을 보세요.
- 삭제하려는 대상의 Delete 버튼을 클릭하고 Confirm을 클릭하세요. 이렇게 하면 대상이 구성된 대상 목록에서 제거되고 더 이상 그 대상으로 로그가 전달되지 않아요.