logrotate

agnusdei·2024년 7월 10일

로그 로테이트 설정 작성에 대한 마크다운 가이드는 아래와 같습니다:

Logrotate 설정 작성 가이드

Logrotate는 리눅스 시스템에서 로그 파일을 관리하고, 이를 주기적으로 회전하여 공간을 절약하고 로그 파일의 유지 관리를 자동화하는 유틸리티입니다.

기본 설정 파일 위치

  • Logrotate의 주 설정 파일은 보통 /etc/logrotate.conf에 위치합니다.
  • 각 개별 서비스 또는 어플리케이션의 로그를 관리하는 추가 설정 파일은 보통 /etc/logrotate.d/ 디렉토리에 위치합니다.

Logrotate 설정 옵션

  1. rotate [숫자]

    • 로그 파일을 유지할 최대 개수를 설정합니다.
    • 예: rotate 5는 최대 5개의 로그 파일을 유지하며, 추가되는 로그는 순환하면서 이전 로그 파일을 삭제합니다.
  2. maxage [숫자]

    • 로그 파일이 보관될 최대 기간을 설정합니다 (일 단위).
    • 예: maxage 30은 로그 파일이 생성된 후 30일이 지나면 해당 로그 파일을 삭제합니다.
  3. size [크기]

    • 로그 파일이 특정 크기를 초과하면 로테이트를 실행합니다.
    • 예: size 10M은 로그 파일이 10MB를 초과하면 로테이트를 실행합니다.
  4. compress

    • 로그 파일을 압축하여 저장합니다.
    • 예: compress는 로그 파일을 압축하여 저장합니다.
  5. postrotate / endscript

    • 로테이트 실행 후 추가로 실행할 명령어를 정의합니다.
    • 예:
      postrotate
          /bin/kill -HUP `cat /var/run/nginx.pid 2>/dev/null` 2>/dev/null || true
      endscript
      • 위 예제는 Nginx 로그를 로테이트한 후 Nginx 프로세스에 HUP 시그널을 보내 로그 파일을 다시 열게 합니다.

예시 Logrotate 설정 파일

아래는 Nginx 로그를 로테이트하는 예시 설정 파일입니다.

/var/log/nginx/*.log {
    daily
    rotate 7
    missingok
    notifempty
    compress
    delaycompress
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/nginx.pid 2>/dev/null` 2>/dev/null || true
    endscript
}
  • daily: 매일 로테이트를 실행합니다.
  • rotate 7: 최대 7개의 로그 파일을 유지합니다.
  • missingok: 로그 파일이 없어도 오류를 발생시키지 않습니다.
  • notifempty: 비어 있으면 로테이트를 실행하지 않습니다.
  • compress: 로그 파일을 압축합니다.
  • delaycompress: 이전 로그 파일을 압축하지 않고 다음 로테이트에서 압축합니다.
  • sharedscripts: 모든 로그 파일에 대해 하나의 postrotate 스크립트를 한 번만 실행합니다.

이 가이드를 참고하여 자신의 시스템에 맞게 로그 로테이트 설정을 작성할 수 있습니다.

profile
DevSecOps Pentest🚩

0개의 댓글