← 전체 글로 돌아가기

서버 운영

journalctl 로그가 디스크를 채운 뒤에야 만든 Linux 보존 기준

로그가 원인을 알려주는 동시에 디스크를 소비한다는 사실을 놓친 운영 실수를 정리했다

디스크 부족의 원인이 로그였다

작은 Ubuntu 서버 사용량이 90%를 넘었다. 업로드 파일부터 찾았지만 큰 파일은 많지 않았다. du와 df 결과가 달라 journal 사용량을 따로 확인했다.

sudo journalctl --disk-usage
sudo du -xhd1 /var | sort -h
sudo df -h /

짧은 오류가 반복되면서 journal이 며칠치 쌓였다. 지우는 명령만 실행하면 원인과 보존 기준이 사라진다.

용량과 기간을 함께 정했다

장애 직전 흐름을 보는 용도라 1GB 또는 14일 중 작은 범위로 제한했다.

sudo journalctl --vacuum-size=1G
sudo journalctl --vacuum-time=14d

영구 설정은 /etc/systemd/journald.conf에 두고 데몬을 재시작했다.

[Journal]
SystemMaxUse=1G
MaxRetentionSec=14day

설정 뒤 journalctl --disk-usage로 적용 여부를 확인했다. 설정이 있다고 기존 로그가 즉시 줄어든다고 생각하면 안 된다.

남긴 체크리스트

  • df와 du를 함께 보고 소비처를 구분한다.
  • journald에 디스크 크기에 맞는 상한을 둔다.
  • 반복 오류를 고친 뒤 로그량을 재확인한다.
  • 장기 보관은 별도 로그 저장소로 보낸다.
  • 정리 작업이 조사에 필요한 로그를 없애지 않는지 합의한다.

공간 확보보다 반복 오류를 멈추는 수정이 먼저였다. 로그 보존 정책은 청소 명령이 아니라 무엇을 언제까지 조사할지에 대한 운영 결정이다.