서버 3대장(Nginx, Apache, Tomcat) logrotate 완벽 가이드: 디스크 풀 방지
1. 서론: 새벽 3시의 재앙, No space left on device 리눅스 서버 인프라를 운영하면서 겪는 가장 당혹스럽고 허탈한 장애 원인 중 1위는 단연 **디스크 용량 100% 고갈(Disk Full)**입니다. 웹 서비스 트래픽이 평소보다 조금만 급증해도 Nginx의 access.log나 Tomcat의 catalina.out 파일은 하루에 수 GB에서 수십 GB씩 눈덩이처럼 불어납니다. 디스크가 100% 차는 순간: 데이터베이스(MySQL, PostgreSQL)는 쓰기 작업을 거부하며 즉각 비정상 종료(Crash)됩니다. WAS는 세션 및 임시 파일을 생성하지 못해 500 에러를 뿜어냅니다. 관리자 터미널(SSH) 접속조차 PTY 할당 실패로 막혀버려 긴급 조치조차 어려워집니다. 이러한 참사를 사전에 방지하기 위한 리눅스 표준 솔루션이 바로 **logrotate**입니다. 이번 포스팅에서는 logrotate의 내부 동작 원리(시그널 방식 vs copytruncate), 파일 핸들의 비밀, 서버 3대장(Nginx, Apache, Tomcat)의 프로덕션 설정 템플릿, 그리고 디버깅 검증 기법까지 완벽히 정리합니다. ...