[Linux] journalctl 로그 분석 정리

mommers·2026년 2월 2일

Linux

목록 보기
23/59

썸넬


로그 분석 (journalctl, dmesg)

  • 시스템 에러 추적. 커널 메시지.
  • journalctl -xe로 방금 발생한 에러 로그 상세 확인.
  • journalctl -u ssh로 SSH 서비스 로그만 필터링.
  • dmesg | grep usb로 USB 장치 연결 기록 확인.

journalctl vs dmesg


dmesg는 '커널(하드웨어)이 토하는 로그'만 보는 것, journalctl은 '시스템의 모든 역사(S/W 포함)'를 검색하는 도구.

최신 리눅스(Systemd 기반)에서는 journalctldmesg의 내용을 포함하고 있으므로, journalctl 하나만 잘 써도 됩니다.

1. dmesg (Diagnostic Message)

  • 출처: 커널 링 버퍼 (Kernel Ring Buffer). 메모리 공간에 있는 데이터를 긁어옵니다.
  • 내용: 부팅 과정, 하드웨어 인식(USB, LAN), 드라이버 로딩, 커널 패닉 등.
  • 특징:
    • 휘발성: 재부팅하면 내용이 초기화됩니다 (링 버퍼 특성).
    • 빠름: 단순히 메모리를 읽어서 출력하므로 매우 빠르고 단순합니다.
    • 주 용도: "방금 꽂은 USB가 인식됐나?", "드라이버가 왜 죽었지?" 확인할 때.

2. journalctl (Journal Control)

  • 출처: Systemd Journal. 디스크에 저장된 바이너리 로그 데이터베이스.
  • 내용: dmesg 내용 + 모든 서비스 로그(웹서버, SSH) + 사용자 앱 로그.
  • 특징:
    • 영구성: 재부팅 후에도 과거 로그를 뒤져볼 수 있습니다 (b 옵션).
    • 검색: 시간별, 서비스별, 중요도별 필터링이 강력합니다.
    • 주 용도: "어제 밤에 웹서버가 왜 죽었지?", "부팅부터 지금까지 전체 흐름을 보자."

3. 비교표

비교 항목dmesgjournalctl
영역커널 & 하드웨어 Only시스템 전체 (커널 + 유저 공간)
저장소RAM (Ring Buffer)Disk (/var/log/journal)
재부팅 후사라짐 (초기화)남아있음 (설정 시)
필터링거의 없음 (grep 써야 함)매우 강력함 (옵션 내장)

4. dmesg 대신 joutnalctl 사용 가능

dmesg 기능을 journalctl로 대체하는 방법입니다.

A. 커널 로그만 보고 싶을 때 (dmesg와 동일)

journalctl -k
# -k: Kernel messages only

B. 실시간으로 로그 따라가기 (tail -f 효과)

# dmesg -w 와 비슷하지만 더 강력함
journalctl -f

C. 이번 부팅 로그만 보기 (재부팅 직후)

journalctl -b

D. 빨간색 에러만 골라 보기

journalctl -p err
# -p: Priority (err, warning, info...)

결론적으로, dmesg를 사용해도 괜찮으나, 과거 내역을 보거나 특정 서비스와 연관성을 찾기 위해서는 journalctl 를 사용하면 좋습니다.

profile
임베디드 개발자가 되기 위해 공부중입니다!

0개의 댓글