[Apache] Apache 로그 파일 크기의 비대화
본문 바로가기
IT 이야기/Apache

[Apache] Apache 로그 파일 크기의 비대화

by 찬찬이 아빠 2020. 10. 19.
반응형

Web 서버를 운영하다보면 매일 매일 로그 정보가 파일에쌓이게 됩니다.
만약 로그 로테이션이 제대로 설정되어 있지 않으면 파일 하나에 로그 내용이 계속 쌓이게 되고 파일의 비대화를 초래하게 됩니다.

파일이 비대화되면 장애 발생 시 로그 분석에 어려움이 발생합니다.

여기서 로그 로테이션(Log Rotation)이란 로그 파일이 비대해지는 것을 방지하기 위해 주기적으로 또는 특정 크기 단위로 로그 파일을 분리하는 기능을 말합니다.

Apache는 자체에서 rotatelogs를 기본으로 제공하고 있어 이를 이용해 웹 로그를 분리 저장하며 대표적인 동작은 다음과 같습니다.

  • 특정 시간간격(일, 주, 월)으로 로그 분리 : 대부분 1일 기준으로 설정
  • 특정 크기 단위로 로그 분리


로그 로테이션 설정 중 86400(24시간)은 GMT 기준 설정으로 오전 9시에 로그로테이션 되고, +540(9시간)을 추가해야 한국(서울)시간 0시 기준으로 로테이션 되며 86400 +540과 같이 (+)앞에 띄워 쓰기가 포함되어야 정상적으로 동작하게 됩니다.

아래와 같이 로그 디렉터리의 파일을 확인해 보겠습니다.
# ls -alh /APACHE/LOG
-rw-r------ 1 root apache 513M Feb 10 03:44 ssl_request_log
-rw-r----- 1 root apache 1023M Feb 10 03:44 ssl_error.log
... 생략 ...

ssl_request_log와 ssl_error_log 파일이 단일 파일로 생성되어 파일의 비대화가 발생한 사례입니다.

이 경우 해당 로그 파일이 어디에 설정되어 있는지 확인합니다.
예를 들어 vhost.conf 설정에서 해당 로그를 설정했다고 가정하겠습니다.

아래와 같이 vhost.conf 설정 파일을 열어 설정 내용을 확인합니다.
# vim /APACHE/jbcs-httpd24-2.4/httpd/conf.d/vhost.conf

ErrorLog "/APACHE/jbcs-httpd24-2.4/httpd/logs/ssl_error.log"
CustomLog "/APACHE/jbcs-httpd24-2.4/httpd/logs/ssl_request_log" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"


위와 같이 설정되어 있을 경우 단일 파일에 로그 내용이 저장될 것이고 파일의 비대화는 계속 될 것입니다.

이를 효율적으로 변경하기 위해서는 아래와 같이 로그 로테이션 설정을 해주면 해결할 수 있습니다.

# # vim /APACHE/jbcs-httpd24-2.4/httpd/conf.d/vhost.conf

ErrorLog "|/APACHE/jbcs-httpd24-2.4/httpd/sbin/rotatelogs \
/APACHE/LOG/명칭_ssl_error.log.%Y%m%d 86400 + 540"

CustomLog "|/APACHE/jbcs-httpd24-2.4/httpd/sbin/rotatelogs \
/APACHE/LOG/명칭_ssl_request_log.%Y%m%d 86400 +540" \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

반응형

댓글