Datadog으로 Teleport 감사 이벤트 내보내기
Teleport의 Event Handler 플러그인은 Teleport Auth Service에서 감사 이벤트를 받아 로그 관리 솔루션으로 전달하여, 과거 분석, 비정상적인 동작 감지, 사용자가 Teleport 클러스터와 상호작용하는 방식에 대한 더 나은 이해를 가...
Teleport의 Event Handler 플러그인은 Teleport Auth Service에서 감사 이벤트를 받아 로그 관리 솔루션으로 전달하여, 과거 분석, 비정상적인 동작 감지, 사용자가 Teleport 클러스터와 상호작용하는 방식에 대한 더 나은 이해를 가능하게 합니다.
Datadog은 SaaS 모니터링 및 보안 플랫폼입니다. 이 가이드에서는 Fluentd를 사용하여 Teleport 감사 이벤트를 Datadog으로 전달하는 방법을 설명합니다.
작동 방식#
Teleport Event Handler는 Teleport Auth Service에 인증하여 gRPC 스트림을 통해 감사 이벤트를 수신한 후, 상호 TLS를 통해 설정된 보안 채널을 통해 해당 이벤트를 JSON 페이로드로 Fluentd에 전송합니다:

Datadog 에이전트는 원격 소스에서 로그를 TCP 또는 UDP 연결을 통해 JSON 인코딩된 바이트로만 수신할 수 있으므로, Teleport Event Handler는 Datadog 에이전트를 사용하지 않고 HTTPS 페이로드를 전송해야 합니다. Fluentd는 Datadog API에 대한 인증을 처리합니다.
사전 요구사항#
- Datadog 계정.
- Fluentd 버전 v
[fluentd.version]이상. Teleport Event Handler는 기존 Fluentd 시스템에 통합하거나 새로운 설정과 함께 사용할 수 있는 새fluent.conf파일을 생성합니다. - Teleport Event Handler 플러그인을 실행할 서버, 가상 머신, Kubernetes 클러스터 또는 Docker 환경.
이 가이드는 Event Handler 설정 가이드 중 하나를 완료했다고 가정합니다:
아래 지침은 워크스테이션에서 Event Handler 플러그인을 로컬로 테스트하는 방법을 보여줍니다. 다른 환경에서는 경로, 포트 및 도메인을 조정해야 합니다.
1/2단계. Datadog용 Fluentd 출력 플러그인 설치#
Fluentd가 Datadog과 통신하려면 Fluentd output plugin for Datadog이 필요합니다. gem 또는 설치된 경우 td-agent를 사용하여 Fluentd 호스트에 플러그인을 설치합니다:
# Using Gem
$ gem install fluent-plugin-datadog
# Using td-agent
$ /usr/sbin/td-agent-gem install fluent-plugin-datadog
테스트를 위해 로컬 Docker 컨테이너에서 Fluentd를 실행하는 경우, 진입점을 루트 사용자의 대화형 셸로 조정하여 Fluentd를 시작하기 전에 플러그인을 설치할 수 있습니다:
$ docker run -u $(id -u root):$(id -g root) -p 8888:8888 -v $(pwd):/keys -v \
$(pwd)/fluent.conf:/fluentd/etc/fluent.conf --entrypoint=/bin/sh -i --tty fluent/fluentd:edge
# From the container shell:
$ gem install fluent-plugin-datadog
$ fluentd -c /fluentd/etc/fluent.conf
Fluentd 구성#
사전 요구사항 설정 가이드에서 생성된 fluent.conf 파일을 수정합니다.
-
Datadog을 방문하여 Datadog 문서에 따라 Fluentd용 API 키를 생성합니다.
-
API 키를 복사하여
fluent.conf에 새<match>블록을 추가합니다:<match test.log> @type datadog @id awesome_agent api_key (=presets.tokens.first=) host http-intake.logs.us5.datadoghq.com # Optional parameters dd_source teleport </match> -
구성을 다음과 같이 편집합니다:
api_key필드에 API 키를 추가합니다.host값을 Datadog 사이트에 맞게 조정합니다. 올바른 값을 확인하려면 Datadog Log Collection and Integrations 가이드를 참조하세요.dd_source는 Datadog UI에서 이 로그를 필터링하는 데 사용할 수 있는 선택적 필드입니다.ca_path,cert_path및private_key_path를 사전 요구사항 설정 가이드에서 생성된 자격 증명 파일을 가리키도록 조정합니다. 로컬에서 테스트하는 경우, 위의 Docker 명령이 이미 현재 작업 디렉터리를 컨테이너의keys/에 마운트했습니다.
-
fluent.conf에 변경 사항을 저장한 후 Fluentd를 재시작합니다.
2/2단계. Event Handler 플러그인 실행#
이 섹션에서는 생성한 Event Handler 구성을 수정하고 Event Handler를 실행하여 구성을 테스트합니다.
Event Handler 구성#
설치 방법에 따라 Event Handler 구성을 편집합니다.
다음 필드를 업데이트합니다.
이 섹션의 내용은 원문 문서를 참조하세요. (finish-event-handler-fields.mdx)
Event Handler 시작#
이 섹션의 내용은 원문 문서를 참조하세요. (start-event-handler.mdx)
Datadog의 Logs 뷰에 이제 Teleport 클러스터 이벤트가 표시됩니다:

연결 문제 해결#
Teleport Event Handler가 Teleport 클러스터에 연결하는 동안 오류 로그를 표시하는 경우 다음을 확인하세요:
- Teleport Event Handler가 Teleport 클러스터에 연결하는 데 사용하는 인증서가 만료 날짜를 지나지 않았는지 확인합니다. 이는
tctl auth sign명령의--ttl플래그 값으로, 기본적으로 12시간입니다. - Teleport Event Handler 구성 파일에서 Teleport Proxy Service에 대한 올바른 호스트 및 포트를 제공했는지 확인합니다.
- Teleport Event Handler를 시작하기 전에 Fluentd 컨테이너를 먼저 시작합니다. Event Handler는 시작 시 즉시 Fluentd에 연결을 시도합니다.
