로거 구성
Teleport 인스턴스의 구성 파일에서 출력 대상, 심각도 수준, 출력 형식을 정의하여 로거의 동작을 구성할 수 있습니다. 출력 파라미터가 정의되지 않거나 비어 있으면 기본적으로 stderr(별칭 err 또는 2)가 사용됩니다.
Teleport 인스턴스의 구성 파일에서 출력 대상, 심각도 수준, 출력 형식을 정의하여 로거의 동작을 구성할 수 있습니다.
teleport:
log:
output: stderr
severity: INFO
format:
output: text
extra_fields: [caller, level]
출력 파라미터가 정의되지 않거나 비어 있으면 기본적으로 stderr(별칭 err 또는 2)가 사용됩니다.
출력을 정의하는 다른 옵션으로는 stdout(별칭 out 또는 1), syslog 파일에 쓰기 위한 syslog, 또는 로그 파일 대상에 직접 쓰기 위한 파일 경로가 있습니다.
심각도에는 우선순위에 따라 내림차순으로 정렬된 여러 수준이 있습니다:
err,error- 사용자의 조치가 필요한 오류에 사용됩니다.warn,warning- 중요하지 않지만 주의가 필요한 항목입니다.info또는 빈 값 - 애플리케이션 내부에서 진행 중인 일에 대한 일반 운영 항목입니다.debug- 일반적으로 디버깅 시에만 활성화되는 상세 로깅입니다.trace- 작업 및 이벤트에 대한 더 자세한 정보를 나타냅니다.
info 심각도 수준을 선택하면 우선순위 규칙에 따라 warning 및 error도 적용됩니다.
로그 출력의 기본 형식은 text입니다. 또 다른 사용 가능한 형식은 json으로, Logstash, Loki 또는 기타 로그 수집기와 같은 시스템의 로그 파싱을 간소화할 수 있습니다.
형식 extra_fields는 로그 출력에 추가해야 하는 추가 필드를 정의합니다:
level은 상세도를 저장하는 로그 필드입니다.component는 호출 구성 요소를 저장하는 로그 필드입니다.caller는 호출 파일과 줄 번호를 저장하는 로그 필드입니다.timestamp는 로그가 생성된 타임스탬프를 저장하는 필드입니다.
systemd 기반 배포판에서는 다음 명령을 실행하여 로그 출력을 볼 수 있습니다:
$ sudo teleport install systemd -o /etc/systemd/system/teleport.service
$ sudo systemctl enable teleport
$ sudo journalctl -fu teleport
로그 로테이션 지원#
로그를 파일로 저장하려면 log.output 구성에 파일 경로를 설정해야 합니다.
teleport:
log:
output: /var/lib/teleport/log/output.log
Teleport가 새 로그 파일을 열거나 생성하면 파일 수정을 모니터링하기 위해 파일 시스템 감시자가 백그라운드에서 시작됩니다. 로그 파일의 이름이 변경되거나 이동되거나 삭제되면 Teleport는 자동으로 새 파일을 생성합니다. 이는 주 서비스를 재시작하거나 중단하지 않고 로그 로테이션을 구현하는 데 유용합니다.
logrotate를 예시로 사용하면, Teleport 로그 파일을 매주 로테이션하기 위해 다음 구성 /etc/logrotate.d/teleport.conf를 정의할 수 있습니다:
/var/lib/teleport/log/output.log {
weekly
compress
notifempty
}
