CustomLog 웹서버로그위치 common보통은 아래와 같은 방식으로 되어있을 것이다.
CustomLog /usr/local/apache/logs/access_log common이 부분을 찾아내서 다음과 같이 수정한다.
CustomLog 웹서버로그위치 combined눈치챈 독자도 있을 것이고 원래부터 알고 있는 독자도 있겠지만 뒤에 붙은 common, combined 등은 httpd.conf의 CustomLog 부분 바로 위에 LogFormat이라는 이름으로 설정되어 있는 로그타입 중 하나이다. 만약 자신의 httpd.conf에 combined라는 이름으로 정의된 LogFormat이 없다면 다음과 같이 추가하도록 한다.
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined여기에서 한 가지 주의해야 할 점은, 기존에 남아있던 로그내용이 현재의 새로 셋팅한 로그내용과 달라서 AWStats를 실행한다고 하더라도 분석할 수 없을 뿐만 아니라 아직 변경된 httpd.conf의 내용을 웹 서버가 읽어들이지 않았으므로 아래의 두 사항을 반드시 수행해주어야 한다는 것이다.
1. 기존의 로그파일을 삭제하고그리고 나서 브라우저로 웹사이트에 접속한 다음 로그파일을 열어보도록 하자. 다음과 같은 식으로 로그가 남으면 AWStats를 실행할 준비가 끝난 것이다.
2. 웹서버를 새로 시작하도록 한다.
62.161.78.75 - - [dd/mmm/yyyy:hh:mm:ss +0000] "GET / HTTP/1.1" 200 1234 "http://www.from.com/from.html" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"자신에게 적당한 AWStats 파일을 다운받도록 한다. awstats.tgz를 /usr/local에 다운받았다고 가정하자.
tar xzvf awstats.tgz위와 같이 입력하면, /usr/local/awstats-5.1 이라는 경로 밑으로 파일들이 생성될 것이다. 하위 wwwroot/cgi-bin으로 이동한 다음 awstats.pl, awstats.model.conf과 같은 파일과 lang, lib, plugins과 같은 서브디렉토리를 웹 서버의 cgi-bin 디렉토리로 복사한다. (/usr/local/apache/cgi-bin 정도일 것이다.)
참고: 필자의 경우는 다운받은 다음 압축을 풀었는데 lang 디렉토리가 없었다. 아마 미러링 하는 곳에서 압축을 잘못했던 것 같다. 그래서 다른 파일을 다운받은 다음 lang 디렉토리만 복사해 넣었다. Lang 디렉토리에는 AWStats의 결과파일 생성시 언어변환 부분이 담겨 있으므로 중요하다. 없으면 다른 파일에서라도 추출해서 꼭 복사해 넣도록 하자.그리고 마찬가지로 /usr/local/awstats-5.1 하위의 wwwroot/icon 이하에 있는 내용들을 웹문서 루트경로의 적당한 곳에 복사한다. (/usr/local/apache/htdocs/가 웹 문서 루트라면 /usr/local/apache/htdocs/icon 정도에 복사하면 될 것이다.) awstats.model.conf 파일을 awstats.자기도메인명.conf 등으로 복사한 다음 awstats.pl이 들어있는 cgi-bin에 복사한다. 위의 conf 파일을 열고 다음의 내용을 편집한다.
LogFile의 내용을 웹 서버의 httpd.conf에서 설정한 것과 같이 맞춰준다. (웹로그 파일) LogFormat을 1로 설정한다. 아마 기본적으로 1로 되어있을 것이다. DirIcons를 위에서 icon을 복사한 그 경로로 설정해준다. SiteDomain을 자신의 웹 서버의 도메인명으로 설정해준다.(www.mydoman.com 같은 식으로)그 외에 필요한 부분은 읽어보고 수정을 하면 된다. 다만 영어권 사용자와 달리 웹로그 분석내용이 한글로 표시되길 원할 경우, Lang 파라미터 부분을 찾아서 다음과 같이 수정해 준다.
Lang="kr"설정내용을 보면 웹 페이지상에서 웹로그 분석을 할 수 있도록 하는 기능을 비롯해서 다양한 부가기능이 있다. 한번씩 시도해 보기 바란다.
스크립트 1 ./awstats.pl -config=myvirtualhostname -update위의 라인을 실행하기 위해서는 awstats.myvirtualhostname.conf 파일이 있어야 한다. 만약 이 파일이 없으면 awstats.conf 파일을 로딩한다. 그러면 다음과 같은 식의 결과가 출력될 것이다.
Lines in file: 225730 Found 5 dropped records, Found 124 corrupted records, Found 0 old records, Found 225601 new records.다만 방금 로그파일을 삭제했던 사용자라면 로그가 얼마 없으므로 위와 같은 정도의 결과는 나오지 않을 것이다. 위와 같이 수행하면 웹로그 파일을 분석한 결과가 텍스트로 cgi-bin 이하에 저장된다. 웹로그가 쌓여도 위의 커맨드를 실행하지 않으면 반영되지 않으므로 crontab 등을 이용해서 정기적으로 통계내용을 업데이트 할 수 있도록 한다. 다음은 awstats 의 권고안이다.
스크립트 2 /usr/local/awstats-5.1/tools/awstats_buildstaticpages.pl -config=myvirtualhostname -awstatsprog=/usr/local/apache/cgi-bin/awstats.pl -dir=/usr/local/apache/htdocs/stats이와 같이 입력하면 각종 결과들이 /usr/local/apache/htdocs/stats 디렉토리에 만들어진다. (stats 디렉토리는 미리 만들어져 있어야 한다.) -awstatsprog는 awstats.pl이 있는 cgi-bin의 경로이고, -dir은 결과가 만들어질 디렉토리이다.
/usr/local/awstats-5.1/tools/awstats_buildstaticpages.pl -config=myvirtualhostname -awstatsprog=/usr/local/apache/cgi-bin/awstats.pl -dir=/usr/local/apache/htdocs/stats -update그리고 이 내용을 stats.cron 정도로 만들어서 /etc/cron.daily에 복사해넣으면 간단하게 해결된다. 물론 이렇게 하면 처음에 설정했던 crond 작업(스크립트 1)은 crond에서 제거해야 불필요한 서비스가 실행되는 것을 막을 수 있을 것이다. 만들어진 html 파일은 그대로 웹 브라우저에서 확인하면 된다.
이전 글 : 객체(object)와 개체(entity)에 관한 이야기
다음 글 : Message-Driven Bean
최신 콘텐츠