커피닉스, 시스템 엔지니어의 쉼터
  원격 로그분석툴 awstats 작성일 : 2007/03/10 11:05
 
  • 글쓴이 : kaien
  • 조회수 : 10874
     
    작성 : 2005. 12. 1. kaien
    프로젝트 : 모 사이트

    1. 개요
    A. 현재 웹 서비스 서버에 대한 웹로그 분석이 필요.
    2. 방법
    A. 서비스 서버에서 로그분석은 피하고 x.x.x.x 백업서버에서 각 서버의 로그 파일을 가져와서 분석하게 함.
    B. 분석툴로는 awstats를 사용함. ( http://awstats.sourceforge.net )
    3. 세팅
    A. 환경설정
        # tar xvfz awstats-6.4.tgz
        # mv awstats-6.4 /usr/local/awstats
        # chmod 755 /usr/local/awstats/
        # chown -R root.root /usr/local/awstats/
        # mkdir /etc/awstats
        # mkdir /var/lib/awstats
    B. 인스톨
        # cd /usr/local/awstats/tools
        # ./awstats_configure.pl
    i. 스크립트가 실행되는데 3가지 정도를 물어본다. 모두 'y'라고 하고 도메인을 적으면 awstats.도메인.conf  형식으로 생성된다.
    ii. 설정 파일 변경 ( ex ) http://cacti.xxx.com )
    1. vi /etc/awstats/awastats.xxx.com.conf
    # If there is several log files from load balancing servers :
    # Example: "/pathtotools/logresolvemerge.pl *.log |"
    #
    #LogFile="/var/log/httpd/mylog.log"
    이 부분에 삽입한다.
    LogFilie="/usr/local/apache2/log/cacti.xxx-access-log"
    # Example: "myintranetserver"
    # Example: "www.domain.com"
    # Example: "ftp.domain.com"
    # Example: "domain.com"
    #
    SiteDomain="cacti.xxx.com"
    # Note: Use space between each value.
    # Note: You can use regular expression values writing value with REGEX[value].
    # Note: You can also use @/mypath/myfile if list of aliases are in a file.
    # Example: "www.myserver.com localhost 127.0.0.1 REGEX[mydomain\.(net|org)$]"
    #
    HostAliases="cacti.xxx.com www.cacti.xxx.com 127.0.0.1 localhost"
    C. 아파치 httpd.conf 수정
    i. 기본적으로 www 로 들어갈 것이다. 그래서 현재 아파치에서 cgi-bin 경로를 수정해줘야된다.
        Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
        Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
        Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
        ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"
       #
        # This is to permit URL access to scripts/files in AWStats directory.
        #
        <Directory "/usr/local/awstats/wwwroot">
            Options None
            AllowOverride None
            Order allow,deny
            Allow from all
        </Directory>
    ii. Awstats를 아파치 로그포맷중 하나인 combined 를 지원한다. Common 이였던 로그 형태를 아래와 같이 combined 로 수정한다.
    CustomLog logs/monitoring.xxx.com-access_log combined env=!not_log
    D. 다른 웹서버에서 x.x.x.x로 로그 파일을 scp를 이용해서 주기적으로 보낸다.
    i. 172 웹서버 ( ex. Log.sh)
    #!/bin/bash
    scp /usr/local/apache2/logs/xxx-access_log xxx@x.x.x.x:/usr/local/apache2/logs/remote
    scp /usr/local/apache2/logs/dnplaza-access_log xxx@x.x.x.x:/usr/local/apache2/logs/remote
    scp /usr/local/apache2/logs/djplaza-access_log xxx@x.x.x.x:/usr/local/apache2/logs/remote
    scp /usr/local/apache2/logs/hansaem-access_log xxx@x.x.x.x:/usr/local/apache2/logs/remote
    E. Awstats 에서 분석해야 할 로그들을 스크립트로 작성하여 일괄적으로 분석하게끔 한다.
    #!/bin/bash
    /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=cacti.xxx.com
    /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=xxx.com
    /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=xxx.co.kr
    /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=xx.co.kr
    /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=xx.com
    /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=xx.com
    /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=webmail.xxx.com
    F. 실행을 하게 되면 차례대로 리모트로 가져온 로그화일들을 분석하게 된다.
    G. 결과물은 http://cacti.xxx.com/awstats/awstats.pl?config=도메인 식으로 URL 경로가 된다. ( ex ) http://cacti.xxx.com/awstats/awstats.pl?config=xxx.com
    x.x.x.x 모니터링 사이트 monitoring.xxx.com


    커피닉스, 시스템 엔지니어의 쉼터 / URL : http://coffeenix.net/board_view.php?bd_code=1473