본문 바로가기

Server/Linux

리눅스 로그 파일에서 grep으로 특정 키워드 찾기

운영 또는 개발 환경에서 로그 파일에서 원하는 키워드가 포함된 라인만 빠르게 확인해야 하는 경우가 매우 많습니다.
이 글에서는 grep 명령어를 활용하여 로그 분석에 바로 써먹을 수 있는 실무 중심 예제를 정리합니다.


1. 기본 사용법

grep "키워드" logfile.log

예시:

grep "ERROR" application.log

→ application.log 파일에서 ERROR 문자열이 포함된 모든 라인을 출력합니다.

 

2. 대소문자 무시 (-i)

grep -i "error" application.log

→ error, ERROR, Error 모두 매칭됩니다.

 

3. 실시간 로그 감시 (tail + grep)

운영 서버에서 가장 많이 사용하는 패턴입니다.

tail -f application.log | grep "ERROR"

→ 로그가 추가될 때마다 ERROR가 포함된 라인만 실시간 출력됩니다.

 

4. 여러 키워드 중 하나라도 포함 (OR 조건)

grep -E "ERROR|WARN" application.log

또는

egrep "ERROR|WARN" application.log

→ ERROR 또는 WARN 중 하나라도 포함되면 출력됩니다.

 

5. 여러 키워드를 모두 포함 (AND 조건)

grep "ERROR" application.log | grep "DB"

→ ERROR 이면서 DB가 포함된 라인만 출력됩니다.

 

6. 특정 키워드가 없는 라인만 출력 (-v)

grep -v "DEBUG" application.log

→ DEBUG 로그를 제외하고 확인할 때 유용합니다.

 

7. 라인 번호 함께 출력 (-n)

grep -n "ERROR" application.log

→ 에러 위치를 빠르게 찾을 수 있습니다.

 

8. 여러 로그 파일에서 검색

grep "ERROR" *.log

하위 디렉토리까지 포함하려면:

grep -r "ERROR" /logs/

 

9. 키워드 강조 표시 (--color)

grep --color=auto "ERROR" application.log

→ 매칭된 키워드가 색상으로 강조되어 가독성이 좋아집니다.

 

10. 실무 활용 예시

특정 시간대의 에러만 확인

grep "2025-12-15 16:" application.log | grep "ERROR"

API 요청 + 상태 코드 필터링

grep -E "POST /api|GET /api" access.log | grep "500"

 


마무리

grep은 단순하지만 로그 분석 생산성을 극적으로 올려주는 필수 도구입니다.
tail, awk, sed와 함께 사용하면 훨씬 강력한 로그 분석이 가능합니다.