Linux journalctl 사용법

 

리눅스용 시스템/서비스 매니저인 systemd 는 로그 데이타를 journal 이라는 바이너리 형식으로 저장합니다.

journalctl 은 저널에서 로그를 검색하고 볼 수 있는 유틸리티로 RedHat Enterprise Linux/CentOS 7 이상, Ubuntu 18 이상 사용자라면 시스템 관리를 위해서는 꼭 알아둬야 할 명령어입니다.

 

저널 보기

기본 보기

옵션없이 journalctl 을 실행하면 systemd 의 로그를 볼 수 있습니다.

journalctl

notice 나 warning 인 로그는 굵은 색으로 표시되며 error 는 빨간 색으로 표시되므로 로그의 중요도를 쉽게 파악할 수 있습니다.

 

최근 메시지만 보기

-n 옵션을 사용하면 최근 10 개 메시지만 표시할 수 있습니다.

journalctl -n

 

만약 -n 뒤에 숫자를 명시하면 해당 숫자만큼 최근 로그 메시지를 표시하며 아래 예제는 7개의 최근 로그 메시지를 보여줍니다.

journalctl -n 7

message catalog 사용

-x 옵션을 추가하면 message catalog 에서 해당 저널에 대한 상세 설명을 추가해서 보여 줍니다.

 

 

 

마지막 라인 표시

-n  옵션을 사용하지 않을 경우 처음 저널부터 표시합니다. -e(pager end) 옵션을 주면 pager 를 사용해서 마지막 에러 메시지 라인부터 볼 수 있습니다.

 

짤리는 페이지 개행하기

가끔 터미널의 컬럼 길이가 작을 경우 pager 가 개행을 하지 않아서 메시지가 잘려서 표시될 수 있습니다. 이런 경우 --no-pager 옵션을 사용하면 pager 를 사용하지 않으므로 짤리는 페이지 없이 저널을 볼 수 있습니다.

변경 사항 계속 보기

tail -f 옵션처럼 -f 를 사용하면 마지막 로그 내용을 보여준 후에 이후에 변경되는 로그 파일의 내용을 계속 출력해 줍니다.

 

필터링

특정 PID 저널만 보기

_PID={PID} 옵션을 사용하면 특정 PID 관련한 저널만 볼 수 있습니다. 아래는 pid 가 872 인 프로세스가 생성한 최근 10개의 저널을 보여 줍니다.

 

우선 순위로 필터링하기

-p 옵션을 사용하면 저널의 우선 순위(emerg, alert, crit, err, warning, notice, info, debug) 에 따라 저널을 필터링해서 볼 수 있습니다.

 

우선 순위가 높을수록 숫자가 낮으므로(emerg  = 0, debug = 7) 지정한 레벨 이상의 로그만 출력하며 다음 예제는 crit 이상인 레벨을 표시하므로 emerg, alert 저널도 같이 표시 됩니다.

 

날자/시간으로 필터링

--since 와 --until 옵션을 사용하면 특정 기간내의 저널만 뽑아서 볼 수 있습니다.

 

다음은 20년 1월 9일 이후에 생성된 저널만 표시합니다.

 

1월9일, 10일에 생성된 저널만 보고 싶을 경우 --until 옵션을 추가하면 되며 주의할 점은 util 은 ~ 전까지이므로 01-11로 지정해야 10일까지 저널이 표시됩니다.

 

날자는 yesterday, today, tomorrow 같은 단어를 주어도 되며 아래 예제는 어제와 오늘 생성된 저널을 표시합니다.

 

저널이 많을 경우 시간이나 분으로 필터링할 수도 있습니다. 예로 아래는 최근 2시간전에 생성된 저널중 10분이전까지 저널만 표시합니다.

 

같이 보기

 

참고