devops
Nginx 로그 날짜 별로 관리하기
yougeun
2024. 11. 24. 22:04
728x90
문제점
/var/log/nginx의 로그를 보면 access.log 1 , access.log 2와 같이 날짜 별로 로그가 나오지 않아 특정 날짜에 일어난 로그를 찾아보기 힘들다.
해결방안
로그 파일의 앞에 날짜를 붙혀 특정 날짜의 log를 쉽게 찾는다.
1. logrotate의 nginx 설정 파일 이동
sudo vim /etc/logrotate.d/nginx
2. 설정 파일 수정
(1) 수정 전
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi \
endscript
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
endscript
}
(2) 수정 후
/var/log/nginx/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
dateext # 날짜 별로 정렬
dateformat .%Y_%m_%d # 날짜형식
extension .log # ./log 형식으로 생성
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi \
endscript
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
endscript
}
3. 수정파일 적용
sudo logrotate -f /etc/logrotate.d/nginx
4. 결과
오늘 날짜는 access.log에 저장되고 날짜가 지나면 이전 날짜의 로그파일은 날짜를 포함한 log 파일로 변경됨
728x90