콘텐츠로 이동

로그 수집


Guance는 포괄적인 로그 수집 기능을 제공하며, 크게 호스트 로그 수집과 K8S 컨테이너 로그 수집으로 나뉩니다. 두 방식은 DataKit 설치 방식이 다르고, 로그 수집 방식도 각각 다릅니다. 수집된 로그 데이터는 Guance로 통합되어 저장, 검색 및 분석되며, 이를 통해 문제를 신속하게 파악하고 해결할 수 있습니다.

이 문서에서는 호스트 환경에서 로그를 수집하는 방법을 설명합니다. K8S 환경에서의 로그 수집에 대한 자세한 내용은 모범 사례 Kubernetes 클러스터에서 로그 수집의 여러 가지 방법을 참조하세요.

전제 조건

DataKit 설치.

또는 Guance에 로그인하여 통합 > DataKit에서 호스트 시스템에 따라 Linux, Windows, MacOS를 선택하고 DataKit 설치 명령어와 설치 단계를 확인할 수 있습니다.

로그 수집기 구성

DataKit 설치를 완료한 후, 표준 로그 수집기 활성화 또는 사용자 정의 로그 수집을 통해 시스템 로그 및 Nginx, Redis, Docker, ES 등의 애플리케이션 로그를 포함한 다양한 로그 데이터를 수집할 수 있습니다.

DataKit 설치 디렉터리 아래 conf.d/samples 디렉터리로 이동하여 logging.conf.sample을 복사하고 logging.conf로 이름을 변경하여 구성하세요. 구성이 완료되면 DataKit을 재시작하면 적용됩니다.

자세한 내용은 호스트 로그 수집을 참조하세요.


Guance에서 지원하는 표준 로그 수집기(예: Nginx, Redis, ES 등)를 활성화하여 로그 수집을 한 번에 시작할 수 있습니다.


참고

로그 수집기를 구성할 때 로그의 Pipeline 기능을 활성화하여 로그 시간 time 및 로그 레벨 status 필드를 추출해야 합니다.

  • time: 로그 생성 시간입니다. time 필드를 추출하지 않거나 이 필드 구문 분석에 실패하면 기본적으로 시스템 현재 시간이 사용됩니다.
  • status: 로그 레벨입니다. status 필드를 추출하지 않으면 기본적으로 statusunknown으로 설정됩니다.

자세한 내용은 Pipeline 구성 및 사용 문서를 참조하세요.

로그 데이터 저장

로그 수집기 구성이 완료되면 DataKit을 재시작하면 로그 데이터가 Guance 워크스페이스로 통합 전송됩니다.

  • 로그 데이터 양이 많은 사용자의 경우 로그 인덱스 또는 로그 블랙리스트를 구성하여 데이터 저장 비용을 절약할 수 있습니다.
  • 로그를 장기간 저장해야 하는 사용자의 경우 로그 백업을 통해 로그 데이터를 보존할 수 있습니다.
시간 편차가 큰 데이터 쓰기

현재 시간과 크게 다른 타임스탬프를 가진 데이터를 쓰면 저장 엔진에서 데이터 블록의 min-max 인덱스 효율성이 저하됩니다. 이로 인해 아주 작은 시간 범위를 쿼리하더라도 많은 데이터 블록을 스캔해야 할 수 있으며, 쿼리 성능이 심각하게 저하됩니다.

이 문제를 완화하기 위해 시스템은 기본적으로 현재 시간과 12시간 이상 차이가 나는 타임스탬프의 데이터 포인트를 필터링합니다(전체 데이터 패킷이 아닌 시간 초과 데이터 포인트만 폐기). 이 메커니즘은 인덱스의 효율성을 유지하고 쿼리 성능을 향상시키는 데 도움이 됩니다.

Kodo-X에 다음 구성 추가:

kodo-x.yaml: 3개의 매개변수 추가 enable_discard_expired_data: 만료된 데이터 폐기 활성화 여부, 기본값은 활성화 discard_expired_seconds: 시간 편차 기준, 기본값 12시간

global:
   enable_discard_expired_data: true
   discard_expired_seconds: 12 * 3600

discard_data_type: 폐기할 데이터 유형, 기본값:

DiscardDataType: map[string]bool{
                // "metering": true,
                // "TAE":      true,
                // "AE":       true,
                "B":  true,
                "CO": true,
                "D":  true,
                "E":  true,
                "EL": true,
                "L":  true,
                // "NM":       true,
                "N":  true,
                "OH": true,
                "O":  true,
                "P":  true,
                // "RM":       true,
                "R": true,
                "S": true,
                // "TM":       true,
                "T": true,
            },

문서 평가

이 페이지가 도움이 되었나요?