깐돌의 클라우드 도구함

[Linux] journalctl 실전 활용하기

깐돌씨 2025. 5. 17. 00:16
728x90

systemd는 현대 리눅스 시스템에서 사용되는 서비스 매니저입니다. systemd-journald는 시스템 로그를 관리하는 핵심 서비스로, 바이너리 형식의 로그(journal)을 기록합니다. 본 글은 journalctl 명령어의 실전 활용journald 설정 관리를 중심으로 구성한 실무 가이드입니다.


1. systemd-journald 서비스 확인

시스템 로그를 처리하는 핵심 서비스인 systemd-journald의 상태는 아래 명령어로 확인할 수 있습니다.


systemctl status systemd-journald

● systemd-journald.service - Journal Service
   Loaded: loaded (/usr/lib/systemd/system/systemd-journald.service)
   Active: active (running)
   Status: "Processing requests..."

2. 자주 사용하는 journalctl 명령어

📋 최근 로그 확인


journalctl -n 7

📡 실시간 로그 확인 (tail -f와 유사)


journalctl -f

🕒 날짜 필터 예시

특정 날짜 이후 로그 확인:


journalctl --since 2021-07-14

기간 지정 (2021-07-12 ~ 2021-07-13):


journalctl --since 2021-07-12 --until 2021-07-14

3. 바이너리 journal 로그 확인

journalctl 명령어는 바이너리 로그 파일을 읽기 위해 사용되며, vi나 cat 등 일반 텍스트 뷰어로는 열 수 없습니다.

📂 기본 경로


/run/log/journal/<machine-id>/

📄 특정 파일을 직접 조회


journalctl --file=/run/log/journal/9fbdfba9.../system.journal

4. /var/log/journal 경로에 로그 저장 설정

기본적으로 /run/log/journal는 휘발성 경로이며, 시스템 재부팅 시 로그가 사라집니다. 영구적으로 로그를 보관하려면 /var/log/journal을 생성하고, journald를 재시작해야 합니다.

📁 디렉토리 생성


mkdir -p /var/log/journal
systemctl restart systemd-journald

📂 로그 저장 확인


ls /var/log/journal/<machine-id>/system.journal

기존 /run/log 에 저장되던 로그는 제거되며, /var/log/journal이 기본 경로로 변경됩니다.


5. 저장 크기 및 보관 주기 설정 방법

journal 로그는 /etc/systemd/journald.conf 파일에서 저장 용량과 기간을 제어할 수 있습니다.

📊 현재 디스크 사용량 확인


du -sh /var/log/journal

⚙️ 설정 변경


vi /etc/systemd/journald.conf

[Journal]
SystemMaxUse=250M
#MaxFileSec=1month   # 로그 보관 주기 설정

주석이 되어 있으면 반드시 해제한 후 설정하세요.

♻️ journald 재시작


systemctl restart systemd-journald

이후 systemctl status에서 max 용량 설정이 적용된 것을 확인할 수 있습니다.


✅ 실무 팁 요약

  • journalctl -f 는 실시간 로그 추적에 최적
  • --since, --until 옵션으로 정밀 분석 가능
  • /var/log/journal 경로 설정으로 재부팅 후에도 로그 보존 가능
  • journald.conf로 저장 용량 및 보관기간 유연하게 관리

journal은 바이너리 기반이라 일반 로그 시스템과 다르며, 분석과 추적에 강력한 도구입니다. 위 명령어와 설정을 익히면, 시스템 장애 원인 분석과 추적이 훨씬 쉬워집니다.


728x90
반응형