정보공유 목록으로
#지식공유

Day 6. 운영 로그 분석 입문: ERROR 추출과 건수 집계

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

<!-- publish_key:rocky8-day06-post -->

---

## 연계 실습

이 글에서 다룬 내용을 직접 명령어로 쳐 보면 훨씬 오래 남습니다.

- [리눅스마스터 실기 텍스트 처리 문제 →](https://learnix.kr/linuxmaster)
- [로그 분석 명령어 실습 →](https://learnix.kr/learn_linux)

댓글 0

등록된 댓글이 없습니다.