본문 바로가기
소프트웨어 사용&설치 등/Apache (httpd)

[Apache] 아파치 로그를 정리할 때. rotatelogs

by 언제나초심. 2016. 5. 21.
반응형


아파치 로그가 계속 쌓이게 되면 관리가 어렵다. 무엇보다도 용량이 너무 커져버리면, 한줄 확인하기 위해서...다운로드를 받아야 하는데, 트래픽에 부담이 된다. 


이런저런 이유로, 결국은 자연스럽게 로그를 정리하는 방법을 찾게 된다. 



이중에서 주로 사용하는 것이 cronolog 와 rotatelogs 이다. 


특징을 설명하자면,


rotatelogs

* Apache 에 내장되어 있는 기능에 가깝다. 



cronolog 

* 설치해서 사용해야 한다. 

* 시간에 맞춰서 로그를 쪼개기에 좀 더 용이하다. 





cronolog 의 설치방법은 CentOS 의 경우, 

$ yum install cronolog

를 하면 되는데, 잘 안 되는 경우도 있다. (제 경우...ㅜㅜ)




이 경우에는 wget 을 통해서 다운로드 받아서 설치하는 듯 하다. 다운로드 받는 것에 대해서는 검색을 해보자. (개발자가 주소를 자꾸 바꾸는 것 같아보인다. 다운로드 받는 경로가 일정치 않은 듯)


사용법은

CustomLog "|/usr/sbin/cronolog /var/log/httpd/_default/default-access_log_%Y%m" combined


이런 식으로 사용하면 된다. CentOS 5.3 버전 에서 Apache 2.3 을 사용중일 때의 옵션설정인 걸로 기억한다. 이 경우에는 월마다 로그파일을 분리해서 생성하도록 설정한 경우이다. 






이번에는 귀찮아서 rotatelogs 를 사용하기로 하였다. 


설명은 https://httpd.apache.org/docs/trunk/ko/programs/rotatelogs.html 이곳에서 친절히 되어 있다.


간단히 보자면, 86400 초를 활용해서 일자 별로 로그를 생성할 수 있다.


CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common



또는 용량을 기준으로 나눌 수도 있다.

CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common



개인적으로는 세번째에 설명해주고 있는 방법이 마음에 든다. 

크기를 기준으로 나누되, 생성시간에 따라서 문서명을 결정하는 방식이다. 


ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"



참고로 CentOS7 버전을 사용중인데 rotatelogs 의 경로가 설명과 다르다. 



/usr/sbin/rotatelogs


의 경로에 있다. 그리고 생성시에 시간이 외국시간으로 잡히는 듯 하다. (지역별 시간에 맞추기 위해서는 -l 옵션을 주라고 한다)


그래서 결론적으로는 이러한 옵션을 주게 되었다. 


CustomLog "|/usr/sbin/rotatelogs -l /var/log/httpd/default-access_log.%Y%m%d-%H%M%S 1M"



완성된 옵션 설명 

/usr/sbin.rotatelogs 를 이용해서, -l 서버의 지역설정시간으로, 특정위치에 1M 크기 단위로 로그파일을 생성한다.

반응형