서버(Server)를 아파치로 구축했다면 내 서버에

  • 몇명이 접속 했는지,
  • 어떤 페이지가 가장 호출되었는지,
  • 어느 국가에서 접속했는지,
  • 어떤 IP에서 접근했는지,
  • 머무른 시간은 어떠한지,
  • 어떤 파일을 다운로드 받았는지 등

수 많은 정보를 서버로그를 통해 다음과 같이 분석할 수 있습니다.


우분투환경에서 아파치 서버로그는 awstats를 이용하여 분석합니다.


1. awstats 패키지 설치
  • 다음 명령어로 awstats를 설치합니다.
  • geo 라이브러리는 방문자를 나라별로 분류해서 볼 수 있게 하기위해 설치합니다.
$ sudo apt-get install awstats libgeoip1 libgeoip-dev libgeo-ip-perl

2. awstats 환경 설정
$ sudo vim /etc/awstats/awstats.conf
  • 122번째줄 : LogFormat=4 를 LogFormat=1 로 변경. ubuntu apache 기본값이 1번입니다.
  • 153번째줄 : SiteDomain=”” 를 SiteDomain=”mydomain.com” 로 변경. 작업중인 파일명을 참고하여 변경하세요.
  • 168번째줄 : HostAliases=”localhost 127.0.0.1” 를 HostAliases=mydomain.com localhost 127.0.0.1” 로 변경. 현재 설정파일과 동일하게 취급할 도메인을 띄어쓰기를 구분자로 하여 적어줍니다.
  • 188번째줄 : DNSLookup=1 을 DNSLookup=0 으로 변경. dnslookup 은 부하가 많이 걸리므로 꺼두는게 좋습니다.
  • 905번째줄 : Lang=”auto” 를 Lang=”ko” 로 변경. 강제로 한국어를 지정합니다. awstats에는 한글UI를 지원합니다.
  • 1305번째줄 : LoadPlugin=”hashfiles” 를 LoadPlugin=”geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat” 로 변경. 방문자를 나라별로 분류해서 볼 수 있습니다.

3. awstats 보안 설정
# awstats.도메인명.conf 를 자동으로 불러옴
$ sudo cp /etc/awstats/awstats.conf /etc/awstats/awstats.windwing.co.kr.conf

# 보안을 위해서 기본샘플파일인 awstats.conf 파일명을 awstats.conf_ 로 변경
$ sudo mv /etc/awstats/awstats.conf /etc/awstats/awstats.conf_

4. 아파치 환경 설정
  • 아파치 환경설정 파일을 읽어옵니다.
$ sudo vim /etc/apache2/sites-enabled/000-default
  • 환경설정 파일에서 VirtualHost 태그 안에 awstats 설정 추가합니다.
<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>


    ## -- awstats 설정 ##
    Alias /awstatsclasses "/usr/share/awstats/lib/"
    Alias /awstats-icon/ "/usr/share/awstats/icon/"
    Alias /awstatscss "/usr/share/doc/awstats/examples/css"

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ...
</VirtualHost>
  • 아파치 서버 재시작
$ sudo /etc/init.d/apache2 restart

5. 로그정보 업데이트
  • 시스템에서 주기적으로 업데이트 하기위해 crontab 설정합니다. (반드시 sudo를 붙여 관리자 crontab에 등록)
sudo crontab -e
  • 다음과같이 crontab에 awstats 업데이트 구문을 등록합니다. (30분 주기)
# awstats
00,30 * * * * /usr/lib/cgi-bin/awstats.pl -config=mydomain.com -update > /dev/null

6. 결과 확인



references


'개발이야기 > Linux' 카테고리의 다른 글

Ubuntu 이클립스 실행오류 해결  (4) 2012.09.26
Ubuntu 12.04에서 java 설치  (0) 2012.09.12
ptrace 설명 및 사용법  (0) 2012.07.19