홈/엔지니어/OS / 시스템/journalctl로 systemd 로그 찾기 — …
OS / 시스템초급UbuntuDebianCentOSRHELjournalctl로그systemd

journalctl로 systemd 로그 찾기 — 서비스·시간·우선순위 필터와 장애 분석

journalctl로 시스템 로그를 조회·필터링·분석하는 방법을 실무 시나리오와 함께 정리합니다.

목차
  1. 기본 조회
  2. 서비스별 필터링
  3. 시간 범위 필터
  4. 우선순위(레벨) 필터
  5. 출력 형식
  6. 실무 시나리오
  7. 로그 용량 관리

기본 조회

Bash
# 전체 로그 (최신 순)
journalctl -r

# 마지막 100줄
journalctl -n 100

# 실시간 스트림 (tail -f 같은)
journalctl -f

# 부팅 이후 로그
journalctl -b

# 이전 부팅 로그 (-1 = 직전)
journalctl -b -1

서비스별 필터링

Bash
# 특정 유닛 로그
journalctl -u nginx
journalctl -u nginx -f  # 실시간

# 여러 유닛
journalctl -u nginx -u php-fpm

# 특정 PID
journalctl _PID=1234

시간 범위 필터

Bash
# 오늘 로그
journalctl --since today

# 특정 시간 범위
journalctl --since "2024-01-15 10:00:00" --until "2024-01-15 12:00:00"

# 1시간 전부터
journalctl --since "1 hour ago"

우선순위(레벨) 필터

Bash
# error 이상만
journalctl -p err

# warning ~ error 범위
journalctl -p warning..err

# 레벨: 0=emerg, 1=alert, 2=crit, 3=err, 4=warning, 5=notice, 6=info, 7=debug

출력 형식

Bash
# JSON 출력 (로그 파이프라인에 유용)
journalctl -u nginx -o json | jq '.MESSAGE'

# 메시지만 (cat 형식)
journalctl -o cat -u myapp

# 커널 메시지만 (dmesg 대체)
journalctl -k

실무 시나리오

Bash
# 서비스 크래시 원인 찾기
journalctl -u myapp -p err --since "1 hour ago"

# 부팅 실패 원인
journalctl -b -1 -p err

# OOM killer 발생 확인
journalctl -k | grep -i "oom\|killed process"

# SSH 로그인 실패 모니터링
journalctl -u sshd | grep "Failed password" | awk '{print $11}' | sort | uniq -c | sort -rn

# 로그를 파일로 저장
journalctl -u nginx --since today > /tmp/nginx-today.log

로그 용량 관리

Bash
# 현재 저널 용량
journalctl --disk-usage

# 오래된 로그 삭제 (2주 이상)
journalctl --vacuum-time=2w

# 용량 제한 (500MB)
journalctl --vacuum-size=500M

/etc/systemd/journald.conf에서 SystemMaxUse=500M, MaxRetentionSec=2week으로 영구 설정 가능합니다.

#journalctl#로그#systemd#모니터링#디버깅
편집 안내 · Editorial Note

AI 도구가 초안 작성에 사용될 수 있습니다. 명령어의 실행 여부와 검증 환경은 각 가이드에 기재된 근거를 확인하세요. 적용 전 사용 중인 버전의 공식 문서를 확인하고, 오류는 이메일로 알려주세요. 이메일로 제보

주제 관련 공식 문서(자동 연결 · 문장별 근거 아님)GNU/Linux man 페이지 ↗

질문 & 답변 (Q&A)

이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.