windows server 2012 구축기 – AWStats 설치하기

Category
Windows Server, 개발 노트
Posted
2014-05-27 17:43
세월호 참사 1주기 결코 잊지 않겠습니다.

awstats는 Perl기반의 웹로그 분석기로, 서버의 웹로그로부터 웹접속자 현황 등의 통계를 보여주는 무료 분석툴이다.
대부분 리눅스에 설치해서 사용하기는 하지만 Window라고 설치하지 못할쏜가!!!!
이제 IIS 서버에 awstats를 달아보자!

  1. 우선 awstats는 Perl 기반의 프로그램이므로 Perl 이 필요하다.
    Perl 설치를 위해 일단 Perl 다운로드 페이지로 이동하자.
  2. Windows용 Perl 을 보면 Strawberry Perl이 있고, ActiveState Perl이 있다.

    뭐지? 웬 딸기와 .. ActiveX를 연상시키는 ActiveState…
    Strawberry Perl은 gcc를 이용하여 컴파일한 Perl 바이너리고, ActiveState Perl은 MS VC++를 이용하여 컴파일한거란다.
    ActiveX 같은 느낌 때문에… ActiveState Perl 은 패쓰… = _=a
    는 농담이고 ;; (정말 농담일까? ㅋ) Strawberry Perl이 성능이 더 낫다는 말이 많아서 딸기를 선택!!!
  3. 딸기 Perl을 다운받을 수 있는 페이지로 이동된다.

    헐… 홈페이지에 떡 크게 박혀 있는 이미지가 진짜 딸기다 맙소사 ㅋㅋㅋㅋ
    실제로 딸기 Perl 말고도 바나나 Perl과 초콜릿 Perl 도 있단다 ㅋ
    무튼, 자기 시스템에 맞는 것을 선택하여 다운로드
  4. Perl 설치는 그냥 대화상자에 나오는 것에 대해 긍정적으로 대답해주면 문제없이 설치된다.
  5. 설치가 완료되고, Perl이 제대로 설치되었는지 궁금하다면 파워쉘을 열어
    perl -v명령어를 입력해서 perl 정보가 나오면 설치가 잘 된거다.
  6. Perl 설치가 완료 되었다면, IIS에 cgi 파일과 pl 파일에 대한 처리기 매핑을 진행한다.
    우선 IIS 관리자를 열어 “처리기 매핑” 기능을 열고
  7. 작업 패널에서 “스크립트 매핑 추가”를 눌러 대화상자를 열고 각 항목별로 다음과 같이 입력을 해준다.
    cgi 파일 매핑
    • 요청 경로 : *.cgi
    • 실행파일 : C:\strawberry\perl\bin\perl.exe "%s" %s
      (perl.exe 파일 경로는 실제 설치된 경로를 따라 적는다)
    • 이름 : CGI Script Map
    pl 파일 매핑
    • 요청 경로 : *.pl
    • 실행파일 : C:\strawberry\perl\bin\perl.exe "%s" %s
      (perl.exe 파일 경로는 실제 설치된 경로를 따라 적는다)
    • 이름 : Perl Script Map
  8. 처리기 매핑까지 끝났으면 이젠 AWStats를 설치해보자.
    역시 일단 AWStats 다운로드 페이지로 이동
  9. 현재 버전들은 압축파일 형태로 제공하고 있다.

    다운받아서 압축해줴~
  10. 해제된 압축파일을 적절한 위치(?)로 위치시켜 놓고,

    파워쉘을 열어 /tools 폴더로 이동한 후, awstats_configure.pl 을 실행하여 AWStats 설정한다.
    perl 실행창이 뜨면서 이제 설정이 시작되는데,
    1. 첫 번째 질문(?)으로 Apache 서버의 path를 입력하라고 나온다.
      Apache 서버는 없으므로 당연히 none 을 입력 하고 엔터
    2. 두 번째로 새로운 AWStats config/profile을 만들지를 묻는다.
      긍정적으로 y 를 입력하고 엔터
    3. 세 번째로 사이트 이름이나 분석 프로파일의 이름을 입력하라고 나온다.
      도메인을 다 넣어도 되지만 간단하게 약어로 넣는게 좀 더 간편하기도 하다.
      필자는 이 서버를 셋팅하고 있을 당시 우선적으로 서비스되던 사이트의 호스트명을 넣었다 = _=a
    4. 입력후 엔터키를 누르면 config 파일이 생성되었음을 알리며, 윈도우 유저에게 미안한 말을 남긴다 /=ㅁ=/
      로그 분석이 자동으로 이루어지지 않기 때문에 분석 프로세스를 스케쥴링해야 한다는…
      일단 가볍게 엔터를 치고 설정을 종료 한다.

  11. 이제 AWStats가 위치한 폴더 내 cgi-bin 폴더를 열어보면 "awstats.입력한 이름.conf" 파일이 생성된 것을 확인할 수 있다.
    필자는 seminar1405 라는 이름으로 만들어 두었다.
  12. 이젠 IIS 관리자를 열어서 AWStats가 분석할 수 있도록 로그 설정을 수정하도록 하자.
    우선 로그 파일 형식을 W3C로 선택하고, 필드 선택을 클릭하여 다음 항목들만 체크되록 설정한다.
    날짜(date), 시간(time), 클라이언트 IP주소(c-ip), 사용자 이름(cs-username), 방법(cs-method), URI 스템(cs-uri-stem), URI 쿼리(cs-uri-query), 프로토콜 상태(cs-status), 보낸 바이트 수(sc-bytes), 프로토콜 버전(cs-version), 사용자 에이전트(cs(USer-Agent)), 참조 페이지(cs(Referer))
  13. 확인을 누르고 적용을 눌러 웹로그가 설정한 대로 쌓일 수 있도록 한다.
    그리고 로그 파일의 디렉터리 설정 값을 잘 기억해두라.
    아까 생성된 conf 파일에 이 로그 디렉토리를 입력해야 한다.
  14. 이제 다시 AWStats의 cgi-bin 폴더로 다시 이동해서 conf 파일을 수정해보자.
    예제코드를 수정할 각 항목별 설명 이후 기재해 두었다.
    • LogFile 항목
      로그파일이 쌓이는 실 경로를 입력한다.
      바로 이전 단계에서 보았던 디렉터리(웹로그 저장 경로)로 들어가보면 W3SVC1 같은 디렉토리가 더 있고, 이 내부에 로그 파일이 있다.
      이 경로와 파일 형태를 그대로 이 값으로 작성해주되, 파일명의 기록 형태에 따라 날짜정보를 %YY%MM%DD와 같은 형태로 변경해서 입력해 주어야 한다.
    • LogFormat 항목
      이 항목은 로그를 해석하지 못하는 경우가 있기 때문에 awstats가 해석해야 할 필드명을 직접 입력해준다. (예제 코드 참고)
    • SiteDomain 항목
      이 항목은 분석할 타겟 사이트 주소를 입력하면 된다.
    • HostAliases 항목
      이 항목은 정확히 어떤 항목인지는 모르겠는데…
      짧은 영어 실력으로 해석해 봤을 때, site domain외 다른 접속가능한 부가적인 도메인이나 IP 주소를 입력하는 항목인듯 하다.
      필자는 그냥 SiteDomain과 동일하게 작성했다.
    • DirData 항목
      분석된 데이터를 저장할 위치를 지정한다.
    • Lang 항목
      언어 설정으로 한국어로 보려면 ko 로 설정한다.
    • LoadPlugin 항목
      W3C 로그를 따르면 GMT 시간으로 기록되기 때문에, 한국 시간으로 보기 위해 timezone +9로 설정해 준다. (띄어쓰기에 주의하라. 띄어쓰기 하나에 오류가 난다)

    예제코드 :
    ~~~~
    LogFile="C:\inetpub\logs\seminar1405\W3SVC1\u_ex%YY%MM%DD.log"
    ~~~~
    LogFormat= "date time cs-method cs-uri-stem cs-uri-query cs-username c-ip cs-version cs(User-Agent) cs(Referer) sc-status sc-bytes"
    ~~~~
    SiteDomain="seminar1405.publisher.name"
    ~~~~
    HostAliases="seminar1405.publisher.name"
    ~~~~
    DirData="C:\awstats\wwwroot\data"
    ~~~~
    Lang="ko"
    ~~~~
    LoadPlugin="timezone +9"
  15. timezone 을 설정한 플러그인을 위해 Perl에 Time::Local 모듈을 추가하자.
    해당 모듈이 추가 되어 있거나, GMT +9 시간을 사용하지 않을거라면 이 단계는 건너 뛰면 된다.
    파워쉘을 열고 다음과 같이 입력한다.
    c:\> cpan
    cpan> install Time::Local

    잘 설치가 되었으면 q 를 입력하여 cpan 을 빠져 나온다.
  16. 자, 이제 모든 준비는 끝났다!
    이제 로그를 AWStats가 분석하도록 pl 파일을 실행시키도록 한다.
    역시 파워쉘을 열고 다음과 같이 코드를 입력한다.
    (단, 정확한 동작 확인을 위해 사이트 접속을 몇 번 시도하여 로그가 쌓이도록 한 후 실행하는 편이 좋다.)
    [perl.exe 경로] [awstats.pl 경로] -config=[분석 프로파일 이름(10-ⅲ 단계에서 입력한 이름)] -update
    예) C:\strawberry\perl\bin\perl.exe C:\awstats\wwwroot\cgi-bin\awstats.pl -config=seminar1405 -update
  17. 쌓여진 로그가 존재한다면 파일 처리에 대한 내용이 로그로 나타난다.
  18. IIS에 AWStats의 wwwroot를 루트 디렉토리로 사이트 등록하여 웹으로 확인해보면 다음과 같이 awstats가 제공하는 웹 화면을 볼 수 있다.
    awstats 웹 브라우저 화면 스크린샷
    드디어 호스팅 업체에서 제공하는 그 화면을 볼 수 있다는거!!!!!
  19. 이제 마지막 한 단계가 남았다.
    Windows 서버에서는 이 로그분서의 update가 자동으로 이루어지지 않기 때문에 작업스케쥴러에 등록하여 자동으로 돌 수 있도록 추가 설정이 필요하다.
  20. "시작메뉴 > 관리 도구 > 작업 스케쥴러" 혹은 "서버 관리자 대시보드 > 도구 메뉴 > 작업 스케쥴러" 를 선택하여 작업 스케쥴러 대화창을 연다.
  21. 필자는 기존의 "작업 스케쥴러 라이브러리"에 awstats 작업을 추가하도록 했음을 참고하여 보도록 하자.
    "작업" 패널에서 "새 폴더"를 클릭하여 "AWstats" 라고 입력.
  22. 만들어진 AWstats 폴더를 더블클릭하여 열어 놓고, "작업 만들기"를 선택,
    "새 작업 만들기" 대화상자가 나타나면 필요한 항목들을 작성하여 넣는다.
    1. 일반 탭에서
      이름 항목에는 관리될 작업의 이름을 기입 (필자는 사이트 명으로 기재하였다.)
      보안 옵션에서 "사용자의 로그온 여부에 관계없이 실행"을 선택
    2. 다음으로 트리거 탭으로 이동하여 "새로 만들기" 버튼을 클릭.
      새 트리거 만들기 대화상자에서 적절한 인터벌을 설정한다.
      필자는 매일 3시간마다 로그분석을 업데이트 시키도록 설정했다.
    3. 동작 탭으로 이동하여 역시 "새로 만들기" 버튼을 클릭.
      여기서 이제 실제로 앞서 설정한 인터벌마다 실행할 스크립트를 설정한다.
      프로그램/스크립트 항목에 perl.exe 의 경로를 입력한다. 물론 찾아보기 버튼을 이용하면 입력이 쉽다 ㅎ
      인수 추가(옵션) 항목에 16단계에서 작성했던 코드의 perl.exe 이후 부분을 그대로 옮겨 적는다.
      작성이 완료되었으면 확인 버튼을 눌러 동작시킬 작업 등록을 완료한다.
    4. 나머지 탭은 설정할 것이 없으므로 확인 버튼을 클릭하여 새 작업 등록을 완료 한다.
      확인 버튼을 누르면 사용자 이름과 암호를 입력하는 대화상자가 나타난다.
      서버 로그인 계정 및 암호를 입력하여 확인을 클릭
  23. 이제, 자동으로 로그분석 데이터가 작업 스케쥴러에 의해 업데이트 되어 AWStats로 연결해 둔 사이트 접속을 통해 로그 분석을 확인 할 수 있게 되었다!!

    후아~ 작성하고 나니 완전 길다 ㄷㄷㄷㄷㄷ
Authored By 멀더끙