awstats 설치

linux/Install 2007. 3. 15. 22:31
http://awstats.sourceforge.net 에서 awstats 를 받아 온다.

tar zxf awstats.xxx.tgz
mv ~/awstatsxxx/ /usr/local/awstats
chmod 755 /usr/local/awstats
mkdir /var/lib/awstats
mkdir /etc/awstats

cd /usr/local/awstats/tools
./awstats.configure.pl
~~~~
~~~~
한 3가지 쯤 물어오는데 잘 읽어보면 알수 있다..
잘 넘어간다...

<중간에 name 정하는 부분이 있다. 잘 기억해두자.>

vi /etc/awstats/awstats.<name>.conf
한 52 번째 줄에 가면
LogFile="/var/log/httpd/mylog.log"  ==> "/var/log/httpd/access_log"  :wq

/usr/local/awstats/tools/httpd_conf 파일이 있다. 이 내용전체를 apache httpd.conf 에 추가

/usr/local/awstats/tools/awstats_updateall.pl now

vi /etc/crontab
0-59/5 * * * * /usr/local/awstats/wwwroot/cgi-bin/awstats -update -config=<name>

브라우저로 가서
http://efrit.pe.kr:9000/awstats/awstats.pl?config=efrit



####################
http://monoline.co.kr/zero/view.php?id=outsider&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=name&desc=desc&no=57
wget http://monoline.co.kr/ftp/awstats-6.1.tgz
다운로드는 http://awstats.sourceforge.net 에서 받을 수 있다. 공식 사이트에는 apache 와 iis 의 두가지를 설명하고 있지만, 현재 필자가 설치해본 것이 redhat linux 에서 apache 를 사용중인 경우였으므로 이 경우를 예를 들어 설명하기로 하겠다. IIS의 경우도 그리 어렵지 않으니 IIS 유저들은 공식홈페이지의 문서를 참고하도록 하자.
Apache 웹서버 웹서버의 로그가 NCSA combined/XLF/ELF 의 포맷으로 기록되도록 세팅해야 한다. 우선 초기 아파치 세팅시에 특별히 로그포멧을 건드린 기억이 없다면 지금 상태 그대로 두면 된다.

시작

monoline.co.kr 도메인의 로그 분석기를 만든다고 가정
아파치 설정파일인 httpd.conf 를 열고,

<VirtualHost 203.239.135.197>
DocumentRoot /home/bartas/www
ServerName phpsarang.com
ServerAlias www.phpsarang.com monoline.co.kr www.monoline.co.kr
CustomLog /www/custom/monoline.co.kr_log combined <== 추가 하는 부분
</VirtualHost>

/www/ 에 custom 디렉토리 생성 해주고 뒤에 붙은 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 의 내용을 웹서버가 읽어들이지 않았으므로 위와 같이 설정을 한후 아파치 리스타트면 /www/custom/monoline.co.kr_log 생성된다.
다음과 같은 식으로 로그가 남으면 AWStats 를 실행할 준비가 끝난 것이다.
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-6.1.tgz 를 /www 에 다운받았다고 가정하자.
tar xzvf awstats-6.1.tgz 라고 입력하면, /www/awstats-6.1 이라는 경로 밑으로 파일들이 생성될 것이다.

/www/awstats-6.1/wwwroot/cgi-bin 으로 이동한 다음 awstats.pl, awstats.model.conf 파일과 lang, lib, plugins 서브디렉토리를 웹서버의 cgi-bin 디렉토리( /www/cgi-bin)로 복사한다. 그리고 마찬가지로
/wwwl/awstats-6.1/wwwroot/icon 디렉토리에 있는 내용들을 웹문서 루트경로인 /www/htdocs/awstat/icon 정도에 복사하면 될 것이다.
/www/cgi-bin  디렉토리에 있는  awstats.model.conf 파일을 awstats.monoline.co.kr.conf 으로 하나를 더 만든다.
awstats.monoline.co.kr.conf 파일을 열고 다음의 내용을 편집한다.

1.LogFile 의 내용을 웹서버의 httpd.conf 에서 설정한 것과 동일하게 셋팅한다.
/www/custom/monoline.co.kr_log

2.LogFormat 을 1로 설정한다(기본 1, NCSA apache combined/ELF/XLF로그포맷의 의미)

3.DirIcons 를 위에서 icon 을 복사한 그 경로로 설정해준다.(보통 /icon 으로 셋팅한다)
/www/htdocs/awstat/icon  으로 복사 되어 있어야 한다.

4.SiteDomain 을 자신의 웹서버의 도메인명으로 설정해준다. ( monoline.co.kr 같은식으로 )

5.웹로그 분석내용이 한글로 보길 원하면, Lang 파라메터 부분을 찾아서 Lang="kr"로 수정.
그 외에 필요한 부분은 읽어보고 수정을 하면 된다.(더 이상 할거 없당)

설정내용을 보면 웹페이지상에서 웹로그분석을 할 수 있도록 하는 기능을 비롯해서 다양한 부가기능이 있다. 한번씩 시도해 보기 바란다.

웹로그로부터 통계파일 생성하기

우선 telnet 커맨드상에서 다음과 같이 실행해보도록 하자.
----------
스크립트 1
----------
./awstats.pl -config=monoline.co.kr -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.

웹로그가 쌓여도 위의 커맨드를 실행하지 않으면 반영되지 않으므로 crontab 등을 이용해서 정기적으로 통계내용을 업데이트 할 수 있도록 한다.
다음은 awstats 의 권고안이다.

- 10,000 visitors a month Launch AWStats once a day
- 50,000 visitors a month Launch AWStats once every 4 hours
- 250,000 visitors a month Launch AWStats once an hour
- 1,000,000 visitors a month Launch AWStats once an hour

위 얘기가 이얘기다.    한달에~
- 10,000명의 방문자가 있다면 하루에 한번
- 50,000명의 방문자가 있다면 매 4시간에 한번
- 250,000명의 방문자가 있다면 한시간마다
- 1,000,000명의 방문자가 있다면 한시간마다.  

통계결과 읽기 통계파일을 읽어서 결과물로 html을 생성하도록 한다. 공식문서에는 하나하나 차례대로 만드는 걸 먼저 설명하고 있지만, 그렇게 할 부지런한(?) 독자는 없을거라 생각하고, 아주 게으르고 편리한 방법으로 해보도록 하자.

awstats 를 처음 설치한 곳(/usr/local/awstats-6.1/tools/)를 보면 awstats_buildstaticpages.pl 이라는 파일이 있다. 이 펄 스크립트가 귀찮은 처리과정을 한번에 해결해주는 유틸리티이다.

다음과 같이 입력해 보자.
----------
스크립트 2
----------
/www/awstats-6.1/tools/awstats_buildstaticpages.pl -config=monoline.co.kr -awstatsprog=/www/cgi-bin/awstats.pl -dir=/www/htdocs/awstat

이와 같이 입력하면 각종 결과들이 /www/htdocs/awstat 디렉토리에 만들어진다. (awstat 디렉토리는 미리 만들어져 있어야 한다.)
-awstatsprog 는 awstats.pl 이 있는 cgi-bin의 경로이고, -dir 은 결과가 만들어질 디렉토리이다.

하지만 이렇게 하면 스크립트 1 이 수행될때마다 스크립트 2를 수행해야 한다. crontab 에 시간차를 두고 두번 등록할 것인가? 이 또한 깔끔하지 못하다.
이 문제는 단지 스크립트 2 의 뒤에다가 -update 옵션을 붙여주는 것으로 간단히 해결된다.

/www/awstats-6.1/tools/awstats_buildstaticpages.pl -config=monoline.co.kr -awstatsprog=/www/cgi-bin/awstats.pl -dir=/www/htdocs/awstat -update

업데이트가 실행되면 /www/cgi-bin/awstats062004.monoline.co.kr.txt 와 같이 데이타 파일이 생성된다.  그럼 사용자 로그 즉 /www/custom/ 아래의 유져들의 로그는 삭제를 해도 자체적으로 로그는 업데이트 된다. 자자 각자 최적화 시켜 우리 서버에 적용합시다.

그리고 바로 위의 내용을 그대로 카피해서 stats.cron 라는 화일로 만들어서 /etc/cron.daily/ 또는 /etc/cron.hourly/에 복사해넣으면 간단하게 해결된다(아파치 리스타트는 기본이겠죠).

이젠 웹브라우저에서 확인만 하면 된다.

위의 설정은 디폴트로 설치를 한 문서이다.
각자 최적화 할수 있는 방법을 생각 할수 있기를 바라공 awstats.monoline.co.kr.conf  파일을 열어서 확인하면 많은 다양한 방법이 있다. 이부분들을 각자 적용을 시켜보기 바랍니다.

끝이당...^^

'linux > Install' 카테고리의 다른 글

snort + ACID install (+APM)  (0) 2007.03.16
ntop install  (0) 2007.03.16
snort -- install  (0) 2007.03.15
BIND 9 installation  (0) 2007.03.15
nagios 설치 -- 임시  (0) 2007.03.15
Posted by efrit
,