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
'리눅스' 카테고리의 다른 글
ssh "Host key verification failed" 오류 해결 방법 (0) | 2023.08.22 |
---|---|
timedatectl 명령어 (0) | 2023.08.22 |
[draft] Nginx 로그 파일을 로테이션 설정하는 방법 (0) | 2023.08.10 |
su 명령어 (0) | 2023.08.09 |
도커 컨테이너에서 systemd를 실행하는 방법 (0) | 2023.08.07 |