로그 수집¶
Guance는 포괄적인 로그 수집 기능을 제공하며, 크게 호스트 로그 수집과 K8S 컨테이너 로그 수집으로 나뉩니다. 두 방식은 DataKit 설치 방식이 다르고, 로그 수집 방식도 각각 다릅니다. 수집된 로그 데이터는 Guance로 통합되어 저장, 검색 및 분석되며, 이를 통해 문제를 신속하게 파악하고 해결할 수 있습니다.
이 문서에서는 호스트 환경에서 로그를 수집하는 방법을 설명합니다. K8S 환경에서의 로그 수집에 대한 자세한 내용은 모범 사례 Kubernetes 클러스터에서 로그 수집의 여러 가지 방법을 참조하세요.
전제 조건¶
또는 Guance에 로그인하여 통합 > DataKit에서 호스트 시스템에 따라 Linux, Windows, MacOS를 선택하고 DataKit 설치 명령어와 설치 단계를 확인할 수 있습니다.
로그 수집기 구성¶
DataKit 설치를 완료한 후, 표준 로그 수집기 활성화 또는 사용자 정의 로그 수집을 통해 시스템 로그 및 Nginx, Redis, Docker, ES 등의 애플리케이션 로그를 포함한 다양한 로그 데이터를 수집할 수 있습니다.
참고
로그 수집기를 구성할 때 로그의 Pipeline 기능을 활성화하여 로그 시간 time 및 로그 레벨 status 필드를 추출해야 합니다.
time: 로그 생성 시간입니다.time필드를 추출하지 않거나 이 필드 구문 분석에 실패하면 기본적으로 시스템 현재 시간이 사용됩니다.status: 로그 레벨입니다.status필드를 추출하지 않으면 기본적으로status가unknown으로 설정됩니다.
자세한 내용은 Pipeline 구성 및 사용 문서를 참조하세요.
로그 데이터 저장¶
로그 수집기 구성이 완료되면 DataKit을 재시작하면 로그 데이터가 Guance 워크스페이스로 통합 전송됩니다.
- 로그 데이터 양이 많은 사용자의 경우 로그 인덱스 또는 로그 블랙리스트를 구성하여 데이터 저장 비용을 절약할 수 있습니다.
- 로그를 장기간 저장해야 하는 사용자의 경우 로그 백업을 통해 로그 데이터를 보존할 수 있습니다.
시간 편차가 큰 데이터 쓰기
현재 시간과 크게 다른 타임스탬프를 가진 데이터를 쓰면 저장 엔진에서 데이터 블록의 min-max 인덱스 효율성이 저하됩니다. 이로 인해 아주 작은 시간 범위를 쿼리하더라도 많은 데이터 블록을 스캔해야 할 수 있으며, 쿼리 성능이 심각하게 저하됩니다.
이 문제를 완화하기 위해 시스템은 기본적으로 현재 시간과 12시간 이상 차이가 나는 타임스탬프의 데이터 포인트를 필터링합니다(전체 데이터 패킷이 아닌 시간 초과 데이터 포인트만 폐기). 이 메커니즘은 인덱스의 효율성을 유지하고 쿼리 성능을 향상시키는 데 도움이 됩니다.
Kodo-X에 다음 구성 추가:
kodo-x.yaml: 3개의 매개변수 추가
enable_discard_expired_data: 만료된 데이터 폐기 활성화 여부, 기본값은 활성화
discard_expired_seconds: 시간 편차 기준, 기본값 12시간
discard_data_type: 폐기할 데이터 유형, 기본값: