Logs
Logs는 애플리케이션이나 장비에서 전송하는 일련의 메시지로, 이벤트 또는 해당 애플리케이션의 상태에 대한 하나 이상의 세부 정보를 나타냅니다. 일반적으로 logs는 파일에 기록되지만, 때로는 분석 및 집계를 수행하는 collector로 전송되기도 합니다. MB/day부터 TB/hour까지 다양한 볼륨의 log 데이터를 생성, 수집 및 관리하는 작업을 수행하기 위한 많은 완전한 기능을 갖춘 log aggregator, framework, 제품이 있습니다.
Logs는 한 번에 단일 애플리케이션에 의해 생성되며 일반적으로 해당 단일 애플리케이션의 범위에 관련됩니다. 물론 개발자는 원하는 만큼 복잡하고 세밀한 logs를 작성할 수 있습니다. 이 문서에서는 logs를 traces와 근본적으로 다른 signal로 간주합니다. Traces는 둘 이상의 애플리케이션 또는 서비스에서 발생하는 이벤트로 구성되며, 응답 지연 시간, 서비스 장애, 요청 매개변수 등 서비스 간 연결에 대한 context를 포함합니다.
Logs의 데이터는 일정 기간 동안 집계될 수도 있습니다. 예를 들어, 통계적 데이터(예: 이전 1분 동안 처리된 요청 수)일 수 있습니다. 구조화되거나, 자유 형식이거나, 상세하거나, 모든 언어로 작성될 수 있습니다.
로깅의 주요 사용 사례는 다음을 설명하는 것입니다:
- 이벤트의 상태, 지속 시간 및 기타 핵심 통계를 포함한 이벤트 설명
- 해당 이벤트와 관련된 오류 또는 경고(예: stack traces, timeouts)
- 애플리케이션 시작, 기동 및 종료 메시지
Logs는 변경 불가하도록 설계되어 있으며, 많은 log 관리 시스템에는 log 데이터의 수정 시도를 방지하고 탐지하는 메커니즘이 포함되어 있습니다.
로깅에 대한 요구 사항에 관계없이, 다음은 우리가 확인한 모범 사례입니다.