BBUWOO'S [ LIKE UNIX ] WORLD Home > Lecture > Mrtg > Mrtg-1  

HOME
WHAT's BBUWOO?
LInux AnNyung
Open Source
    GitHUB
    GitHUB (for PHP)
LECTURE
MINI LECTURE
QnA BOARD
ENGLISH POEM


WARNNING

강좌의 모든 권리는 본인 김정균에게 있으며 이 강좌를 상업적 목적 으로 이용
하거나 다른 곳으로 옮길시에는 본인의 허락이 있어야 한다. 이글의 가장 최신글은
http://oops.org 에서 확인할수 있다.



Usage of MRTG for System Resource

참고:

이 강좌에 나오는 MRTG Package 는 더이상 지원하지 않습니다. MRTG 대신 rrdtool 을 이용하십시오. rrdtool 을 편리하게 사용하기 위해서는 HotSonic, rrdbelt, rrdexec 와 같은 rrdtool frontend 에 대하여 검색해 보십시오

MRTG(Multi Router Traffic Grapher)는 SNMP를 지원하는 네트워크장비가 발생하는 트래픽을
모니터링해 주는 소스가 공개된 프로그램이다. 지정한 시간 (Defaul 는 5분) 마다 모니터링
한 결과값을 GIF(또는 PNG) 이미지로 생성하여 HTML 페이지로 뿌려주기 때문에 누구나 쉽게
트래픽 현황을 볼 수 있다. (아래 image 참조)




이 강좌는 snmp 기능을 이용하여 측정을 하는 법 보다는 script를 이용하여 system 의 리소
스 사용 여부를 graph 로 그려 보는 법을 다루며  ftp://mirror.oops.org 에서 배포를 하는
mrtg rpm package 의 사용법을 다룬다. ftp://mirror.oops.org 에서 배포를 하는 mrtg 패키
지는 사용자의 편의를 위해 약간 변경을 해놓았다. 예제를 보고 싶다면 필자가 운영하고 있
는 http://oops.org/MRTG-data/ 를 참고 하도록 하라.

mrtg binary 명령어는 mrtg2 로 해 놓았으며 mrtg 명령어는 필자가 만들어 놓은  script 로
구성 되어 있으니 기존의 mrtg 명령어를 사용하기 위해서는 mrtg2 명령어를 이용해야 한다.

이 강좌에서는 rpm으로 구성해 놓은 것을 사용하기 위해서 이기 때문에 기존의 mrtg 문서들
과는 조금 틀릴수 있다. 또한 위에서 밝혔듯이 mrtg 의 경우, snmp 기능을 이용하여 네트워
크 trafic 을 측정하는 것이 원 목적이지만 이를 응용한 system resource 를 측정하는 것에
대한 설명을 한다. 또한 snmp service를 이용한 방법은 배제하고 script들을 이용하여 시스
템 리소스를 측정하는 법을 설명하고자 한다.


1. MRTG RPM package 설치

    [ i686 용 package ]

    위의 link 에서 mrtg rpm package 를 받도록 한다. i686 용 package는 Pentium ll 이상
    의 시스템에서 사용을 하면되고 그 이하의 system에서는 source rpm 을 받아서 rebuild
    를 해서 사용하면 된다. rebuild 하는 법은 rpm 사용법 강좌를 참조 하도록 한다. 아래
    의 그림은 mrtg rpm package를 설치하는 과정을 보여준다.

    설치전에 주의할것은 여기서 배포하는 rpm 패키지는 apache rpm package와 vixie crond
    daemon 의 rpm package에 대한 의존성이 걸려 있다. 즉 이 두 package가 rpm 으로 설치
    되어 있지 않은 경우 의존성 에러가 발생하여 설치가 되지않을 수가 있다는 것이다. 이
    경우에는 두 패키지가 확실하게 설치가 되어 있다고 확신한다면

    rpm -Uhv packagname --nodeps

    명령으로 강제 설치를 할수가 있다. 그리고 2가지 내용을 변경해 줘야 한다. 이에 대해
    서는 다음을 참조하라.

 Hanterm

 [root@bbuwoo mydir]$ rpm -Uhv mrtg-2.9.17-1kr.i686.rpm

  mrtg           ############################################
  Stopping cron daemon:                                      [  OK  ]
  Starting cron daemon:                                      [  OK  ]

  #####################################################

    After configure /etc/mrtg2/mrtg.cfg,
    excute mrtg log and mrtg index.
    See http://$HOSTNAME/MRTG-data/
    If you used old example.cfg in /etc and

    you will change memory and loadaverage section
    in mrtg.cfg as new example.cfg

    OOPS Development Organization http://oops.org

  #####################################################

 [root@bbuwoo mydir]$

rpm package 를 설치를 하면 위와같은 메세지를 만나게 된다. 환경변수 $LANG의 값이 ko 일
경우에는 한글 메세지를 만나게 될것이다.  그럼 간단하게 위의 메세지들에 대해 설명을 할
것이다.

일단 설치를 하면 mrtg 를 5 분 간격으로 측정을 하기 위해서 /etc/crontab 의 제일 마지막
부분에 mrtg 설정을 추가하게 된다. /etc/crontab 의 제일 마지막 부분을 보면 다음의 부분
이 추가 되어 있을 것이다.

 Hanterm - cat /etc/crontab

 [root@bbuwoo etc]$ cat /etc/crontab

  SHELL=/bin/bash
  PATH=/sbin:/bin:/usr/sbin:/usr/bin
  MAILTO=root
  HOME=/

  # run-parts
  01 * * * * root run-parts /etc/cron.hourly
  02 4 * * * root run-parts /etc/cron.daily
  22 4 * * 0 root run-parts /etc/cron.weekly
  42 4 1 * * root run-parts /etc/cron.monthly

  # individual configuration part
  # Minutes:Hour:Date:Month:Week:User:Command

  # mrtg setting : every 5min
  */5 * * * * root /usr/sbin/mrtg log > /dev/null 2>&1

 [root@bbuwoo etc]$

상단 그림의 붉은색 글씨 부분이 바로 mrtg 를 5분 간격으로 실행시키기 위한 설정이다. 위
의 설정을 삽입을 시키고 crond daemon을 restart 시키게 된다.

그리고 crond restart message 아래의 영문 메세지는 (환경 변수 $LANG 의 값이 ko 인 사람
들은 한글로 메세지를 보게 될것이다.) /etc/mrtg2 directory 에 있는 exmaple.cfg 를 이용
하여 mrtg.cfg 를 생성을 해 놓게 되는데 이것을 수정을 한후에 mrtg log, mrtg index 명령
을 실행을 하라는 의미를 보여준다.

여기서 다시 하나 주의 할것은 mrtg log 명령은 mrtg의 기본적인 명령이 아니다.  앞에서도
밝혔듯이 manual 에 있는 mrtg 의 명령들을 사용하기 위해서는 mrtg2 명령어를 사용해야 하
며 여기서의 mrtg 명령어는 필자가 사용을 간편하게 하기 위해 만들어 놓은 script 일 뿐이
다. vi /usr/sbin/mrtg 을 해 보면 아래와 같은 스크립트를 볼수가 있다.

 Hanterm - cat /usr/sbin/mrtg

 [root@bbuwoo etc]$ cat /usr/sbin/mrtg

  #!/bin/sh
  #
  # Scripted by JoungKyun Kim
  # 2001.2.15 http://oops.org

  TITLE="${HOSTNAME} MRTG Index Page"
  WORK="/home/httpd/html/MRTG-data"
  CONF="/etc/mrtg2/mrtg.cfg"
  EXEC="/usr/sbin/mrtg2"

  case "$1" in
    conf)
      if [ -f ${CONF} ]; then
        mv ${CONF} ${CONF}.back
        echo "Old mrtg.cfg moved mrtg.cfg.back"
      fi
      ROUTE=`cat /etc/sysconfig/network | grep ^GATEWAY= | awk -F = '{print $2}'`
      echo "WorkDir: ${WORK}" >> ${CONF}
      echo "Language: korea" >> ${CONF}
      /usr/sbin/cfgmaker public@$ROUTE >> ${CONF}
      ;;
    index)
      # Create index file
      echo -n "Create MRTG Index File"
      /usr/sbin/indexmaker --title="${TITLE}" --columns=1 \
                           --output="${WORK}/index.html" ${CONF}
      ;;
    log)
      # Create log file
      ${EXEC} ${CONF}
      ;;
    first)
      TMF=mrtg$$
      if [ -f ${CONF} ]; then
        mv ${CONF} ${CONF}.back
      fi
      if [ -f /etc/mrtg2/example.cfg ]; then
        cat /etc/mrtg2/example.cfg | sed -e s/PUTHOSTNAME/$HOSTNAME/g > /tmp/${TMF}
        mv /tmp/${TMF} ${CONF}
      fi
      ;;
    *)
      echo "Usage: $0 {conf|index|log}"

      echo "conf  - create mrtg config file"
      echo "index - create index file of mrtg"
      echo "log   - logging mrtg log"
      echo
      exit;
  esac

  exit 0

 [root@bbuwoo etc]$

위에서 보는 것과 같이 다른 manual 에서 보던 명령들이 이 script 에 들어가 있는 것을 확
인할수 있을 것이다. 다시 한번 당부 하지만 착각하지 말기 바란다. :-)

>> 다음 : mrtg.cfg 설정하기



    



 Home > Lecture > Mrtg > Mrtg-1

Copyright 1997-2021 JoungKyun Kim 
LAST MODIFIED: 2017/01/19