리눅스 journalctl
IT 위키
더 많은 작업
systemd의 저널 데몬(systemd-journald)이 수집한 로그를 조회한다.
$ 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 디렉터리를 만든다.
- 리눅스 systemd
- systemctl 명령어 : 서비스와 유닛을 관리한다.
- 리눅스 rsyslog
- dmesg 명령어 : 커널 링 버퍼 메시지를 출력한다.
- logrotate 명령어 : 로그 파일을 순환 관리한다.
- 리눅스 로그 파일
- 로그 레벨