리눅스 로그 관리를 위한 logrotate 사용법 가이드

서버 운영 시 로그 파일이 계속 쌓여 디스크 용량을 압박하는 경우가 많습니다.
이럴 때 리눅스의 표준 로그 관리 도구인 logrotate를 활용하면 자동으로 로그 파일을 회전(rotate)하고, 오래된 로그는 압축하거나 삭제할 수 있어 관리가 매우 편리해집니다.


logrotate란?

logrotate는 리눅스 시스템에서 로그 파일을 주기적으로 관리해주는 도구입니다.

  • 로그 파일 크기 또는 날짜 기준으로 파일을 분할
  • 오래된 로그를 압축하여 공간 절약
  • 보관 주기와 보관 개수를 설정해 자동 삭제

logrotate 기본 동작 방식

  1. 설정 파일에 로그 파일 경로와 회전 정책을 작성
  2. logrotate가 주기적으로 실행되어 로그 파일을 백업 및 새로 생성
  3. 필요에 따라 압축, 삭제, 권한 변경 등 추가 작업 수행

logrotate 설정 위치

  • 전역 설정 파일: /etc/logrotate.conf
  • 개별 애플리케이션 설정: /etc/logrotate.d/ 디렉터리 내 파일

간단한 logrotate 설정 예시

다음은 /var/log/myapp.log 파일을 매일 회전하며, 7일간 보관하고, 오래된 로그는 압축하는 설정입니다.

/var/log/myapp.log {
daily # 매일 로그 회전
rotate 7 # 7개 로그 파일 보관
missingok # 로그 파일이 없어도 에러 안 냄
notifempty # 빈 로그 파일은 회전 안 함
compress # 오래된 로그는 gzip 압축
delaycompress # 가장 최근 로그는 압축하지 않음
copytruncate # 로그 파일을 복사 후 초기화 (프로그램 재시작 불필요)
create 0640 root adm # 새 로그 파일 권한과 소유자 설정
}

주요 옵션 설명

옵션설명
daily매일 로그 회전
weekly매주 로그 회전
monthly매월 로그 회전
rotate NN개의 이전 로그 파일 보관
compress회전된 로그 파일을 gzip으로 압축
delaycompress최신 로그 제외 후 다음 회전부터 압축
copytruncate로그 파일 복사 후 원본 초기화 (서비스 재시작 없이 사용 가능)
missingok로그 파일 없으면 에러 무시
notifempty로그 파일이 비어 있으면 회전하지 않음
create새 로그 파일 생성 시 권한과 소유자 설정

logrotate 테스트와 강제 실행

  • 설정 테스트(시뮬레이션)
    sudo logrotate -d /etc/logrotate.d/myapp
  • 강제 실행
    sudo logrotate -f /etc/logrotate.d/myapp

logrotate 자동 실행

대부분 리눅스 배포판에서는 /etc/cron.daily/logrotate 스크립트가 매일 자동으로 실행되어,
/etc/logrotate.conf/etc/logrotate.d/ 내 설정을 기반으로 로그를 관리합니다.


마무리

logrotate는 리눅스 서버 운영 시 로그 관리를 자동화하는 가장 기본적이고 강력한 도구입니다.
적절한 설정을 통해 서버 디스크 용량 문제를 예방하고, 로그를 효율적으로 관리해보세요!

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다