커피닉스, 시스템 엔지니어의 쉼터 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
* HanIRC의 #coffeenix 방
[ 장비 및 회선 후원 ]
HOME > 시스템 관리 / 서버운영 > 서버 모니터링 도움말
검색 : 사이트 WHOIS 웹서버 종류


  윈도미디어서버 스트리밍건수를 MRTG로 작성일 : 2006/12/07 23:18
 
  • 글쓴이 : 좋은진호 ( http://coffeenix.net/ )
  • 조회수 : 8772
          [ 이전화면 / 수정 ]   비밀번호 :     인쇄용 화면
      제  목 : 윈도미디어서버 스트리밍건수를 MRTG로
    작성자 : 좋은진호(truefeel, http://coffeenix.net/)
    작성일 : 2005.5.10(화)
    정리일 : 2006.12.5(화) 화면 일부 다시 캡쳐 등

    Windows 시스템의 메모리, Disk사용률, CPU사용률, 트래픽, Disk IO등의 상태를 일정 시간 간격으로
    저장한 후 통합관리하는 서버(SMS, NMS서버)에서 MRTG(또는 RRD)로 볼 수 있다면 너무 편하지 않겠는가?
    이 글에서는 Windows Media Server의 스트리밍건수를 '성능모니터'와 스크립트를 통해 MRTG로 그리는
    예를 설명할 것이다. Windows 2003 Enterprise 서버를 기준으로 설명한다.

    ※ 스크립트와 이미지는 공개를 위해서 일부 수정을 했다. (이미지는 숫자 및 서버명 지움)

    1. Windows에서 스트리밍수를 로그파일로 저장하도록 설정

    1) 시작 -> 프로그램 -> 관리도구 -> 성능을 클릭한다.

      

    2) '성능 로그 및 경고' -> '카운터 로그' 에서 오른쪽 버튼을 누른 후 '새 로그 설정(N)'을 클릭한다.

      [ 성능 설정 화면 ]
      

      [ 새 로그 설정 화면 ]
      
      새 로그 설정에 적당한 이름을 입력한다.

    3) 카운터 설정

      로그 이름을 입력하면 다음과 같은 창이 열린다.

      [ 로그 설정 - 일반 탭 ]
      
      '카운터 추가'를 클릭한다.

      [ 카운터 추가 화면 ]
      
      '성능 개체'에서 'Windows Media Services'를 선택하고 '카운터 선택'에서 'Current Connected Players'
      를 추가한다.

      [ 로그 설정 - 일반 탭 ]
      
      카운터가 추가된 것을 확인할 수 있다. 이제 아래 '데이터 샘플 간격'을 3분으로 변경한다.

    4) 로그 파일 형식 설정

      [ 로그 설정 - 로그 파일 탭 ]
      
      '로그 파일 종류'는 텍스트 파일(탭 구분 형식)'으로 하고 '구성(C)'버튼을 눌러 파일명 형식을 지정
      할 수 있다. 파일명 suffix는 yyyymm (현재 년월이 파일명 뒤에 붙게 됨)을 지정한다.

    5) 로그 일정 설정

      [ 로그 설정 - 일정 탭 ]
      
      시작과 중지를 모두 '수동으로'로 선택한다.

    6) 카운터 시작

      [ 성능 설정 화면 ]
      
      해당 로그 이름에서 오른쪽 버튼을 누른 후 '시작(S)'을 클릭한다. 시작하게 되면 이름옆에 불은
      녹색으로 바뀐다.

    2. 성능 로그 파일과 MRTG용 데이터 만들기

    지정한 디렉토리에 cnx01_connection_200504.tsv 파일명 형식으로 저장이 되며, 로그 형식은 다음과 같다.

     
    "(PDH-TSV 4.0) ()(-540)"        "\\?????\Windows Media Services\Current Connected Players"
    "04/27/2005 15:34:09.172"       "764"
    "04/27/2005 15:37:09.172"       "789"
    "04/27/2005 15:40:09.172"       "799"
    "04/27/2005 15:43:09.172"       "786"
    "04/27/2005 15:46:09.172"       "763"
    "04/27/2005 15:49:09.172"       "770"
    "04/27/2005 15:52:09.172"       "785"
    "04/27/2005 15:55:09.172"       "763"
    "04/27/2005 15:58:09.172"       "800"
    "04/27/2005 16:01:09.172"       "797"
    "04/27/2005 16:04:09.172"       "812"
    "04/27/2005 16:07:09.172"       "807"
    "04/27/2005 16:10:09.172"       "827"
    "04/27/2005 16:13:09.172"       "815"
     


    MRTG를 리눅스(또는 FreeBSD)에서 돌릴 것이므로 윈도의 성능로그 파일이 있는 곳을 리눅스에서
    Samba로 마운트한다. Samba 마운트는 smbfs 파일시스템 타입으로 mount 명령을 이용하면 된다.
    다음은 간단한 mount 스크립트이다.
    (개인적으로 expect를 이용해서 password 입력없이 자동 마운트되도록 하고 있다.)

     
    # Windows 공유디렉티리를 samba을 통해 mount
    #
    # by truefeel

    #
    MNT_OPT="codepage=949,uid=truefeel,gid=truefeel,fmask=664,dmask=775"

    SMB_ID="perf_samba"            # windows 공유 ID
    SMB_DIR="//192.168.123.2/perflogs"      # windows 공유명
    MNT_DIR="/home/truefeel/perflogs/"      # *NIX 마운트 포인트

    mount -t smbfs -o username=$SMB_ID,$MNT_OPT $SMB_DIR $MNT_DIR
     


    로그 파일을 보면 어떻게 뽑아내야 MRTG 데이터로 활용할 수 있을지 짐작했을 것이다.
    그렇다. 마지막 줄의 숫자 "815"에 해당하는 필드 값만 뽑아내면 된다.
    다음 스크립트는 마지막 줄의 카운트만 뽑아 cnx01_stream_users.txt 로 저장한다.

    * 다운로드 : http://coffeenix.net/truefeel/wmt_mrtg/get_streaming_user.sh.txt
     
    #!/bin/sh
    #
    # WMT 스트리밍 접속자 얻는 스크립트
    #
    # - WMT 스트리밍 서버에서 남은 접속자 로그를 분석하여
    #   현재 접속자 숫자만 뽑아내어 파일로 저장한다.
    # - 현재 접속자수는 MRTG용으로 활용된다.
    #
    # by truefeel
    # 2005.5.2 최종수정 (달이 바뀔 때 해당 달의 로그파일이 없다면 이전 파일에서 읽도록)
    #

    DATE=`date "+%Y%m"`
    LOG_DIR="/home/truefeel/perflogs"
    LOG_PREFIX="cnx01 cnx02 cnx03"         # 여러대 스트리밍 서버일 때 나열

    #
    for l in $LOG_PREFIX
    do
       LOG_FILE="${l}_connection_${DATE}.tsv"

       # 파일 존재 검사
       if [ ! -f "$LOG_DIR/$LOG_FILE" ]; then
          DATE_AGO=`date --date='1 month ago' '+%Y%m'`
          LOG_FILE="${l}_connection_${DATE_AGO}.tsv"
       fi

       # 현재 스트리밍수
       CONN_USER=`tail -1 $LOG_DIR/$LOG_FILE | awk -F\" '{print $4}'`

       # 파일로 저장
       RESULT_FILE="$LOG_DIR/${l}_stream_users.txt"

       echo $CONN_USER > $RESULT_FILE
       echo $CONN_USER >> $RESULT_FILE
       echo "" >> $RESULT_FILE
    done
     


    3. 리눅스(또는 FreeBSD)에서 MRTG 그리기

    다음 MRTG config파일을 5분 간격으로 cron으로 실행해주면 된다.

    # mrtg cnx01_stream_users.cfg

    * 다운로드 : http://coffeenix.net/truefeel/wmt_mrtg/cnx01_stream_users.cfg.txt
     
    #  for UNIX
    WorkDir: /usr/local/www/htdocs/mrtg

    Refresh: 300
    #Interval: 5
    #WriteExpires: Yes
    #Options[_]: growright, perhour
    Language: korean
    WithPeak[_]: ymw
    MaxBytes[_]: 1000000
    #Unscaled[]: ywmd
    #
    #

    ##########################################################
    ####### section for stream users
    ##########################################################
    Title[cnx01_stream]: streaming users
    Target[cnx01_stream]: `cat /home/truefeel/perflogs/cnx01_stream_users.txt`
    Options[cnx01_stream]: growright, nopercent, Noinfo, gauge
    YLegend[cnx01_stream]: Users
    ShortLegend[cnx01_stream]:
    kMG[cnx01_stream]: ,,k
    Xsize[cnx01_stream]: 450
    Ysize[cnx01_stream]: 120
    LegendI[cnx01_stream]: Users
    LegendO[cnx01_stream]:
    Legend1[cnx01_stream]: Streaming users
    PageTop[cnx01_stream]: <h1><font color=green>음악 스트리밍 접속자수 (cnx01)</font></h1>
     


    자~ 드디어 원하던 MRTG 페이지를 볼 수 있을 것이다.



      커피닉스 카페 최근 글
    [10/20] Cross Compiler 깔
    [07/14] SSL АО
    [04/26] Re: 도스화면 원격조종 여부
    [04/25] 도스화면 원격조종 여부
    [10/30] Cshell에서 난수 설정
    [10/23] 공항철도주식회사 SE 구인 件
    [01/26] Re: wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/25] wget으로 다른서버에있는 디렉토리를 가져오려고합니다.
    [01/11] 특정 안드로이드 WebView 버전에서 SSL 문제 (WebView 버그)
    [08/01] DNS forwarder (전달자) 서버를 통해서 쿼리하면 역방향을 받아오질 못합니다.
    [05/16] (주)후이즈 시스템엔지니어 (경력자) 모집
    [02/15] [AWS] Cloudfront edge 확인하기
    [01/20] Mobile Service/eCommerce 기업에서 Server / Java / PHP 개발자 구인
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Mobile 개발자를 모십니다.
    [01/11] 탄탄한 퍼블리싱 모바일기업에서 Web Front 개발자를 모십니다.
      New!   최근에 등록한 페이지
      KiCad EDA Suite project (Free/Libre/Open-Source EDA Suite) (CAD)
      오픈캐스케이드 캐드 (OpenCASCADE CAD)
      QCad for Windows --- GNU GPL (Free Software)
      The Hello World Collection
      IPMI를 활용한 리눅스 서버관리
      DNS 설정 검사
      nagiosgraph 설치 방법
      Slony-I 설치 방법 (postgresql replication tool)
      Qmail기반의 Anti spam 시스템 구축하기
      clusterssh

    [ 함께하는 사이트 ]




    운영진 : 좋은진호(truefeel), 야수(yasu), 범냉이, sCag
    2003년 8월 4일~