웹서버관련정보/윈도우

[강좌] 아파치 서버에서 로그분석기(Webalizer) 설치하기, Rotatelogs 사용하기

박디 2007. 4. 24. 02:00

서버를 돌리다보면 아파치에서는 logs 디렉토리에 자동으로 access.log 와 error.log 파일을

저장하게 된다. 말그대로 access.log는 서버접속에 대한 외내부의 기록이고 error.log파일은

아파치 서버의 상태가 기록된 파일이다. error.log파일은 외부에서 만약 내 서버로 접속시에

파일을 찾을수 없었다면 IP와 그 상태도 기록하게 된다. error.log는 크기가 많이 커질일이 별로

없지만 요새는 검색사이트들의 로봇들이 웹페이지를 긁어가면서 못찾는 파일에 대한 에러가

꽤나 쌓인다. 어쨋든.. access.log 파일은 접속자 수가 많다면 순식간에 Mbyte 단위로 늘어나는데

이를 쌓아두면 로그분석도 쉽지 않을뿐더러 웹서버 성능도 떨어지게 된다. 때문에 일정 파일단위로

나눠서 로그파일을 저장할수 있는 방법(Rotatelogs.exe사용)과 로그를 분석할수 있는 webalizer

라는 프로그램 설치법에 대해 알아보겠다. 필자는 가상호스트를 사용중이기 때문에 이를 토대로

설명 하도록할것이다. 일단 webalizer 윈도우용 프로그램을 다운로드 받도록 하자.

Webalizer Homepage : http://www.webalizer.com/download.html

여기서 윈도우용(Win32)를 다운받도록 하자.

다됐으면 아파치가 설치되어있는 디렉토리 내의 conf 디렉토리로 가본다.

여기서 vhost.conf 파일을 볼수있다. (아파치 1.x 버전을 쓰고있다면 virtual/host.conf)

파일을 열고 수정을 한다.

(아래의 주소들은 예제입니다. 자신의 홈페이지 주소에 맞게 수정해주세요.)

<VirtualHost _default_:80>
 ErrorLog logs/park.example.com-error_log
 CustomLog "|C:/아파치가설치된경로/bin/rotatelogs.exe
 C:/아파치가설치된경로/logs/park.access_log_%Y 5M" common
 ServerName park.example.com
 DocumentRoot "C:/아파치가설치된경로/htdocs"
</VirtualHost>


이부분을 추가 및 수정을 한다. 위에서 5M은 용량을 말하는 것으로 access 로그파일이 5Mb가

넘으면 치환해준다. (rotatelogs.exe 뒷부분에 한칸띄고 servername 전부분까지 붙혀쓴다.)

%Y 부분은 해당년도를 자동으로 로그파일 이름 맨뒷부분에 더해서 저장해준다. 필요없다면

%Y부분은 빼버려도 무방하다. 저장후 문법에러가 있는지 확인하자.

확인방법 : 시작->실행->cmd 입력->커맨드 창에서 c:\아파치가설치된경로\bin\apache -S
               라고 치면 이상이 없다면 Syntax OK 라는 구문이 뜬다. 에러가 생겼다면 다시한번
               살펴본다.

Webalizer 설치전 아파치 서버를 재시동 하자.

두번째로..Webalizer(로그분석기)를 설치하도록 하자.

예를들어 C:\아파치가설치된경로\webalizer 에 설치한다고 가정하자.
그럼 이곳에 그냥 압축을 풀어놓으면 된다.

그다음 이폴더내의 sample.conf 파일의 이름을 park.example.com.conf 로 고친다.
수정,저장후 파일을 편집기로 열어서 아랫부분을 수정한다.

(원본)
#LogFile  /var/lib/httpd/logs/access_log
#OutputDir  /var/lib/httpd/htdocs/usage
#HistoryName  webalizer.hist
#Incremental  no
#IncrementalName webalizer.current
#HostName  localhost

(수정본)
LogFile   C:/아파치가설치된경로/logs/park.access_log_2007
OutputDir  C:/아파치가설치된경로/htdocs/weblog
HistoryName park.example.com
Incremental  yes
IncrementalName  park.current
HostName  park.example.com


위와 같이 수정하는데 Outputdir은 아파치가 설치된경로의 다큐멘트 디렉토리에 임의의 디렉토리

를 하나 만들어주고 저장하는것이 좋다. Incremental 옵션은 기본값이 No 인데  Yes로 해주면

vhost.conf 에서 5M가 넘으면 치환되서 없어져 버리는 로그파일을 따로 저장을 해준다.

sample.conf에서 수정한 Logfile명은 vhost.conf에서 수정한 Customlog의 파일명과 일치해야만

한다. 자..여기까지 다됐다면 거의 성공한 것인데.. Webalizer를 실행하기 전에 vhost.conf 파일이

제대로 설정되었는지 확인하자.

시작->실행 에서 cmd 를 입력하여 커맨드창을 실행시키고 아래와 같이 입력한다.

C:\Webalizer가 설치된경로\webalizer.exe -c
C:\Webalizer가 설치된경로\park.example.com.conf


(-c 에서 한칸띄우고 나머지 부분을 쭉 이어서 입력하면 된다.)

분석기는 아파치서버와 같이 실행되는것이 아니라 따로 실행해줘야 하기때문에 위와같이 일일히
항상 입력하기 싫다면 배치파일을 하나 만드는 것이 좋다.

사용자 삽입 이미지
다음과 같이 만들어놓으면 편하다. 실행이 됐다면 확인이 남았다.

위처럼 실행하고 나면 아까 webalizer에서 sample.conf 파일에서 설정한 outputDir에 지정된

디렉토리에 index.html 파일과 나머지 파일들이 생성되는데

여기예제에 따라 웹브라우저에서 실행한다면 http://park.example.com/weblog 를 입력하면

사용자 삽입 이미지

이와같은 화면을 볼수있다. 그전 기록에 대해서 이 분석기에서 어떻게 읽어들일수 있는지는 방법을

모르겠고 웹서버를 설치하려 한다면 이 강좌대로 web alizer도 함께 설치하면서 rotatelogs를 이용

한 로그파일 관리도 함께 한다면 좋겠다.

한가지 덧붙이자면 Webalizer 실행커맨드를 배치파일로 저장했던지 했다면 한번씩 실행을 해줘야

로그갱신이 된다. 이는 윈도우 내부의 스케쥴 예약 프로그램등으로 일정 시간대를 지정해놓고

실행해주는것도 좋은 방법이 될수 있겠다.