강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
웹호스팅 사업을 위한 AccessWatch 설정방법
조회 : 4,787  


 

 웹호스팅 사업을 하려면 Accesswatch설정을 어떻게 해야할까? 우선 다음과 같은 것들을 고려해 봐야 한다.

        

        ● 하나의 accesswatch로 어떻게 모든 가입자의 통계분석작업을 할까?

        ● accesswatch.cfg는 각 가입자별로 어떻게 설정할까?

        ● 각 가입자별로 어떻게 통계분석작업을 할까?

        ● 각 가입자별로 작업결과는 어디에 저장을 해야하나?

        ● 가입자들은 자신의 분석된 결과를 어떻게 확인할까?

        ● 어떻게 하면 이 모든작업을 정기적으로 서버가 알아서 자동으로 하게 할 수 있을까?

 

여기서 잠깐... 일반적인 Accesswatch의 설정작업과 웹호스팅을 위한 다수의 가입자를 위한 설정작업의 차이점을

다음 도표로 분석해 보았다.(표8-1삽입)

 

        1. 하나의 Accesswatch로 모든 가입자의 분석작업을 하자.

 

웹호스팅 서비스를 하기위한 Accesswatch는 "/usr/local/aw"의 위치에 설치를 한다.

물론 다른 위치에 설치해도 관계없으나 일반적인 경우를 따르도록하자.

      

  /usr/local/aw에 설치된 하나의 accesswatch로 모든 가입자의 분석작업을 하게 될 것이다.

여기서 유심히 볼 것은 "accesswatch-start"이다. 이것은 웹
호스팅 가입자들의 작업을 한꺼번에 하기위한 일종의

스크립트로 필자가 만
들어 둔 것이다.  도스에서는 배치파일(batch file)쯤으로 생각하면 된다.

 

 

  또하나 눈 여겨 보아야 할 것은 한 파일안에 가입자별로 환경파일을 따로 설정해 두었다는 것이다.

aw-parser작업과 aw-report작업 또한 각 가입자
별로 따로 작업이 이루어 진다.  

뒤에서 설명되겠지만 이 스크립트는 시스템
cron으로 정기적으로 작업을 하게 될 것이다.

echo는 작업한 결과를 표시해
두기 위해 작업시점을 기록해 두는 파일에 작업로그를 남기기 위한 것이다.

 

 자 이제, 가입자별로 환경파일을 어떻게 만들어 두었는지 구경해 보자.

    

  /usr/local/aw/cfg에는 가입자별로 따로 만들어진 환경파일이 들어있다. 가입자 별로 구별을 하기 위해

"userdomain.cfg"라는 형식의 환경파일을 각각
생성해 사용했다.  

물론 도메인별로 구별하는 것이 마음에 안든다면 각 가입
자의 계정ID 별로 생성하는 것도 괜찮은 것 같다.

어쨌든 중요한 것은 가입
자별로 환경파일을 따로 만들어야 한다는 것이다.  

어떤 독자들은  "그럼 왜
따로 만들어야만 할까?"라는 의문이 들기도 할 것이다.  

대답은 그렇게 간단
하지 않다. 환경파일이 어떤 역할을 하는 파일인가?  분석작업을 할 로그파일을 지정하고

웹사이트의 이름과 기관명 그리고 작업결과를 저장하게 될
디렉토리를 지정해 둔 파일이 아닌가!   가입자별로

이름과  로그파일의 위
치 또한 다르며, 분석결과가 저장될 곳 또한 다르므로 이를 구분해서 작업하기 위해 환경파일

또한 따로 생성해 둬야 한다는 것이다.

  이중에 manualand.co.kr과 hyung.co.kr가입자의 환경파일을 비교하면서 살펴보자.

 

  이 두 파일의 내용을  잘 비교해 보면 앞에서 설명한 것이 확실하게 이해될 것이다.  

이해는 했겠지만 구체적으로 명시해 본다면 다음과 같은 사항들
이 가입자별로 다르게 설정되어있다.

 

        ● 분석에 사용할 로그파일의 위치

        ● 분석결과가 저장될 위치

        ● 기관이름

        ● 기관도메인

        ● 각 페이지별 꼬릿말(옵션)

 

  이제 가입자별로 환경파일의 설정이 따로 되어 있다면 남은 것은 작업을 일괄적으로 하는 것과 정기적으로 작업을

자동화 하여 각 가입자의 결과가
쌓일 디렉토리에 저장되게 하는 것이다.  필자는 간혹 시스템관리의 핵심적인 3요소를

시스템보안,  효율적인 운용과 정확한 백업 그리고 주기적인 작업의 자
동화 라고 말하곤한다.

이중 여기서 언급하는 것이 자동화 부분이다. cron과
쉘프로그램등으로 가능한 모든 작업은 시스템에서 자동으로

실행되게 하며
반드시 이 작업에 대한 로그파일을 남기도록 해야한다.

 이런 측면을 유념하
면서 다음작업을 살펴보자.

 

              3. 로그분석작업 이렇게 한다.

  이제 로그분석 작업을 하여 보자. 이 작업을 하기 전에 Linux나 UNIX에서의 cron이란 것에 대해서 조금 이해가

있어야 한다.

cron이란 시스템에서
주기적인 작업에 대하여 언제, 어떤작업을 할 것인가를 예약해두고서 지정된 시간에

OS(정확하게는 커널, Kernel)가 자동으로 작업하는 일종의 예약작업
이다.

리눅스에서 cron작업이 설정되어 있는 곳은 /etc 디렉토리 밑에 시간, 일, 월, 년등의 디렉토리로 다음과 같이 존재한다.

 

          

  위의 디렉토리는 시간별(cron.hourly), 일별(cron.daily), 주별(cron.weekly), 월별(cron.monthly)작업을 나타내는 각각의

디렉토리이다. 예를 들어 일별 작업이 필요하다면 작업할 내용을 작성한 파일을 "cron.daily"디렉토리에 넣어두면

OS가 알아서 작업을 해 준다.  로그 분석작업은 보통 주별이나 월별로작업을 하므로 여기서는 월별로 작업할 때

cron작업설정을 하는 예를 들어 보겠다.  cron파일을 작성하는 것은 의외로 간단하다.  

다음의 예는 월별로 통계분석작업을 하기 위해 "cron.monthly"디렉토리 내에서 "/usr/local/aw/

accesswatch-start"을 월1회 실행시키기 위한 설정으로 필자가 만들어 놓은 것이다.

꼭 이렇게 작성하라는 법은 없다. Shell에 대해서 어느정도만 알고 있는 독자라면 이 스크립트를 바꿔서 사용해도 좋다.

하지만 다양한 시스템을 수년간 관리해 온 필자의 경험상 cron 작업을 할 때는 작업한 시점과 작업한 메시지를 파일에

저장해 두도록 하는 습관이 꼭 필요하다.

         

  위의 예에서 date로 시작하는 라인은 작업한 시각을 남겨 놓기 위한 설정으로 이 작업이 시작된 일시를 지정한 디렉토리

(/usr/local/aw/)의 파일(accesswatch.daily.job.log)에 계속 누적하게된다. 그 다음 라인의 echo 또한 마찬가지로

작업했다는 표시를 한 것이다. 이 두라인은 크게 의미없는 것으로 생략해도 지장은 없다.  우리에게 필요한 라인은

마지막 라인이다.  이 마지막 라인이 실행되면 위에서 살펴보았던 모든 가입자들의 로그가 각각 분석되어 가입자별로

지정된 디렉토리에 결과가 저장되게 되고 작업한 메시지 "accesswatch.daily.job.log"에 남게 된다.

 

아래의 예는 "accesswatch.daily.job.log"의 예로 몇번 작업된 메시지를 간단히 보여준 것이다.

 

     

 

 

                  4. 각 가입자별 분석결과는 여기에 저장된다.

 

 이렇게 작업된 결과는 각 가입자의 지정된 디렉토리에 저장된다. 즉, manualand.co.kr이란 가입자의 결과는

home/sspark/public_html/report에 저장되며, hyung.co.kr이란 가입자의 결과는 /home/hyung/public_html/report에

각각저장된다.  아래의 두 예를 비교해 보자.

    

              

 

  이제 가입자별 분석작업을 모두 끝냈으니 가입자 별로 분석된 결과를 어떻게 보는가에 대해서 알아보도록 하자.

 

 

                5. 가입자들은 통계분석결과를 이렇게 확인한다.

 

  이제 앞에서 예를 들었던 두 가입자의 분석결과는 다음과 같이 확인 할수 있다.

 

  http://www.manualand.co.kr/report로 확인

    

 

  http://www.hyung.co.kr/report로 확인

 

  각 가입자별로 로그를 분석하는 방법에 대해서 알아보았다. 이를 정리하는 의미에서 지금껏 설정해둔 작업들이

시스템내에서 어떤순서로 실행이 되는지 그 실행순서를 정리해 보도록 하자.

 

        ① /etc/cron.monthly/accesswatch라는 파일에서 지정된 일시에 /usr/local/aw/          accesswatch-start라는 스크립트가

실행된다.

        ② /usr/local/aw/accesswatch-start스크립트내에 설정되어 있는 가입자별 환경파일          이 하나씩 실행되면서

가입자별로 로그분석작업이 진행된다.

        ③ 각각의 분석결과를 각 가입자의 aw결과저장 디렉토리에 저장된다.

           (예, /home/sspark/public_html/report)

        ④ 가입자별로 웹브라우즈로 확인한다.

           (예, http://www.manualand.co.kr/report)

 

  이제 모든 작업이 끝났다.  그냥 보고 이해하는 기쁨과 직접 작업해서 결과를 확인한 희열에서 얻을 수 있는 설레임은

그 차원이 다르다.  이해했을때는 막연한 자신감이지만, 직접 작업한 것이 성공했을 때는 막연한 미래에 대한

자신감마저 가져다 준다.

 

               6. 일반사용자와 다수사용자의 비교

 

  조금은 복잡하다고 생각했을 수도 있다.  일반개인이 사용하는 Accesswatch와 호스팅사업등을 하기 위해 사용하는

Accesswatch의 설치, 설정 및 사용법은 조금다르기 때문이다. 개인이 사용할 경우에는 설치한후에 그냥 사용을

하면 된다. 하지만 하나의 Accesswatch로  다수의 사용자를 수용해서 사용하는 경우에는 몇가지의 설정이 필요하다.

지금까지 이 두가지의 경우를 모두 설명했으므로 여기서는 이에 대한 정리를 해보고자 한다.

아래의 표8-1은 이 두가지를 비교해 놓은 것이다.  Accesswatch 뿐 아니라 다른 소프트웨어들도 다수의 사용자가

사용할 경우에는 이와같이 몇가지 설정사항들이 있게 마련이다.  

이를 참고로 좀 더 다양한 기술을 익혔으면 하고 바래본다.

 

구분

일반사용자가 설치한 aw

웹호스팅서비스를 위한 aw

accesswatch 홈디렉토리(설치위치)

/home/sspark/public_html/aw

/usr/local/aw

사용자수

1인

모든 가입자

로그파일위치

/home/sspark/logs/access_log

주된로그파일

/usr/local/apache/logs/access_log

가입자로그파일

/home/sspark/logs/access_log

로그분석결과 저장위치

/home/sspark/public_html/aw/report

가입자의 경우

/home/sspark/public_html/report

로그분석결과 확인

http://www.manualand.co.kr/aw/report

가입자의 경우

http://www.manualand.co.kr/report

별도조치사항

없음

. accesswatch-start생성

. /etc/cron.monthly/accesswatch생성

. 가입자별 환경파일 생성요


[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=510


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
박성수
파파
헐렁고수