[APACHE]로그 만들기 (매일마다, 특정파일 배제)

by 조쉬 posted Mar 26, 2021
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

필자가 설정해놓고 있는 아파치 로그를 몇가지 공개하려고 한다.

우선 필자는 로그파일을 하루에 한번씩 생성 시킨다.

 
CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/access_log.%Y-%m-%d 86400" combined

위의 문장을 설명하자면 httpd.conf파일에서 기본적으로 CustomLog logs/access_log combined 라고 되어 있는 부분을 위와 같이 고친것이다.
참고로 위의 로그는 access로그의 설정이고, error로그설정이라면 httpd.conf파일 내에서 ErrorLog logs/error_log 부분을 위와 같이 하면된다.
예) ErrorLog "|/usr/sbin/rotatelogs /var/log/httpd/error_log.%Y-%m-%d 86400"

자 그럼 하나씩 설명하자면,

|/usr/sbin/rotatelogs : 순환 로그를 생성시키는 파일이 있는곳이다. 해당 주소는 사용자의 설정에 따라 다를것이니 find / -name rotatelogs 라고 검색해서 나오는 주소를 참조하면 될것이다.
(참고로 맨앞의 | 은 소문자L이 아니라 backspace(←) 옆에 있는 문자이다)

/var/log/httpd/access_log.%Y-%m-%d 86400 : 자신의 로그파일이 쌓이는 위치밑 파일 명이다. 매일 새로운 파일이 쌓이는데 이름이 같다면 덮어씌워질 뿐이기 때문에 그날의 날짜( access_log.%Y-%m-%d)로 파일명을 해놓은 것이다. 그리고 마지막의 86400은 하루를 순환주기로하겠다는 것이다.

combined : 로그파일 안의 내용이 어떤형식으로 표시되는지를 나타내는 것이다.

순환식으로 되는 로그파일에 대해서 더 많은것을 알고 싶다면 다음을 참조하기 바란다.
참조 : http://httpd.apache.org/docs/2.0/ko/programs/rotatelogs.html

날짜단위가 아닌 파일의 용량단위로도 로그파일을 재생성 시킬수 있다.

자 그러면 위에서 대충 설명해놓은 combined에 대해서 말해보겠다.
이것은 로그포맷을 말하는것이다. httpd.conf파일의 설정중

 
LogFormat "%h %t \"%r\" %>s %b" combined

라고 되어 있는 설정이다. 맨 끝의 combined가 해당 LogFormat의 지시자 역활을 하는것이다.
(아무거나 자신이 원하는 이름을 써도 상관없다 보통 기본설정이 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 라고 되어 있다. 위의 것은 필자가 수정한것이다.)

해당 형식의 설정에 들어가는것은 종류가 많기 때문에 다음을 참조하길 바란다.
참조 : http://httpd.apache.org/docs/2.0/ko/mod/mod_log_config.html

자신이 원하는 기록들만 로그에 쌓이도록 만들면 되는것이다.

자 마지막으로 특정기록 배제라는것에 대해서 알아보자
예를 들어 gif,jpg관련 access_log는 딱히 확인할필요가 없다. 하지만 이것들은 기본적으로 쌓여서 로그파일의 용량을 크게 만든다. 그렇다면 해당 파일들의 로그를 보지 않게 하는 방법을 보자.

 
SetEnvIfNoCase Request_URI "\.(gif|jpg|png|css|ico|js|swf)$" do_not_log CustomLog logs/access_log combined env=!do_not_log

라고 해놓으면 gif,jpg, ... ,swf관련 기록은 남지 않는다.
윗줄에서 설정뒤에 해당 지시자를 do_not_log로 한뒤 아래의 CustomLog에 env=!do_not_log 라는식으로 해놓으면 해당 로그가 쌓이지 않는것이다.
좀더 자세한 설명은 아래를 참조하길 바란다.
참조1 : http://httpd.apache.org/docs/2.0/ko/logs.html#page-header (조건부로그 부분참조)
참조2 : http://httpd.apache.org/docs/2.0/ko/mod/mod_setenvif.html#setenvif (조건 만들기)