#####################################################################
"리눅스포털 - 슈퍼유저코리아" 사이트를 참고로 다시 작성했습니다.
#####################################################################
### Webalizer 설치 및 환경설정
웹서버 특히 웹호스팅서버를 관리하는 일은 대부분 웹마스터나 서버관리자가 하게된다. 웹서버를 운영한다면 반드시 웹로그를 분석해야하는 일을 하게된다. 그 역할 또한 서버관리자가 하는 경우가 대부분이다. 대개는 웹마스터가 서버관리를 겸하는 경우가 대부분인데, 여기서 설명하는 경우는 단순한 웹로그분석이 아닌 여러 개의 웹사이트를 자동으로 분석하는 방법에 대한 것이다. 공식적인 명칭은 아니지만 설명의 편의성을 위하여 동시에 여러 개의 웹로그파일을 자동으로 분석하는 방법을 “멀티웹로그분석”이라고 하겠다. 하나의 웹사이트가 아닌 여러 개의 웹사이트의 웹로그를 분석하는 일은 단순한 작업이 아닐 것이다. 단순히 하나의 서버에 하나의 웹로그만 분석하는 일은 그렇게 어려운 작업은 아니다.
한대의 서버에 여러 개의 웹사이트를 운용하고 있다면 웹로그를 분석 할 때마다 모두 수작업을 한다면 시간과 작업량에 있어서 여간 힘든일이 아닐 것이다. 서버관리라는 관점에서 웹로그분석법을 다루고자 하는 것은 단순한 웹로그분석법만을 다루고자하는 것이 아니라 여러 개의 웹사이트를 주기적으로 자동분석되게 하는 방법에 대한 내용을 다루고자 하는 것이다. 앞에서도 누차 강조드린 바와 같이 서버관리자는 주기적이고 단순 반복적인 작업들은 자동화, 단순화 시켜나가면서 서버관리업무를 체계화 시켜나가야한다.
이번에 설명할 webalizer를 통한 웹로그분석 또한 이런 관점에서 단순한 웹로그분석 방법 보다는 많은 웹사이트의 웹로그를 각각 자동분석되게 하여 그 결과 또한 사이트별로 각각 확인할 수 있도록 하는 방법을 제시할 것이다.
자, 그럼 webalizer의 웹로그분석법에 대한 설명을 시작해 보겠다.
우선, webalizer의 특징에 대해서 간단히 설명하면 다음과 같다.
- C언어로 개발되었기 때문에 실행속도가 굉장히 빠르다.
+ 200Mhz펜티엄에서 초당 10000레코드 처리.
+ accesswatch는 Perl로 개발되었으며, webalizer에 비해 그 속도가 현저하게 떨어진다.
- common, combined 로그 포맷지원(combined를 사용하면 로그파일크기가 커지지만, 자세한 정보를 얻을 수 있다)
- 설정파일이나 커맨드라인을 이용하여 리포트를 커스터마이징 가능
- 특히, 한국어를 지원한다는 점에 굉장한 매력이 있다.
- webalizer는 C로 개발되었지만 그 소스를 공개하고 있다.
- 분석대상이 되는 소스파일의 크기에 제한이 없다.
1) Webalizer 다운로드 받을 수 있는 곳
- ftp://ftp.superuser.co.kr (
2) Webalizer 설치
먼저 다운받은 Webalizer를 설치해 보겠다. 앞서도 말씀드렸지만 설치방법을 포함하여 여기서 설명드리는 모든 내용들은 단순한 방법이 아닌 호스팅서버등에서 여러 개의 웹사이트의 웹로그분석을 동시에 자동으로 설정하는 방법에 대한 것이다.
아래 보는 바와 같이 현재 작업위치는 /usr/local 입니다. 물론, 다른위치에서 작업을 하셔도 상관없지만 대부분 소스를 가져와서 설치하는 위치는 /usr/local로 하고 있다.
아래 예처럼 가져온 webalizer의 압축을 풀어준다. tgz로 압축되어 있는 파일은 tar와 gzip으로 압축이 되어있는 것이므로 tar에서 xvfz라는 옵션으로 풀어주시면 된다.
다음 작업은 configure작업이다. Configure할 때에는 한국어 지원을 위해서 옵션을 -with-language=korean을 준다.
configure작업이 정상적으로 끝났다면 이번에는 컴파일(make)을 합니다. 컴파일은 아래 예처럼 “make”라고만 하면 된다.
컴파일 작업까지 정상적으로 끝났다면 이번에는 “make install”으로 설치작업을 하면 된다.
설치작업까지 정상적으로 끝났다면 webalizer의 설치는 끝난 것이다.
이제부터 Webalizer를 이용하여 여러 개(여기서는 3개)의 사이트를 동시에 자동분석하는 방법에 대해서 알아보자.
이제 본격적으로 웹사이트분석을 하도록 하겠다. 우선, 다음과 같이 3개의 웹사이트가 서버내에서 설치되어 운용되고 있다는 가정을 하겠다. 아래는 3개의 웹사이트를 위한 가상호스트 설정입니다.
이들 3개의 웹사이트의 구성방법은 모두 동일하다. 그리고 Webalizer를 포함한 디렉토리구성은 다음과 같다.
- 기본 홈페이지 위치 : /home/ID/www/
- 웹로그파일 위치 : /home/ID/www_log/access_log
- 웹로그분석 결과가 저장될 위치 : /home/ID/www/weblog
- 웹로그 결과 확인방법 : http://도메인/weblog
위의 구성은 분석하고자하는 모든 웹사이트에 동일하게 적용이되는 구성이다.
즉 모든 웹사이트의 홈디렉토리는 /home/ID/www/가 될 것이며, 웹로그파일의 저장 위치는
/home/ID/www_log/access_log가 될 것이다. 그리고 Webalizer로 분석된 결과가 저장 위치는 각각
/home/ID/www/weblog가 된다. 그리고 Webalizer 분석결과를 웹으로 확인하는 방법은
http://도메인/weblog로 각각 확인할 수 있다.
위의 예는 여기서 예로든 3개의 웹사이트의 로그파일위치를 각각 확인한 것이다.
여러 개의 웹사이트를 동시에 분석하려면 다음과 같은 작업이 필요하다 .
현재 webalizer가 설치된 위치는 /usr/local/webalizer이며 webalizer뒤에는 버전번호가 붙여져 있지만 가능하다면 버전번호를 생략한 webalizer라는 이름으로 변경을 해주시는 것이 좋다.
[root@inter-devel ~]# cd /usr/local/
[root@inter-devel local]# pwd
/usr/local
[root@inter-devel local]# ln -s webalizer-2.01-10 webalizer
Webalizer를 설치하고난 후에는 설치시에 생성되지 않는 디렉토리와 파일들을 만들어 주셔야합니다. 이 또한 멀티웹로그분석을 위한 작업입니다.
- 환경설정파일 디렉토리 : /usr/local/webalizer/conf/개별도메인.conf
- 실행 쉘스크립트 파일 : /usr/local/webalizer/bin/webalizer.sh
이 두개의 디렉토리와 파일들은 모두 직접 만들어 줘야한다. 그
리고 webalizer.conf 파일에는 분석대상이 되는 모든 웹사이트의 웹로그분석을 위한 설정파일들이 “도메인.conf”라는
파일이름으로 각각 한 개씩 생성해야한다. 그리고 /usr/local/webalizer/bin에 생성되는 webalizer.sh
파일 또한 직접 만들어 줘야하며 이 파일에는 개별 conf 파일들을 하나씩 분석하기 위한 실행명령들이 들어가게 된다.
자, 그럼 먼저 conf 디렉토리를 아래와 같이 만들자.
그리고 이 디렉토리내에서 분석하고자하는 대상 도메인의 설정파일(*.conf)파일을 다음과 같이 만들어 줘야한다.
Webalizer설치하고 나면 “make install”과정에서 샘플설정파일(webalizer.conf.sample)이 /etc/디렉토리내에 생성된다. 따라서 아래의 예처럼 이 샘플파일을 도메인에 하나씩 복사해오면 된다.
모두 복사된 후에 개별 도메인의 설정파일들을 확인한 것이다.
무엇보다 중요한 것은 이렇게 복사해온 샘플파일의 내용은 개별 도메인의 환경과는 맞지않다는 것이다. 따라서 개별 도메인의 환경에 맞게 조금 수정을 해줘야하는데 수정하는 내용은 꼭 필요한 5개 항목만 변경해주면 된다.
수정해주실 항목은 개별 설정파일내의 5개항목이며 다음과 같다.
- LogFile : 로그파일 위치 (예 : /home/bsuhak/www_log/access_log)
- OutputDir : 분석결과 저장위치 (예 : /home/bsuhak/www/weblog)
- HistoryName : 사이트명 (예 : bsuhak.com)
- ReportTitle : 분석결과 페이지 이름 (예 : BSUHAK.COM WebSite)
- HostName : 호스트명 FQDN형식 (예 : www.bsuhak.com)
다음의 예는 위의 3개의 설정파일중 하나인 bsuhak.com.conf 파일의 예를 보인 것이다. 3개 파일 모두 vi로 파일을 열어서 최소한 5개 부분은 맞게 수정을 해줘야 한다. 만약 분석하는 사이트수가 3개 이상된다 하더라도 모두 이와 같은 방법으로 수정해주면 된다. 아래의 진하게 표시된 부분이 수정해줘야 할 부분이다.
[root@su2 conf]# cat bsuhak.com.conf LogFile /home/bsuhak/www_log/access_log#LogType clf OutputDir /home/bsuhak/www/weblogHistoryName bsuhak.com#Incremental no #IncrementalName webalizer.current ReportTitle BSUHAK.COM WebSiteHostName www.bsuhak.com#HTMLExtension html PageType htm* PageType cgi #PageType phtml #PageType php3 #PageType pl #UseHTTPS no #DNSCache dns_cache.db #DNSChildren 0 #HTMLPre <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> #HTMLHead <META NAME="author" CONTENT="The Webalizer"> #HTMLBody <BODY BGCOLOR="#E8E8E8" TEXT="#000000" LINK="#0000FF" VLINK="#FF0000"> #HTMLPost <BR CLEAR="all"> #HTMLTail <IMG SRC="msfree.png" ALT="100% Micro$oft free!"> #HTMLEnd </BODY></HTML> #Quiet no #ReallyQuiet no #TimeMe no #GMTTime no #Debug no #FoldSeqErr no #VisitTimeout 1800 #IgnoreHist no #CountryGraph yes #DailyGraph yes #DailyStats yes #HourlyGraph yes #HourlyStats yes #GraphLegend yes #GraphLines 2 #TopSites 30 #TopKSites 10 #TopURLs 30 #TopKURLs 10 #TopReferrers 30 #TopAgents 15 #TopCountries 30 #TopEntry 10 #TopExit 10 #TopSearch 20 #TopUsers 20 #AllSites no #AllURLs no #AllReferrers no #AllAgents no #AllSearchStr no #AllUsers no #IndexAlias home.htm #IndexAlias homepage.htm #HideSite *mrunix.net #HideSite localhost #HideReferrer mrunix.net/ #HideReferrer Direct Request HideURL *.gif HideURL *.GIF HideURL *.jpg HideURL *.JPG HideURL *.png HideURL *.PNG HideURL *.ra #HideAgent RealPlayer #HideUser root #HideUser admin #GroupURL /cgi-bin/* CGI Scripts #GroupURL /images/* Images #GroupSite *.aol.com #GroupSite *.compuserve.com #GroupReferrer yahoo.com/ Yahoo! #GroupReferrer excite.com/ Excite #GroupReferrer infoseek.com/ InfoSeek #GroupReferrer webcrawler.com/ WebCrawler #GroupUser root Admin users #GroupUser admin Admin users #GroupUser wheel Admin users #GroupAgent MSIE Micro$oft Internet Exploder #HideAgent MSIE #GroupAgent Mozilla Netscape #HideAgent Mozilla #GroupAgent Lynx* Lynx #HideAgent Lynx* #HideAllSites no #GroupDomains 0 #GroupShading yes #GroupHighlight yes #IgnoreSite bad.site.net #IgnoreURL /test* #IgnoreReferrer file:/* #IgnoreAgent RealPlayer #IgnoreUser root #IgnoreURL * #IncludeURL ~joeuser* #IgnoreUser * #IncludeUser someuser #MangleAgents 0 SearchEngine yahoo.com p= SearchEngine altavista.com q= SearchEngine google.com q= SearchEngine eureka.com q= SearchEngine lycos.com query= SearchEngine hotbot.com MT= SearchEngine msn.com MT= SearchEngine infoseek.com qt= SearchEngine webcrawler searchText= SearchEngine excite search= SearchEngine netscape.com search= SearchEngine mamma.com query= SearchEngine alltheweb.com query= SearchEngine northernlight.com qr= #DumpPath /var/lib/httpd/logs #DumpHeader no #DumpExtension tab #DumpSites no #DumpURLs no #DumpReferrers no #DumpAgents no #DumpUsers no #DumpSearchStr no |
이제 마지막으로 지금까지 설정했던 개별 설정파일들(*.conf)의 실행을 위한 실행 쉘스크립트파일인 webalizer.sh를 생성해 줄 단계이다.
아래 예를 보시는 바와 같이 webalizer.sh는 설치 후에 생성되는 것이 아니며 멀티웹로그분석을 위해 직접 생성한 것이다.
위치는 /usr/local/webalizer/bin이며 이 위치에 webalizer.sh라는 실행파일이 위와 같이 생성되게 된다. 참고로 하나의 예만 본다면
/usr/local/bin/webalizer -c /usr/local/webalizer/conf/bsuhak.com.conf > /home/bsuhak/www/weblog/bsuhak.com
이것은
bsuhak.com의 웹로그분석을 위한 실행설정이며 -c 옵션을 사용하시면 개별적인 설정파일사용이 가능하게 된다. 그리고 그
결과를 /home/bsuhak/www/weblog/bsuhak.com으로 하였습니다. 나머지 2개의 도메인 또한 동일한 방법으로
설정하였다.
그리고 생성된 webalizer.sh를 다음과 같이 실행퍼미션을 주어 실행가능하도록 설정하였다.
이제 웹로그분석 실행을 해 보자. 분석실행은 아래 예처럼 webalizer.sh라고만 하면 된다. 참고로 실행은 가능하다면 아래 예처럼 절대경로로 실행을 해주시는 것이 좋다. 위의 webalizer.sh 파일내에서도 절대경로를 사용하였음을 확인하기 바란다.
아무런 메시지없이 실행이 끝났다면 분석결과가 정상적으로 진행이 되었다는 것을 의미합니다.
앞서도 말씀드렸듯이 webalizer는 C언어로 개발되었기 때문에 실행속도가 굉장히 빠르다. accesswatch와 실행속도를
비교해 보면 속도면에서 많은 차이점을 느낄 수 있을 것이다. 그리고 이 실행 결과 개별 웹사이트의 분석결과가
/home/ID/www/weblog 디렉토리에 각각 저장이 되었을 것이다.
이제 webalizer의 실행결과를 확인하기 위해 여기서 예로든 3개의 웹사이트 분석결과 디렉토리를 확인해 보도록 하겠다.
먼저, jangyu.or.kr의 웹로그분석결과가 /home/ju/www/weblog 디렉토리에 저장이 되었는가를 확인한 것입니다.
위와 같이 확인을 하셨다면 설정작업과 실행이 정상적으로 이루어 진다는 것을 의미합니다.
이제 남은 것은 주기적인 실행을 위한 cron설정만을 하면 된다.
아래 예처럼 “crontab -e”라고 하시면 cron설정을 vi모드에서 하실 수가 있습니다. 실행시간은 서버내의 부하가 가장 적은 새벽 시간대로 해주면 될 것이다.
이로써 멀티웹로그분석을 위한 webalizer 설치 및 구성, 그리고 실행 및 실행결과 확인과 cron설정을 모두 마쳤다.
'Server&OS > Apache' 카테고리의 다른 글
아파치 웹서버 80포트로 접근이 안될때 (0) | 2009.09.02 |
---|---|
[CentOS] Apache 설치하기. (0) | 2009.09.01 |
ab유틸리티 파워활용 2편 (0) | 2009.05.15 |
ab유틸리티 파워활용 1편 (0) | 2009.05.15 |
웹서버 ab로 응답속도 측정하기 [출처] 웹서버 ab로 응답속도 측정하기 (NETWORK+ Certification and System Admin) |작성자 째돌 (0) | 2009.05.15 |