학습 목표
운영 로그에서 오류를 추출하고, 빈도 기준으로 우선순위를 정하는 방법을 학습합니다.
로그 분석은 많이 읽는 것이 아니라, 먼저 범위를 줄이는 작업입니다.
왜 ERROR부터 보는가
장애 상황에서 전체 로그를 처음부터 끝까지 읽으면 시간이 오래 걸립니다.
먼저 ERROR, FATAL, timeout, denied 같은 신호를 추출해 분석 범위를 줄여야 합니다.
1) 오류 라인 추출
grep -E "ERROR|FATAL" /var/log/app/app.log > /tmp/error.log grep
grep은 파일에서 특정 문자열이나 패턴이 포함된 줄을 찾는 명령어입니다.
로그 분석에서 가장 먼저 익혀야 하는 명령 중 하나입니다.
-E 옵션
-E는 확장 정규표현식을 사용한다는 의미입니다.
ERROR|FATAL처럼 여러 키워드 중 하나를 찾을 때 유용합니다.
> 리다이렉션
>는 명령 결과를 파일로 저장합니다.
분석 결과를 /tmp/error.log에 저장하면 이후 명령에서 반복해서 사용할 수 있습니다.
2) 필요한 필드만 보기
awk "{print $1, $2, $5}" /tmp/error.log | head -n 20 awk
awk는 줄 단위 텍스트에서 특정 필드를 뽑아낼 때 사용합니다.
로그 형식이 일정하면 날짜, 시간, 서비스명, 오류코드 같은 값만 골라 볼 수 있습니다.
head
head는 파일의 앞부분만 출력합니다.
처음부터 전체를 보는 대신 샘플 몇 줄을 보고 로그 구조를 파악할 때 사용합니다.
3) 오류 빈도 집계
awk "{print $5}" /tmp/error.log | sort | uniq -c | sort -nr | head sort
sort는 같은 값이 붙어 있도록 정렬합니다.
uniq -c
uniq -c는 중복된 줄의 개수를 세어줍니다.
sort -nr
숫자 기준으로 내림차순 정렬합니다.
오류가 가장 많이 발생한 항목부터 보면 대응 우선순위를 정하기 쉽습니다.
신규직원 실습 절차
ERROR/FATAL 로그를 별도 파일로 추출합니다.
필요한 필드만 뽑아 로그 구조를 파악합니다.
빈도 기준으로 오류를 집계합니다.
상위 오류부터 원인을 확인합니다.
연계실습
연계실습 텍스트: 로그에서 ERROR 추출 및 건수 집계
실습 바로 시작: 문제 218 실습 시작하기 →
연계 실습
이 글에서 다룬 내용을 직접 명령어로 쳐 보면 훨씬 오래 남습니다.
- 리눅스마스터 실기 텍스트 처리 문제 →
- 로그 분석 명령어 실습 →

아직 댓글이 없습니다. 궁금한 점이나 풀이 경험을 남겨 보세요.