서버 운영
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에 디스크 크기에 맞는 상한을 둔다.
- 반복 오류를 고친 뒤 로그량을 재확인한다.
- 장기 보관은 별도 로그 저장소로 보낸다.
- 정리 작업이 조사에 필요한 로그를 없애지 않는지 합의한다.
공간 확보보다 반복 오류를 멈추는 수정이 먼저였다. 로그 보존 정책은 청소 명령이 아니라 무엇을 언제까지 조사할지에 대한 운영 결정이다.