앱 개발에 필요한 로그 샘플 추출 방법

벤더에서 제공하는 로그 명세서와 제한된 로그 샘플만으로 파서를 개발하면 운영 환경에 적용 시 예상치 못한 특수문자 등으로 인해 파싱에 실패하는 사례가 종종 발생합니다. 일정을 준수하려면 한 번에 작업을 끝내는 것이 중요하고, 그러려면 실제 운영 환경에서 발견되는 예외적인 로그를 포함하여 샘플링해야 테스트를 완전하게 수행할 수 있습니다.

signature 쿼리 명령어는 현장에서의 로그 샘플링을 목적으로 제공되는 기능입니다. signature 명령어가 제공하는 특수문자 패턴으로 그룹핑하면 최소량의 샘플로 최대한의 테스트 케이스를 확보할 수 있습니다.

아래는 사용 예입니다:

wget url="https://raw.githubusercontent.com/logpresso/dataset/main/wp-nginx.log"
| eval line = subarray(split(line, "\n"), 0) 
| explode line 
| signature 
| stats first(line) as line by signature

로그 유형에 해당하는 필드가 존재한다면, 해당 로그 유형을 정규식으로 추출한 후 signature와 해당 로그 유형의 그룹으로 추출해야 합니다.

이제 쿼리 결과를 JSON 파일로 다운로드 받아서 지원 포털에 전달해주시면 됩니다.

1개의 좋아요

혹시 여기서 signature라는 이름은 방화벽/IPS 로그에서 보이는 signature(공격명) 필드와 연관이 있을까요? 아니면 각 로그 유형의 고유 특성이라는 의미에 가까울까요?

명령어의 이름은 공격명 필드와 무관하고 고유 패턴의 의미입니다.