본문 바로가기

리눅스

Nginx 로그 파일의 로테이션 설정하는 방법(nginx logrotate)

반응형

Nginx 로그 파일의 로테이션 설정하는 방법(nginx logrotate)

Nginx 로그 파일을 주기적으로 로테이션(순환)하여 로그 파일 크기를 관리하고 오래된 로그를 보관하려면 logrotate를 사용할 수 있습니다.

Nginx 로그 파일의 로테이션 설정

1. 로그로테이션 설정 파일 생성

  • 로그로테이션 설정 파일을 생성하거나 수정합니다.
  • 대부분의 리눅스 시스템에서 로그로테이션 설정 파일은 /etc/logrotate.conf 또는 /etc/logrotate.d/nginx와 같은 경로에 위치할 수 있습니다.
sudo vim /etc/logrotate.d/nginx

 

2. 로그로테이션 설정 추가

  • 다음과 같이 Nginx 로그로테이션 설정을 추가합니다.
/var/log/nginx/*.log {
    daily
    rotate 7
    dateext
    missingok
    compress
    delaycompress
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
        /bin/kill -USR1 `cat /run/nginx.pid 2>/dev/null` 2>/dev/null || true
    endscript
}
  • 각 옵션에 대한 간단한 설명
    • daily: 매일 로그를 로테이션합니다. 일별로 새로운 로그 파일이 생성됩니다.
    • rotate 7: 최대 7개의 로그 파일을 보관합니다. 로그 파일이 7개 이상 쌓이면 오래된 로그 파일부터 삭제됩니다.
    • dateext: 로그 파일 이름에 날짜 확장자를 추가합니다. 예를 들어, access.log.20230810와 같은 형식으로 로그 파일이 생성됩니다.
    • missingok: 로그 파일이 없는 경우에도 경고 없이 진행합니다. 로그 파일이 없더라도 로테이션은 진행됩니다.
    • compress: 로그 파일을 압축하여 저장합니다. 로그 파일의 용량을 줄이고 디스크 공간을 절약할 수 있습니다.
    • delaycompress: 이전 로그 파일을 압축하는데 지연을 줍니다. 다음 로그 로테이션이 발생할 때까지 압축을 지연시킵니다.
    • notifempty: 로그 파일이 비어 있으면 로테이션하지 않습니다. 내용이 없는 로그 파일은 로테이션 대상에서 제외됩니다.
    • create 0640 www-data adm: 새로운 로그 파일을 생성할 때의 파일 권한을 설정합니다. 여기서는 0640 퍼미션으로 www-data 사용자 그룹과 adm 그룹을 지정합니다.
    • sharedscripts: 로그파일 로테이션 후 스크립트를 실행할 때 중복 실행을 방지합니다. 여러 로그 파일이 있는 경우 한 번만 스크립트가 실행됩니다.
  • 위 설정에서는 /var/log/nginx/ 디렉토리에 있는 모든 .log 파일을 매일 로테이션하며, 최대 7개의 로그 파일을 보관합니다. 새로운 로그 파일 생성 시 퍼미션을 0640으로 설정하며, 로그파일 로테이션 후 Nginx를 재시작하는 명령어를 실행합니다.

 

3. 로그로테이션 테스트

  • logrotate 설정이 올바른지 확인하려면 다음 명령어로 로그로테이션을 직접 실행해 볼 수 있습니다.
sudo logrotate -f /etc/logrotate.d/nginx
  • -f 옵션은 강제 실행을 의미합니다.

4. 로그로테이션 주기 설정

  • daily 대신 weekly, monthly와 같은 다른 주기를 선택할 수 있습니다. 또한 로그 로테이션 주기를 변경하려면 설정 파일에서 daily 부분을 수정하면 됩니다.

5. 주의 사항

  • 로그 파일의 경로와 설정은 시스템 및 Nginx 구성에 따라 다를 수 있습니다. 로그로테이션 설정을 변경하려면 주의 깊게 검토하고 테스트한 후에 적용하세요.

이 설정을 사용하여 Nginx 로그 파일을 로테이션하면 로그 파일 관리가 용이하며, 디스크 공간을 효율적으로 활용할 수 있습니다.

 

728x90
반응형