[CentOS] Journalctl

devvace ㅣ 2018. 1. 15. 11:34

로그 메시지 확인은, 서비스 에러에 대한 문제 해결하는 방법 중 가장 중요한 방법이라고 생각한다.

해당 서비스를 개발한 개발자는 예외처리에 대한 내용을 모두 로그 메시지에 담았을 것이기 때문이다.

로그 메시지를 확인하는 방법은 여럿 있다. 대표적으로 /var/log/... 경로에 들어가보면 로그 메시지들을 확인할 수 있다.


CentOS 7버전 부터는 systemctl을 사용해서 대부분의 서비스들을 관리할 수 있다.

그 기능중에 journalctl라는 놈을 통해서 서비스 로그 확인이 가능하다.

다음은 이 명령어의 사용 법이다.




전반적인 로그 확인 방법

- 현재 실행 중인 서비스의 로그를 모두 보여준다.

# journalctl



특정 날짜를 통한 방법

- 오늘 발생한 로그를 확인한다.

# journalctl --since=today


- 특정 기간에 발생한 로그를 확인한다.

# journalctl --since=yyyy-MM-dd --util=yyyy-MM-dd



특정 속성에 따른 로그 확인 방법

- 로그의 중요도에 따라 출력할 수 있다. ([option] = {emerg, alert, crit, err, warning, notic, info, debug})

# journalctl -p [option]



특정 서비스 로그 확인 방법

- 사용자가 지정한 서비스에 대한 로그만 출력할 수 있다.

- 보통 모든 서비스 로그를 출력하면 구분하기 어렵기 때문에,  주로 | grep 명령어를 통해 필터하거나, 이 명령어를 사용한다.

# journalctl -u test.service    or    journalctl -u test


- 로그가 많으면 최근 발생한 로그 데이터를 확인하기가 번거롭기 때문에, -r 옵션을 통해 최근 발생한 로그부터 정렬하는 명령어를 사용할 수 있다.

# journalctl -r -u test.service



로그 유지 및 관리 방법

- 계속해서 로그가 발생하다보면, 검색할 때 리소스를 잡아먹거나, 용량이 증가되어 곤란할 수 있다.

- 다음 명령어를 사용하면 특정 조건에 해당할 때 로그를 자동으로 삭제해준다.

- 먼저 로그를 이틀만 저장하는 경우,

# journalctl --vacuum-time=2d


- 다음은 500MB 크기 만큼만 유지하게 설정하는 법

# journalctl --vacuum-size=500M






더 이상 자세한 내용은 # man journalctl 명령어를 사용해서 살펴보자.