시스템(Linux)

journalctl 에 대해 알아보겠습니다.

forward error correction Circle 2025. 2. 1. 08:52
반응형

Ⅰ. journalctl 란?

 systemd에 의해 관리되는 시스템 저널 로그입니다. systemd는 리눅스 시스템의 핵심 관리 도구 중 하나로, 서비스 관리, 시스템 부팅 및 종료 등을 담당합니다. systemd의 journald 데몬에 의해 생성된 로그를 확인하는 명령어로, 시스템 전체의 로그를 통합하여 제공합니다. 로그는 바이너리 형식으로 저장되며, /var/log/journal 디렉토리에 위치합니다.

 기존보다 로그를 더욱 체계적으로 관리하고 분석할 수 있는 기능을 제공합니다. 예를 들어, 특정 서비스의 로그를 필터링하거나, 시간 범위를 지정하여 로그를 조회할 수 있습니다. 또한, 로그의 내용을 실시간으로 모니터링할 수도 있습니다.

Ⅱ. journalctl 설정 파일

 위치 : /etc/systemd/journald.conf

Ⅲ. journalctl 상태 확인

 상태     확인 : systemctl status systemd-journald

 서비스 시작 : systemctl start systemd-journald

 서비스 중지 : systemctl stop systemd-journald

Ⅳ. journalctl 활용

ⅰ. 기본 로그 조회

  journalctl (전체 로그 출력)
  : /var/log/messages 대신 systemd가 관리하는 로그를 출력합니다.


ⅱ. 실시간 로그 확인
journalctl -f  (tail -f와 같은 기능)

 : 시스템 로그를 실시간으로 출력하며, 새 로그가 생성되면 자동으로 업데이트됩니다.


ⅲ. 부팅 관련 로그 조회
journalctl -b (마지막 부팅 로그 확인)
 : 현재 부팅에서 발생한 모든 로그를 출력합니다.


ⅳ. 이전 부팅 로그 확인
 journalctl -b -1(직전 부팅 로그를 확인합니다.)
  : 여러 번 부팅했을 경우 -b -2, -b -3 등으로 조회 가능.

 

ⅴ. 시간 기준으로 로그 검색
journalctl --since "2024-01-01 00:00:00"  (특정 시간 이후의 로그 확인)
 : "YYYY-MM-DD HH:MM:SS" 형식으로 사용되며, "yesterday" 또는 "1 hour ago" 같은 상대적 표현도 가능.

ⅵ. 특정 시간 범위의 로그 확인
journalctl --since "2024-01-01 00:00:00" --until "2025-01-28 12:00:00" ("until" 옵션을 추가하면 해당 기간 동안의 로그)

ⅶ. 서비스 관련 로그 검색
journalctl -u sshd (특정 서비스(systemd unit)의 로그 확인)
 : sshd.service의 로그를 출력.

 

ⅷ. 여러 개의 서비스 조회 가능:
journalctl -u nginx -u mysql (특정 서비스의 마지막 부팅 로그 확인)


ⅸ. 특정 사용자 또는 프로세스의 로그 검색
journalctl _UID=0 (특정 사용자 관련 로그 조회)

 : UID 0을 가진 사용자의 로그를 출력.사용자명을 알고 있다면 id 사용자명 명령어로 UID 확인 가능.


ⅹ. 부팅 로그 크기 제한 및 정리
journalctl --disk-usage  (로그 크기 확인)
 : 로그 파일이 차지하는 디스크 공간을 표시.

Ⅴ.  journalctl 로그 필터링 예제

명령어 설명
journalctl -n 50 최근 50개 로그 출력
journalctl -p 3 긴급(critical) 이상 로그만 출력
journalctl -p err  error 에러 이상의 로그만 출력
journalctl -k 커널 로그(dmesg) 출력
journalctl --grep "error"  특정 문자열 포함 로그 검색

 

반응형