본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

systemd의 저널 데몬(systemd-journald)이 수집한 로그를 조회한다.

  • systemd를 사용하는 리눅스 배포판(RHEL/Rocky Linux 7 이후, Ubuntu 15.04 이후)에서 사용
  • 경로 : /usr/bin/journalctl
  • 설정 파일 : /etc/systemd/journald.conf
  • 저널 저장 위치 : /run/log/journal(휘발성), /var/log/journal(영구 저장)
$ journalctl [옵션] [필드=값]
  • -u, --unit=유닛 : 지정한 유닛(서비스)의 로그만 출력한다.
  • -b, --boot[=ID] : 특정 부팅 이후의 로그만 출력한다. 값이 없으면 현재 부팅, -1이면 직전 부팅이다.
  • --list-boots : 저널에 기록된 부팅 목록을 출력한다.
  • -k, --dmesg : 현재 부팅의 커널 메시지만 출력한다.
  • -f, --follow : 새로 기록되는 로그를 실시간으로 출력한다. (tail -f와 유사)
  • -n, --lines=개수 : 최근 로그를 지정한 줄 수만큼 출력한다.
  • -r, --reverse : 최신 로그부터 역순으로 출력한다.
  • -e, --pager-end : 페이저에서 로그의 끝부분으로 바로 이동한다.
  • -p, --priority=우선순위 : 지정한 우선순위 이상(숫자가 작거나 같은)의 로그만 출력한다. emerg(0), alert(1), crit(2), err(3), warning(4), notice(5), info(6), debug(7)을 사용하며, 범위(예: err..crit)도 지정할 수 있다.
  • --since=시각 / --until=시각 : 시간 범위를 지정한다. "2024-01-01 10:00:00", "yesterday", "today", "1 hour ago" 등의 형식을 쓴다.
  • -o, --output=형식 : 출력 형식을 지정한다. short(기본값), verbose, json, json-pretty, cat 등이 있다.
  • -x, --catalog : 메시지 카탈로그의 설명을 덧붙여 출력한다.
  • --no-pager : 페이저를 사용하지 않고 표준 출력으로 내보낸다.
  • --disk-usage : 저널 파일이 차지하는 디스크 용량을 출력한다.
  • --vacuum-size=크기, --vacuum-time=기간 : 지정한 크기/기간을 넘는 오래된 저널 파일을 삭제한다.
# sshd 서비스의 로그를 출력한다.
$ journalctl -u sshd

# 현재 부팅 이후 오류(err) 이상 등급의 로그만 출력한다.
$ journalctl -b -p err

# httpd 로그를 실시간으로 따라가며 출력한다.
$ journalctl -u httpd -f

# 특정 시간 범위의 로그를 출력한다.
$ journalctl --since "2024-05-01 09:00:00" --until "2024-05-01 12:00:00"

# 커널 메시지만 출력한다. (dmesg와 유사)
$ journalctl -k

# 2주보다 오래된 저널을 정리한다.
# journalctl --vacuum-time=2weeks
  • 특정 서비스 로그는 -u, 실시간 확인은 -f, 커널 메시지는 -k, 부팅 단위 조회는 -b 옵션을 쓴다는 점이 자주 출제된다.
  • -p 옵션의 우선순위 이름과 숫자(0 emerg ~ 7 debug)는 syslog 우선순위와 같다.
  • 저널을 재부팅 후에도 보존하려면 /etc/systemd/journald.conf에서 Storage=persistent로 설정하거나 /var/log/journal 디렉터리를 만든다.