서버가 느려지고 심한 경우 다운이 되길레 호스트하는 업체에 물어봤더니 이유로 말한 것이 로그파일이 계속 누적되어 용량이 커져서 그렇다고 하였다.
/usr/local/apache/log/access.log 파일을 확인해보니 1기가에 육박하였다. 내가 사용하는 서버가 로그파일이 1기가면 무리가 생길 정도로 허약한 시스템인지 먼저 의심은 되었지만 호스트업체에서 하는 말도 일리가 있으니 로그파일을 일자별로 분리해서 저장하는 것을 알아보았다.
알아보니 rotatelogs와 cronolog가 사용되는 것을 확인했다. 그 중에서 많이 사용한다는 cronolog를 설치하기로 했다.
프로그램은 공식홈페이지 http://www.cronolog.org 에서 다운받아서 설치했다. 1.6.2버전이었다. 다운받은 파일은 다시 서버의 임시 저장소로 업로드하고 압축을 풀었다. 압축은 gz로 묶여져 있어서
tar xvzf cronolog-1.6.2.tar.gz
로 압축을 풀었다. 다음으로 설치를 하기 위한 절차로
./configure
make
make install
명령어를 차례로 실행하여 설치를 완료했다. 설치 후 프로그램은
/usr/local/sbin/ 에 설치되어 있음을 확인 할 수 있었다.
이제 httpd.conf 를 수정하여 로그파일을 분할하는 옵션을 주는 일만 남았다.
vi /usr/local/apache/conf/httpd.conf
기존에
CustomLog /usr/local/apache/logs/access_log common
으로 설정되어 있는 것을
CustomLog “|/usr/local/sbin/cronolog /usr/local/apache/logs/access_log.%Y%m%d” common
으로 수정하였다.
이 설정은 access_log 파일을
access_log.20060322
access_log.20060323
이런 식으로 일자별로 분할해 주는 옵션이다. 새로운 폴더를 만들어서 저장하는 옵션도 있었지만 그냥 편하게 관리할려고…
이제 최종 마무리는 아파치를 리스타트시키는 일.
/usr/local/apache/bin/apachectl restart
OK! access_log 파일이 날짜별로 새로 만들기 시작했다.
이제 로그파일 때문에 시스템이 느려지거나 다운되는 일은 없기를 바래야지.
추가적으로 정리하는 내용
아파치 서버 실행
/usr/local/apache/bin/apachectl start
아파치 서버 종료
/usr/local/apache/bin/apachectl stop
아피치 서버 재시작
/usr/local/apache/bin/apachectl restart
부팅할 때 자동으로 아파치, Mysql서버 실행되게 설정하기
vi /etc/rc.d/rc.local 파일에 아래 내용 추가
■ mysql start
/usr/local/mysql/bin/mysqld_safe -O max_connections=1000 -O table_cache=256 -O wait_timeout=300 &
■ apache start
/usr/local/apache/bin/apachectl start &
[이 게시물은 라이노님에 의해 2008-04-15 18:58:04 홈페이지관리에서 이동 됨]