SW/WEB WAS

[Apache] 아파치 로그 파일 관리하기_rotatelogs

yeit 2024. 9. 14. 11:06
728x90

 

[Intro]

웹서비스를 운영하다보면 로그 파일의 용량이 너무 커져서 관리가 어려워지는 경우가 있다. 이를 방지하기 위해 로그 파일을 자동으로 롤오버하여 주기적으로 새 파일로 교체하는 작업이 필요하다.

 

Apache에서는 rotatelogs를 통해 로그 파일을 자동으로 교체할 수 있다. 이를 통해 로그 파일의 크기를 제한하여 파일의 용량이 너무 커지는 것을 방지하고, 날짜별로 로그를 관리하여 특정 기간의 로그를 쉽게 조회할 수 있다.

 

 

rotatelogs 주요 기능

  • 로그 파일 크기 제한 : 로그 파일이 지정된 크기를 초과하면 새 로그 파일로 교체되도록 설정
  • 시간 기반 롤오버 : 일정 시간이 지나면 새로운 로그 파일을 생성하도록 설정
  • 압축 및 보관 :로그 파일을 압축하여 저장 가능

 

설정 방법

httpd.conf 파일에서 CustomLog와 ErrorLog 설정 부분을 아래와 같이 수정해 준다.

# Access 로그 설정
CustomLog "| /usr/sbin/rotatelogs /var/log/httpd/access_log.%Y-%m-%d 86400" combined

# Error 로그 설정
ErrorLog "| /usr/sbin/rotatelogs /var/log/httpd/error_log.%Y-%m-%d 86400"
  • /usr/sbin/rotatelogs : which rotatelogs로 확인한 rotatelogs 경로
  • /var/log/httpd/access_log.%Y-%m-%d : 로그 파일의 기본 이름 설정
  • 86400 : 롤오버 간격(초 단위이므로 24시간을 의미)

 

rotatelogs가 제대로 동작하지 않는다면 Apache가 해당 경로에 로그 파일을 쓸 수 있도록 권한이 올바르게 부여되어 있는지 확인한다.

chmod 755 /var/log/httpd
chown apache:apache /var/log/httpd

ls -ld /var/log/httpd

 

추가로, rotatelogs은 로그 파일을 삭제하지는 않는다. 그러므로 logrotate나 cron을 통해 오래된 로그 파일은 삭제하는 추가 설정이 필요하다.

 

728x90