서버 운영이나 개발 중에 로그 파일이 몇 GB씩 커져서 원하는 내용을 찾기 어려운 경험, 다들 있으실 거예요.
특히 tail -f
로 실시간 모니터링은 되지만 이전 로그를 확인하려면 막막하고, 파일이 너무 커서 에디터로 열기도 부담스럽죠.
실제 개발 현장에서 겪은 로그 분석 문제들과 해결 방법을 정리해봤습니다.
이런 상황에서 도움이 됩니다:
- 몇 GB짜리 로그 파일에서 특정 에러 찾기
- 특정 시간대의 로그만 확인하고 싶을 때
- 실시간 모니터링과 과거 로그 분석을 동시에
- 로그 파일이 너무 커서 vim/nano로 열 수 없을 때
🎯 문제 상황 분석
일반적인 로그 분석 문제들
파일 크기 문제:
- 로그 파일이 몇 GB로 커져서 에디터로 열기 어려움
cat
명령어로는 터미널이 멈춤tail -f
는 실시간만 보여주고 이전 내용 확인 불가
검색 효율성 문제:
- 특정 시간대나 에러만 보고 싶은데 전체를 다 봐야 함
- 여러 터미널 창을 띄워 작업하기 번거로움
- 실시간 모니터링 중에 과거 로그 확인이 어려움
로그 분할의 한계:
- 물론 일자별이나 특정 용량 단위로 나눠서 저장하면 조금 낫지만, 그 안에서도 찾기 어려운 부분이 있습니다
- 하루 단위로 나뉜 로그라도 수십만 라인이 되면 여전히 분석이 쉽지 않음
- 로그 회전(rotation) 설정이 없는 레거시 시스템의 경우 더욱 심각
로그 분석의 핵심 요구사항
- 실시간 모니터링: 새로운 로그를 즉시 확인
- 과거 로그 탐색: 특정 시간대나 패턴으로 검색
- 효율적인 탐색: 거대한 파일에서 빠른 이동
- 멀티태스킹: 모니터링과 분석을 동시에
🛠️ 핵심 도구별 활용법
1. less - 가장 강력한 로그 뷰어
기본 사용법
# 로그 파일 열기
less catalina.out
# 파일 끝으로 이동
Shift + G
# 파일 처음으로 이동
1G 또는 gg
위치 지정해서 열기
# 파일의 90% 지점부터 시작 (최근 로그 확인에 유용)
less +90% catalina.out
# 특정 라인 번호부터
less +1000 catalina.out
# 특정 패턴부터 시작
less +/ERROR catalina.out
less +/"$(date '+%Y-%m-%d 14:')" catalina.out
less 내부 검색
# less 실행 후 검색
/ERROR # ERROR 검색
/2024-09-23 # 특정 날짜 검색
n # 다음 검색 결과
N # 이전 검색 결과
실시간 모니터링 모드
# 실시간 모니터링으로 시작
less +F catalina.out
# 실시간 모드에서:
Ctrl + C # 실시간 모드 중단 (스크롤 가능)
F # 실시간 모드 재개
q # 종료