본문 바로가기

리눅스

PHP-FPM 로그 파일의 로테이션 설정하는 방법(php-fpm logrotate)

728x90

PHP-FPM 로그 파일의 로테이션 설정하는 방법(php-fpm logrotate)

PHP-FPM (PHP FastCGI Process Manager) 로그 파일을 로테이션(순환)하여 로그 파일 크기를 관리하고 오래된 로그를 보관하려면 logrotate를 사용할 수 있습니다.

PHP-FPM 로그 파일의 로테이션 설정

1. 로그로테이션 설정 파일 생성 또는 편집

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

 

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

  • 다음과 같이 PHP-FPM 로그로테이션 설정을 추가합니다.
/var/log/php-fpm/*.log {
    daily
    rotate 7
    dateext
    missingok
    compress
    delaycompress
    notifempty
    create 0640 www-data adm
    sharedscripts
    postrotate
        /etc/init.d/php7.4-fpm reload >/dev/null 2>&1 || true
    endscript
}
  • 각 옵션에 대한 간단한 설명
    • daily: 매일 로그 파일을 로테이션합니다. 이 옵션을 사용하면 매일 새로운 로그 파일이 생성됩니다. 예를 들어, access.log.1, access.log.2, ...와 같은 형태로 로그 파일이 관리됩니다.
    • rotate 7: 최대 7개의 로그 파일을 유지합니다. 로그 파일이 7개 이상 쌓이면 가장 오래된 로그 파일부터 삭제됩니다. 로그 파일 보관 기간을 제한하는 옵션입니다.
    • dateext: 로그 파일 이름에 날짜 확장자를 추가합니다. 예를 들어, 로그 파일 이름이 access.log.20230810와 같이 날짜가 포함된 형식으로 변경됩니다.
    • missingok: 로그 파일이 없어도 경고 없이 계속 진행합니다. 이 설정은 로그 파일이 없는 경우에도 로테이션 작업을 수행하도록 합니다.
    • compress: 로그 파일을 압축하여 저장합니다. 로그 파일을 압축하면 디스크 공간을 절약할 수 있습니다.
    • delaycompress: 지연 압축 옵션을 사용하면 이전 로그 파일을 압축하는 작업을 지연시킬 수 있습니다. 이전 로그 파일을 유지한 채 압축 작업을 진행하게 됩니다.
    • notifempty: 로그 파일이 비어 있는 경우에도 로테이션 작업을 수행하지 않습니다. 로그 파일에 내용이 없으면 로테이션을 건너뛰게 됩니다.
    • create 0640 www-data adm: 새로운 로그 파일을 생성할 때 해당 파일의 권한과 그룹을 지정합니다. 여기서는 0640 퍼미션으로 www-data 사용자 그룹과 adm 그룹을 지정합니다.
    • sharedscripts: 로그 파일의 로테이션 작업이 끝난 후 postrotate 스크립트를 한 번만 실행합니다. 이렇게 함으로써 여러 로그 파일을 처리하는 경우 중복 실행을 방지할 수 있습니다.
  • 위 설정에서는 /var/log/php-fpm/ 디렉토리에 있는 모든 .log 파일을 매일 로테이션하며, 최대 7개의 로그 파일을 보관합니다. 로그 파일을 압축하고(delaycompress) 지연 압축을 사용하여 이전 로그 파일을 압축하는 데 지연을 줍니다. 새로운 로그 파일 생성 시 퍼미션을 0640으로 설정하며, 로그파일 로테이션 후 PHP-FPM를 재시작하는 명령어를 실행합니다.

3. 로그로테이션 테스트

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

4. 주기 및 설정 변경

  • 설정 파일에서 weekly, rotate, compress, delaycompress 등의 옵션을 변경하여 로그로테이션 주기와 동작을 조정할 수 있습니다.

5. 주의 사항

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

 

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

 

728x90