아파치 웹 서버(한국어)는 기본적으로 로그를 한 개의 파일에 계속해서 쌓는다.
이번에 유지보수를 맡게 된 싸이트를 보니 로그 파일이 무지하게 커졌다. 아.. 관리 안된다..
Apache HTTP Serve Log Files를 참조로 하여 로그 파일을 매일 매일 다른 파일로 바꾸도록 고쳤다.
logrotate 라는 아파치 뿐만 아니라 Linux/Unix 시스템 전반의 로그 파일을 날짜별로 쪼개주는 데몬이 있지만 이건 해당 프로세스를 죽였다 살려야 하는 문제가 있어서 보류하기로 했다. 사용법도 복잡하고.
그래서 어플리케이션을 재시작할 필요 없는 파이프 방식으로 작동하는 것을 선택하기로 했다.
기능은 별로 없지만 간편한 아파치 기본 rotatelogs를 사용하기로 했다. cronlog라는 좀더 강력한 놈도 있지만, 컴파일의 귀차니즘과 필요한 기능이 단순히 날짜별로 파일 나누기 뿐이기 때문에 제외한다. 아파치 외의 다른 프로그램에서 사용하려면 cronlog를 고려해보는 것도 좋다.
Apache HTTPD 1.3, 2.x 공히 httpd.conf에서 아래와 같이 지정하고 정확한 로그 파일 경로를 써주면
CustomLog "|/usr/apache/bin/rotatelogs /usr/apache/logs/access_log.%Y-%m-%d-%k 3600 +540" common
ErrorLog "|/usr/apache/bin/rotatelogs /usr/apache/logs/error_log.%Y-%m-%d-%k 3600 +540"
로그 지정 시작부분의 파이프(|)에 주의한다. 그 다음에,
$ apachectl graceful
아파치를 재시작한다.
86400 은 하루 24시간 단위로 access_log.xxxxxxxxxx와 error_log.xxxxxxxxxx 라는 이름으로 파일 이름을 전환하라는 의미이다. xxxxxxxxxx는 년월일이다.
추가 2005/09/07 : 로그 파일 변경이 GMT 시간을 기준으로 이뤄진다. 문서에 의하면 Apache HTTPD 2.0.51 에서는 rotatelogs 에 -l 옵션을 주면 지역 시간을 기준으로 한다고 한다.
추가 2005/09/08 : GMT 기준 시간을 우리나라 시간으로 바꾸려면 GMT 와 우리나라의 시간 차이(+9)에다 60(분)을 곱한 값을 옵션으로 주면된다.. 즉, +540을 옵션으로 추가한다. 이후부터는 우리나라 시간에 맞게 로그 파일이 변경된다. 이것은 HTTPD 버전에 관계 없다.
원본사이트:http://kwon37xi.egloos.com/1717906
'개발이야기' 카테고리의 다른 글
ARP 스푸핑(ARP Spoofing) 감지를 위한 arpwatch (0) | 2012.12.26 |
---|---|
ARP 개념 정리 (0) | 2012.12.26 |
정규식 패턴 문법 (0) | 2012.11.28 |
Tv 클래스를 주석 내용과 같이 코드를 완성하고, Tv 클래스와 상호작용이 가능한 RemoteController 클래스를 만드시오. (0) | 2012.11.20 |
과제1. 구구단 단수와 반복 횟수를 입력 받아서 구구단을 출력 (0) | 2012.10.30 |