Logrotate: 로그 관리를 위한 자동화 도구
logrotate
는 서버 및 애플리케이션 로그 파일의 용량을 효과적으로 관리하기 위해 사용되는 Linux 유틸리티입니다. 로그 파일이 일정 크기에 도달하거나 일정 기간이 경과했을 때, logrotate
를 통해 로그를 자동으로 순환(rotating)하고 필요 시 압축, 삭제할 수 있습니다. 이를 통해 시스템의 로그 저장 공간을 절약하고, 로그 관리에 대한 부담을 줄일 수 있습니다.
Table of Contents
Logrotate의 기본 원리
logrotate
는 주기적으로 로그 파일의 상태를 점검하고, 설정 파일에 정의된 규칙에 따라 로그 파일을 순환합니다. 예를 들어, 특정 파일의 크기가 일정 이상이 되면, 새 로그 파일을 생성하고 기존 파일을 백업하거나 삭제하여 로그 파일 크기를 관리합니다. 이를 통해 저장 공간을 효율적으로 사용하고, 오래된 로그 데이터가 불필요하게 쌓이는 것을 방지할 수 있습니다.
설치 및 기본 설정
대부분의 Linux 배포판에 기본적으로 logrotate
가 포함되어 있습니다. logrotate
가 설치되지 않은 경우 다음과 같이 설치할 수 있습니다:
|
|
logrotate
의 기본 설정 파일은 /etc/logrotate.conf
에 위치하며, 개별 애플리케이션의 설정 파일은 /etc/logrotate.d/
디렉터리에 배치할 수 있습니다.
Logrotate 설정 파일 구조
logrotate
의 설정 파일은 global
설정과 per-logfile
설정으로 구분됩니다. global
설정은 /etc/logrotate.conf
에 위치하며, 개별 로그 파일에 대한 세부 설정은 /etc/logrotate.d/
내 각 파일에서 정의할 수 있습니다.
기본 설정 파일 예제 (/etc/logrotate.conf)
|
|
주요 설정 옵션
다양한 logrotate
옵션을 통해 로그 파일 관리 정책을 세부적으로 조정할 수 있습니다.
옵션 | 설명 |
---|---|
daily | 로그 파일을 매일 회전합니다. |
weekly | 로그 파일을 매주 회전합니다. |
monthly | 로그 파일을 매월 회전합니다. |
rotate | 보관할 로그 파일의 개수를 지정합니다. |
compress | 회전한 로그 파일을 gzip으로 압축합니다. |
delaycompress | 회전 후 다음 회전까지 파일 압축을 지연합니다. |
create | 새로운 로그 파일을 생성할 때 권한과 소유자를 설정합니다. |
notifempty | 로그 파일이 비어있으면 회전을 수행하지 않습니다. |
mail | 지정한 이메일 주소로 로그 파일을 보냅니다. |
postrotate | 로그 파일이 회전한 후 실행할 명령어를 지정합니다. |
Logrotate 예제
다음은 Apache 로그 파일에 대해 logrotate
설정을 적용한 예제입니다.
|
|
위 설정은 Apache 로그 파일을 매일 회전하고, 최근 7개의 로그 파일만 보관하며, 오래된 파일은 압축하도록 합니다. 또한, 새 로그 파일을 생성할 때 www-data 사용자와 그룹 소유자로 설정하며, 로그 파일을 회전한 후 Apache 서버를 재시작합니다.
결론
logrotate
는 로그 파일 관리를 자동화하고 저장 공간을 효율적으로 사용하는 데 매우 유용한 도구입니다. logrotate
를 통해 로그 파일의 크기와 개수를 조절하고, 압축 및 삭제를 자동화할 수 있어 시스템 성능 관리와 로그 보관에 도움이 됩니다.