거대한 gzip 로그 파일 마이닝

거대한 gzip 로그 파일 마이닝

때로는 특정 오류를 디버그하기 위해 거대한 로그 파일(압축을 푼 후 몇 GB)을 파헤쳐야 할 때도 있습니다.

이제 vim은 파일을 찾아볼 수 있지만 파일에서 무언가를 찾아야 할 때는 전혀 쓸모가 없습니다. 로그를 색인화하고 파일을 더 빠르게 검색할 수 있는 도구가 있습니까?

명령줄 도구를 사용하는 것이 좋습니다.

편집: 명확히 하기 위해 ackor 와 같은 도구는 grep일치하는 컨텍스트를 확인해야 하기 때문에 적합하지 않으며, -C, -A-B충분하지 않습니다. 또한 ack여전히 grep사용하기에는 너무 느립니다.

답변1

명령줄 도구보다 조금 더 발전된 아주 좋은 로그 인덱서가 있습니다. 상업적으로,스프렁크그것은 크고 이기기가 어렵습니다.그레이 다이어리 2좋은 오픈 소스 구현입니다. Elasticsearch+Logstash도 꽤 좋습니다.

수집 서버를 수집하고 실행하도록 설정하는 데는 상당한 오버헤드가 있지만 일단 시스템의 일부로 중앙 로그 수집이 있으면 훌륭합니다. 여러 소스에서 로그를 쿼리하고 보고하는 것은 다중 계층 애플리케이션의 가장 큰 이점입니다.

명령줄의 경우 syslog에 로깅을 삽입할 수 있으면체계 통나무구현을 통해필드 수항목이 기록되는 경우. 이것이 텍스트 처리에 유용한지는 확실하지 않지만 메타데이터에 더 유용합니다.

임시 명령줄 도구가 있는지 확실하지 않지만 파일이 로드될 때마다 여전히 추출/로드/구문 분석 시간 패널티가 발생합니다.

그렇긴 하지만, less단일 로그 파일에서 필요한 대부분의 작업을 수행합니다.

&pattern  grep pattern
/pattern  search forward
?pattern  search backward
shift-f   tail -f

tail모드는 라이브 로그를 시청하는 데 유용한 이전 모드도 고려할 수 있습니다.

답변2

파일 검색이 less옵션일 수 있습니다. 파일이 메모리에 들어갈 필요는 없습니다. 그리고 vim보다 훨씬 빠릅니다(LargeFile 플러그인을 사용하더라도).

단점은 grep성능 관점에서 볼 때 아마도 이길 수 없을 것이라는 것입니다. 파일 크기가 RAM 크기에 가까우면 대부분의 대안에 문제가 있습니다.

관련 정보