Server/Linux

journalctl이란? systemd의 로그 뷰어

범데이 2025. 6. 20. 22:48

 

Linux 시스템에서는 다양한 로그가 발생한다. 과거에는 syslog, rsyslog 등의 시스템 로그 데몬을 통해 로그를 관리했지만,

modern Linux 배포판에서는 systemd가 기본 init 시스템으로 자리 잡으면서 journalctl이라는 로그 관리 도구가 함께 제공된다.

 

1. journalctl의 개요

journalctl은 systemd journal 로그를 조회하고 관리하는 명령어 도구이다.

시스템 부팅 로그, 서비스 상태 로그, 커널 메시지 등을 통합적으로 관리하며, 로그 필터링 및 검색 기능도 제공한다.

 

 

2. 기존 syslog와의 차이점

항목 syslog journalctl (systemd)
로그 포맷 텍스트 중심 바이너리 로그 (압축, 메타데이터 포함)
저장 위치 /var/log/messages 등 /run/log/journal 또는 /var/log/journal
쿼리 기능 grep 등 외부 도구 필요 시간, 서비스, 부팅 UUID 등 필터링 지원
로그 구조 선형적 구조화된 메타데이터 기반

 

 

3. journalctl의 주요 기능

아래 주요 기능 중 "★" 표시는 실제 로그 관리 시 많이 사용되니 참고하면 좋을 듯 하다.

 

★ 전체 로그 출력

journalctl

 

★ 특정 서비스 로그만 보기

journalctl -u nginx.service

 

★ 로그가 기록된 범위 확인하기

journalctl --list-boots

 

이 명령은 시스템에 저장된 각 부팅의 로그 시작 시점과 종료 시점을 보여준다.

 

가장 위에 있는 로그가 현재 저장된 최초 로그 시점이며, 0번 부팅은 현재 시스템이 동작 중인 로그를 의미한다.

 

로그 전체 디스크 사용량 확인

journalctl --disk-usage

이 명령어는 현재 systemd journal 로그가 디스크에서 차지하고 있는 전체 용량을 보여준다.

 

  • Archived: 이전 부팅 시 생성된 로그
  • Active: 현재 부팅 이후 생성 중인 로그

둘을 합산한 값이 표시되며, SystemMaxUse 등의 설정을 통해 이 용량은 자동으로 순환 관리된다.

 

시간 기준 조회

journalctl --since "2024-12-01" --until "2024-12-03"

 

현재 부팅 이후 로그

journalctl -b

 

실시간 로그 보기 (tail)

journalctl -f

 

 

4. 로그 저장 방식

  • 기본적으로 systemd는 메모리 또는 디스크에 로그를 저장한다.
  • /etc/systemd/journald.conf에서 Storage= 항목에 따라 아래처럼 저장 위치가 달라진다
설정 저장 위치 특징
volatile /run/log/journal 메모리 저장, 재부팅 시 사라짐
persistent /var/log/journal 디스크 저장, 재부팅 후에도 유지됨
auto (기본) 폴더 유무로 자동 판별 /var/log/journal 있으면 디스크, 없으면 메모리

 

 

5. 언제 쓰면 좋은가?

  • 특정 서비스의 실행 실패 원인 확인할 때
  • 서버 다움 원인 분석 시 커널 메시지 확인할 때
  • 시스템 부팅 시 문제 발생 여부 점검 시

 

마치며

journalctl은 단순한 로그 뷰어를 넘어 systemd 기반 시스템 운영의 핵심 도구이다.

서비스 디버깅, 시스템 점검, 성능 분석 등 다양한 상황에서 효율적인 로그 접근을 가능하게 해준다.

728x90
반응형