로그 메시지 확인은, 서비스 에러에 대한 문제 해결하는 방법 중 가장 중요한 방법이라고 생각한다.
해당 서비스를 개발한 개발자는 예외처리에 대한 내용을 모두 로그 메시지에 담았을 것이기 때문이다.
로그 메시지를 확인하는 방법은 여럿 있다. 대표적으로 /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 명령어를 사용해서 살펴보자.