journal?
- systemd의 중앙 로그 수집기
- 커널 로그, systemd 로그, stdout, stderr, 부팅/종료 이벤트 등등을 표시해줌
- 기존의 방식은 서비스마다 로그 파일이 따로 존재하다보니 불편했음. 근데 이건 한 번에 볼 수 있음
journal 문법
기본 문법
- 기본적으로 맨 앞에는 journalctl이 온다.
journalctl # 전체 로그 (최신순)
journalctl -u <서비스명> # 서비스 로그
journalctl -u <서비스명> -f # 서비스 실시간 로그
journalctl -k # 커널 로그시간 필터링
- 시간으로 필터링 할 수 있음.
journalctl --since <시간> # 시간 이후 로그
journalctl --until <시간> # 시간 이전 로그- 상대 시간도 사용할 수 있음
| 문자열 | 의미 |
|---|---|
now | 현재 시각 |
today | 오늘 00:00 |
yesterday | 어제 00:00 |
tomorrow | 내일 00:00 |
- ago 표현을 쓰면 편함
journalctl --since "5 minutes ago"
journalctl --since "2 hours ago"
journalctl --since "1 day ago"- ago 사용 가능 단위 (단/복수 가능)
- seconds
- minutes
- hours
- days
- weeks
- months
- years
레벨 필터링
- 로그의 레벨 별로 필터링 할 수 있음.
journalctl -p <로그레벨> # 로그 레벨 필터
# 로그 레벨 (왼쪽으로 갈수록 심각한거)
emerg, alert, crit, err, warning, notice, info, debug
부팅 필터링
- 특정 부팅 로그를 볼 수 있음
journalctl --list-boots # 부팅 목록 확인
journalctl -b 0 # 현재 부팅 확인
journalctl -b -1 # 바로 이전 부팅 확인설정 파일
- 위치 : /etc/systemd/journald.conf

-
이 중에서 storage가 좀 특이함
- auto : 만약에 /var/log/journal 폴더가 있으면 persistent, 없으면 volatile로 작동함
- volatile : 메모리를 사용 (재부팅 시 삭제)
- persistent : 디스크에 저장 (재부팅 해도 남음)
-
디스크에 저장하도록 설정하는 방법
- /var/log/journal 폴더를 만들어주면 됨
mkdir -p /var/log/journal