본문 바로가기

리눅스

journald란

반응형

journald란

journald는 systemd의 로그 관리 서비스로 시스템 및 서비스 로그를 중앙에서 관리합니다. 기본적으로 바이너리 형태로 저장되며 다양한 필터링 및 검색 기능을 제공합니다.

1. 기본 로그 조회

로그를 조회하는 기본 명령어는 journalctl입니다.

전체 로그 출력

journalctl

2. 부팅 후 로그 확인

현재 부팅된 후의 로그만 출력합니다.

journalctl -b

이전 부팅 로그를 출력합니다.

  • -1은 이전 부팅, -2는 두 번째 이전 부팅
journalctl -b -1

3. 특정 서비스 로그 확인

nginx 서비스의 로그를 확인합니다.

journalctl -u nginx

여러 개의 서비스를 함께 조회합니다.

journalctl -u nginx -u php-fpm

4. 실시간 로그 확인

tail -f처럼 실시간 로그를 출력합니다.

journalctl -f

특정 서비스의 실시간 로그를 출력합니다.

journalctl -u nginx -f

5. 특정 시간대의 로그 확인

정 날짜 및 시간의 로그를 출력합니다.

journalctl --since "2024-02-16 12:00:00" --until "2024-02-16 14:00:00"

최근 1시간 동안의 로그를 출력합니다.

journalctl --since "1 hour ago"

6. 특정 프로세스(PID) 로그 확인

PID가 1234인 프로세스의 로그를 조회합니다.

journalctl _PID=1234

7. 특정 사용자 로그 확인

UID가 1001인 사용자의 로그를 조회합니다.

journalctl _UID=1001

8. 로그를 파일로 저장

로그를 파일로 저장합니다.

journalctl -u nginx > nginx.log

압축하여 저장합니다.

journalctl -u nginx | gzip > nginx.log.gz

9. 특정 로그 우선순위(레벨) 필터링

journald는 로그를 중요도별로 저장합니다.

  • 긴급 (emergency) : 0 (시스템 사용 불가)
  • 경고 (warning) : 4
  • 정보 (info) : 6
  • 오류 및 경고 메시지만 확인합니다.
journalctl -p 0..4

(또는)

journalctl -p warning

10. 특정 단어가 포함된 로그 필터링

error가 포함된 로그만 확인합니다.

journalctl | grep "error"

로그를 실시간으로 모니터링하면서 특정 단어를 필터링합니다.

journalctl -f | grep "timeout"

11. 특정 네트워크 인터페이스 관련 로그 확인

eth0 인터페이스의 네트워크 로그를 확인합니다.

journalctl _KERNEL_SUBSYSTEM=net --grep "eth0"

12. 로그 정리 및 삭제

journald의 로그를 수동으로 정리합니다.

  • 전체 로그 삭제(로그를 500MB로 유지)
sudo journalctl --vacuum-size=500M
  • 보관 기간 기준 삭제(7일 이상 된 로그 삭제)
sudo journalctl --vacuum-time=7d

13. 로그 저장 위치 확인

로그가 저장되는 위치를 확인합니다.

journalctl --disk-usage

로그 파일을 확인합니다.

ls -lh /var/log/journal/

journald 설정 변경

journald의 설정을 변경하면 로그 저장 방식, 보관 기간, 크기 제한 등을 조정할 수 있습니다.

journald 설정 변경

journald 설정 파일은 /etc/systemd/journald.conf에 있습니다.

sudo vim /etc/systemd/journald.conf

설정을 수정한 후 적용하려면 journald를 재시작해야 합니다.

sudo systemctl restart systemd-journald

로그 저장 방식 변경

로그 저장 위치를 영구적으로 /var/log/journal/에 저정합니다.

Storage=persistent
  • auto(기본값) : /var/log/journal/가 있으면 영구 저장, 없으면 휘발성 저장
  • volatile : RAM에만 저장 (재부팅 시 삭제)
  • persistent : 영구 저장
  • none : 로깅 비활성화

로그 크기 제한

로그가 너무 많이 쌓이는 것을 방지하려면 크기 제한을 설정합니다.

SystemMaxUse=2G
SystemKeepFree=500M
SystemMaxFileSize=500M
SystemMaxFiles=10
  • SystemMaxUse=2G → 최대 2GB까지만 로그 저장
  • SystemKeepFree=500M → 최소 500MB는 항상 남겨둠
  • SystemMaxFileSize=500M → 단일 로그 파일 최대 크기
  • SystemMaxFiles=10 → 최대 10개의 로그 파일 유지

로그 보관 기간 설정

오래된 로그를 자동 삭제하려면 journald.conf에 추가합니다.

  • 14일이 지난 로그는 자동 삭제됩니다.
MaxRetentionSec=14day

로그 압축 설정

로그 파일을 자동으로 압축하여 저장합니다.

Compress=yes

 

참고URL

- ubuntu manuals : journalctl

 

728x90
반응형