Server/Linux

journalctl 로그 관리 - 설정과 보관 기간 다루기

범데이 2025. 6. 20. 23:00

 

journalctl은 로그를 확인하는 도구지만, 실제 로그가 어떻게 저장되고 얼마나 오래 보관되는지는 systemd의 저널 데몬 설정(systemd-journald)에 의해 결정된다. 

 

이번 글에서는 로그가 저장되는 경로, 설정 방법, 그리고 보관 기간을 조절하는 방법까지 함께 살펴본다.

 

1. 로그 저장 위치는 어디인가?

journal 로그는 /etc/systemd/journald.conf 파일의 Storage 옵션에 따라 저장 위치가 달라진다.

Storage 설정 값 로그 저장 위치 설명
volatile /run/log/journal 메모리 저장. 재부팅 시 로그 소멸
persistent /var/log/journal 디스크 저장. 재부팅 후에도 유지
auto (기본값) 자동 감지 /var/log/journal 폴더가 있으면 persistent, 없으면 volatile 사용

 

확인 방법:

ls /var/log/journal
  • 존재하면 persistent 저장 중이다.

 

2. journald 설정 확인 및 변경

기본 설정 파일:

/etc/systemd/journald.conf

기본값은 대부분 주석처리되어 있으며, systemd는 내부 기본값으로 동작한다. 로그 보관 기간이 짧은 경우, 이 설정을 명시적으로 추가해야 한다.

 

주요 설정 항목

항목 설명
SystemMaxUse= 로그 저장에 사용할 최대 용량 (예: 1G, 500M)
SystemKeepFree= 디스크에 남겨둘 최소 여유 공간
SystemMaxFileSize= 각 로그 파일의 최대 크기
SystemMaxFiles= 보관할 로그 파일의 최대 개수
MaxRetentionSec= 최대 보관 시간 (예: 1month, 2week)

 

설정 예시:

[Journal]
Storage=persistent
SystemMaxUse=5G
SystemMaxFileSize=200M
MaxRetentionSec=1month

 

 

현재 나의 서버에는 파일 개수 상관없이 총 용량 5GB로 제한했다.

 

 

3. 설정 적용 방법

설정 변경 후, journald를 재시작해야 반영된다:

sudo systemctl restart systemd-journald

 

 

4. 현재 사용량 및 상태 확인

로그 저장 용량 확인:

journalctl --disk-usage

 

로그가 시작된 시점 확인:

journalctl --list-boots

 

오래된 로그 보관 여부 테스트:

journalctl --since "10 days ago"

 

 

5. 로그 삭제 및 정리

불필요한 오래된 로그를 수동으로 정리할 수도 있다.

sudo journalctl --vacuum-time=7d       # 7일 이전 로그 삭제
sudo journalctl --vacuum-size=1G       # 1GB 초과 로그 삭제
sudo journalctl --vacuum-files=5       # 5개 초과 파일 삭제

 

 

6. 로그 보관 전략 팁

  • 자주 발생하는 로그가 많다면 SystemMaxUse를 넉넉히 설정해야 한다.
  • 재부팅 후에도 로그가 필요하다면 반드시 Storage=persistent로 설정하고 /var/log/journal 폴더를 만들어야 한다.
  • 서버 용량이 넉넉하지 않다면 SystemMaxFileSize와 SystemMaxFiles를 적절히 제한해 디스크 점유를 제어할 수 있다.

 

마치며

journalctl은 단순히 로그를 보는 도구가 아니라, systemd 환경에서는 로그의 저장, 보관, 정리까지 통합적으로 관리할 수 있는 강력한 시스템이다. 적절한 설정을 통해 문제 분석에 필요한 로그를 충분히 확보하면서도, 디스크 공간도 효율적으로 사용할 수 있다.

728x90
반응형