인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!
분산 추적
Teleport는 OpenTelemetry를 활용하여 추적을 생성하고 이를 모든 OpenTelemetry Protocol (OTLP) 지원 내보내기로 내보냅니다. 만약 사용 중인 텔레메트리 백엔드가 OTLP 추적을 수신하는 것을 지원하지 않는 경우, OpenTelemetry Collector를 활용하여 OTLP에서 텔레메트리 백엔드가 수용하는 형식으로 추적을 프록시할 수 있습니다.
Teleport 구성
teleport
인스턴스에 대한 추적을 활성화하려면 다음 섹션을 해당 인스턴스의 구성 파일(/etc/teleport.yaml
)에 추가합니다.
이 구성 필드에 대한 자세한 설명은 구성 참조 페이지를 참조하십시오.
tracing_service:
enabled: yes
exporter_url: grpc://collector.example.com:4317
sampling_rate_per_million: 1000000
샘플링 비율
샘플링 비율을 신중하게 선택하는 것이 중요합니다. 100%의 비율로 샘플링하면 클러스터의 성능에 부정적인 영향을 미칠 수 있습니다. Teleport는 수신 요청에 포함된 샘플링 비율을 존중하며, 이 뜻은 tracing_service
가 활성화되고 샘플링 비율이 0일지라도 Teleport가 샘플이 생성된 요청을 받을 경우 응답으로 생성되는 모든 스팬을 샘플링하고 내보낸다는 것입니다.
내보내기 URL
exporter_url
설정은 Teleport가 스팬을 전송해야 할 위치를 나타냅니다. 지원되는 프로토콜은 grpc://
, http://
, https://
, 그리고 file://
입니다(프로토콜이 제공되지 않으면 grpc://
가 사용됩니다).
file://
를 사용하는 경우, URL은 Teleport가 쓰기 권한을 가진 디렉터리의 경로여야 합니다. 스팬은 제공된 디렉터리 내의 파일에 저장되며, 각 파일은 한 줄에 하나의 프로토 인코딩 스팬을 포함합니다. 파일은 100MB를 초과하면 회전(rotate)되며, 기본 제한을 오버라이드하려면 exporter_url
에 ?limit=<원하는_파일_크기_바이트>
를 추가합니다(예: file:///var/lib/teleport/traces?limit=100
).
기본적으로 내보내기와의 연결은 보안이 적용되지 않지만, TLS를 지원하기 위해 다음을 tracing_service
구성에 추가합니다:
# 선택적으로 사용될 CA 인증서의 경로로, 내보내기를 검증하는 데 사용됩니다.
ca_certs:
- /var/lib/teleport/exporter_ca.pem
# 선택적으로 사용할 TLS 인증서의 경로로, 내보내기에 대한 mTLS를 활성화하는 데 사용됩니다.
https_keypairs:
- key_file: /var/lib/teleport/exporter_key.pem
cert_file: /var/lib/teleport/exporter_cert.pem
teleport.yaml
을 업데이트한 후 새로운 구성을 적용하기 위해 teleport
인스턴스를 시작합니다.
tsh
tsh
에서 추적을 캡처하려면 명령에 --trace
플래그를 추가하면 됩니다. tsh --trace
로 생성된 모든 추적은 명령이 실행 중인 클러스터의 Auth Service에 정의된 exporter_url
로 프록시됩니다.
tsh --trace ssh root@myservertsh --trace ls
tsh
에서 Auth Service 구성에 정의된 것과 다른 내보내기로 추적을 내보내는 것도 --trace-exporter
플래그를 통해 가능합니다. exporter_url
의 동일한 형식을 준수해야 하는 URL을 제공해야 합니다.
tsh --trace --trace-exporter=grpc://collector.example.com:4317 ssh root@myservertsh --trace --trace-exporter=file:///var/lib/teleport/traces ls