RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
출처 블로그 > 여러가지를 꿈꾸는 풀잎이
원본 http://blog.naver.com/yuseungku/90001826914

트래픽 모니터링을 위한 아파치 모듈 : mod-cband

아파치 2.0.5버전(2006년 기준), 즉 아파치가 버전 업이 되면서 호스팅(서버를 일정 부분 유저에게 할당을 해서 웹 서비스를 제공해주는 서비스)서비스 중 가장 중요한 트래픽 모니터링에 대한 모듈의 부재가 나타났다. 아파치 1.3이상 버전에서만 지원되는 mod-throttle이라는 트래픽 제어 모듈을사용하기 위해 많은 서버 관리자들은 아파치를 다운그레이하여 사용할 수 밖에 없었는데 mod-cband는 이러한 상황을 해결해주는데 충분한 기능을 가졌다. 물론 필자는 mod-throttle을 사용해보지 않았기 때문에 그 기능상의 차이점을 적지 못하는 점을 양해해 주기 바란다. (리눅스 서버관리를 파고 들은지가 이제 겨우 3개월 되었습니다. 그렇기 때문에 아직 많이 미숙하기 때문에 이것저것 질문 하셔도 답변을 해드릴 수 없을지도 모릅니다. 그리고 이 문서는 제가 연구하면서 작성하는 것이기 때문에 일부로 존칭을 생략하였습니다. 양해해주시기 바라며 아파치 이제 다운그레이 하지 말고 사용 해보도록 합시다!!!)

- mod-cband 0.9.7.1

트래픽 양을 제한하고 모니터링 할 수 있는 모듈로 설치가 쉽고 적용이 매우 쉬우며 사용방법도 매우 간단하다. 현재 mod-cband 모듈을 완벽히 제어를 하는 법을 모르기 때문에 큰 내용을 여기서 작성하지는 않는다.

- 설치 하기

링크 : http://backports.org/debian/pool/main/m/mod-cband/

우선 위 링크를 통해 해당 웹페이지로 이동을 하여 mod-cband_0.9.7.1.orig.tar.gz 파일을 받는다. 그런 뒤에 적당한 곳에 압축을 푼다. 안에 매뉴얼을 보면 설치하는 방식은 딱 6줄이다.

$ wget http://backports.org/debian/pool/main/m/mod-cband/mod-cband-0.9.7.1.tgz

$ tar xzvf mod-cband-0.9.7.1.tgz

$ cd mod-cband-0.9.7.1

$ ./configure

$ make

$ make install

이렇게 하면 설치가 된다. 하지만 그전에 모드가 dso so방식. 동적 모듈 로딩으로 초기 설치시 셋팅이 되어 있어야 한다. 필자는 그 전에 셋팅을 위와 같이 했으므로 그 부분은 넘어가도록 한다. 동정 모듈 로딩은 앞으로 중요 프로그램 설치시에 크게 필요하므로 셋팅이 안되어있다면 추가 컴파일을 통해 셋팅을 다시 하도록 하자.

필자는 위와 같이 했을 때 설치를 하지 못했다. 설치가 안되는 사람의 경우에는 다음과 같이 해야 한다. 이건 나름대로 필자가 성공한 방법이기 때문에 모든 사용자의 컴퓨터 리눅스 환경에서 완벽히 성공한다는 보장은 없지만 아마 될 것이다.

$./configure –with-apxs=/아파치2가 깔려있는 PATH/bin/apxs

configure 설정 시 다음처럼만 하면 기분좋은 화면을 볼 수 있을 것이다. 위 구문을 살짝 이야기 하자면 모듈 추가를 위한 apxs의 직접적인 패스를 달아준 것이다. 필자는 이제 리눅스 입문하는 단계 이기 때문에 남들처럼 잘하지 못한다. 일일이 왜 그랫나 설명은 삼가하겠다. 그럼 이제 자동으로 모듈추가도 해주기 때문에 의기양양하게 phpinfo() 함수를 이용해 loaded module란을 확인해보자. cband가 추가되어있는 것을 확인 할 수 있을 것이다. 이제 아파치 설정을 해야 한다.

아파치 설정은 압축 파일 안에 있는 샘플을 보면서 서버 환경에 맞게 설정을 하면 된다. 간단히 몇가지를 이야기 하자면 필자는 샘플 2의 방식을 사용했다. 클래스 방식을 사용하는건 너무 어려웠다.(귀찮기도 했다.)

# define user 'dembol'

<CBandUser dembol>

   # 200MB bandwidth limit for user 'dembol'

   CBandUserLimit 200000

   # redirect to http://abc.org/bandwidth_exceeded.html

   # when the limit has been reached

   CBandUserExceededURL http://abc.org/bandwidth_exceeded.html

   # user's scoreboard file

   CBandUserScoreboard /var/run/apache2/dembol.scoreboard

  

   # a period of time after which the scoreboard will be cleared (2 minutes) (only in >=0.9.5-rc2)

   CBandUserPeriod 2M

</CBandUser>

우선 먼저 유저를 등록한다. 이건 샘플문서에 나와있는 내용으로 하나 하나 설명을 해보겠다. 유저의 이름은 dembol이고 200MB로 한정했다. ExceedeURL의 경우는 트래픽 오버가 나면 이동한 페이지이다. 이부분에서 아직 테스트가 완벽히 이루어지지 않아 자세히는 모르겠지만 현재 상황을 보면 순식간에 루프를 돌아버렸다. 생각해보니 트래픽 제한한 계정으로의 이동을 다시 또 이동을 시켰으니 루프를 돌 수 밖에 없었던 게 아닌가 생각한다. scoreboard는 아직 잘 모르겠지만. 우선은 시키는 대로 했다. 그 다음은 scoreboard가 클리어 되는 시간을 설정한다. 여기서 사용하는 것을 보면 (M : , H : 시간, 없으면 초) 대충 이런 식으로 설정을 하는 것으로 보인다.

# assign virtualhost 'xyz.org' to user 'dembol'

<VirtualHost *:80>

   ServerName xyz.org

   # Specify virtualhost owner

  CBandUser dembol

  

   # 100MB virtualhost bandwidth limit

   CBandLimit 100000

   # redirect to http://abc.org/bandwidth_exceeded.html

   # when the limit has been reached

   CBandExceededURL http://abc.org/bandwidth_exceeded.html

   # virtualhost's scoreboard file

   CBandScoreboard /var/run/apache2/xyz.org.scoreboard

  

   # a period of time after which the scoreboard will be cleared (3 hours) (only in >=0.9.5-rc2)

   CBandPeriod 3H

</VirtualHost>

이것은 위에서 설정한 유저를 바탕으로 직접적인 호스팅의 제어를 하는 곳이다. 이렇게 하기 싫고 특수 유저에 맞게 할당을 하고자 한다면 이 샘플 바로 위에 있는 가상호스트의 제어만 하는 것을 하도록 한다. 위에서 말했듯이 가상호스트 설정은 비슷하니 설명은 빼도록 하겠다.

이제 위 방식의 효율성을 잠시 써보도록 하겠습니다. 웹호스팅 서비스를 할 때 이런 글을 본적이 있을 것이다. 트래픽 제한은 하지 않겠지만 만약 전체 점유율이 다음과 같으면 잠시 트래픽을 제한한다. 라는 글을 본 적 있을 것이다. 이런 것처럼 유저의 트래픽은 가상호스트의 계정과 따로 트래픽을 관리하게 된다. 그렇기 때문에 가상호스트 계정의 트래픽 오버가 나도 유저의 트래픽은 걸리지 않는 것이다. 이것을 이용하면 전체 계정의 트래픽양을 제어 할 수 있을 것이다.

문제는 아직 모듈 분석을 다 하지 못해서 자동으로 서버 가동 24시간이면 클리어 되게 하는 법을 모르고 있다. 혹시라도 알게 되면 다시 글에 덧붙이도록 하겠다.

이제 모니터링을 할 수 있는 부분을 추가해야 하는데, 제작자는 httpd.conf파일에 다음과 같은 구문을 몇 줄 추가해야만 볼 수 있게 해놓았으니 다음 라인을 추가한다.

<Location /cband-status>

SetHandler cband-status

</Location>

필자는 httpd.conf맨 마지막 페이지에 삽입을 하였으나 여러분들은 각자 알아서 원하는 위치에 넣도록 하자. 이제 위 작업이 모두 끝나고 각 가상 호스트에게로의 트래픽 사용량 제한을 완료 하였다면 아파치를 재 실행하여 다음 주소로 접근을 해보자.

http://도메인명/cband-status

이렇게 되면 한 곳에서 모니터링이 가능 할 것이다.

2006/09/11 10:08 2006/09/11 10:08
이 글에는 트랙백을 보낼 수 없습니다
웅쓰:웅자의 상상플러스
웅자의 상상플러스
전체 (379)
게임 (5)
영화 (2)
기타 (23)
맛집 (5)
영어 (2)
대수학 (3)
형태소 (5)
Hacking (9)
Linux (112)
HTML (48)
Application_developing (48)
Web_developing (102)
Window (11)
«   2024/11   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
  1. 2016/01 (1)
  2. 2015/12 (3)
  3. 2015/10 (3)
  4. 2015/03 (2)
  5. 2015/01 (4)