RadarURL

조회 수 5274 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄


4. MRTG Script 만들기
이  section 에서는 mrtg.cfg 의 Target 에서 지정한 script 들이 어떠한 원리로 만들
어 지는지를 설명하겠다.

MRTG는 상당히 복잡한 계산을 한다. WorkDir에 있는 log file을 보면 알겠지만 4 개의
필드를 이용해서 변화된 값들만 저장을 하게 된다.  이 로그 파일에 대해서 분석을 하
고 싶다면 http://www.mrtg.co.kr 의 기술 자료실의 1번 글을 참고하면 될것이다.

여기서는 이 로그파일을 분석하고 머리를 싸매는 일과는 상관이 없다.  로그파일을 분
석하는 일은 mrtg가 알아서 해 주는 것이고 mrtg가 로그파일을 생성 분석할 data 값만
mrtg로 넘겨 주는 일만 하면 되는 것이다.

mrtg 에게 data를 넘겨 주는 것은 생각외로 단순하다. mrtg의 경우에는

IN
OUT
DATE
OS NAME

의 형식으로만 값을 넘겨 주면 된다. 즉 쉘상에서 실행 했을 경우 아래와 같이 출력이
되면 되는 것이다.
 


 Hanterm 

 [root@bbuwoo mydir]$ /usr/bin/mrtg2/cpuinfo
  0
  1
  58 days
  linux
 [root@bbuwoo mydir]$
 


위의 경우는 cpu 사용량을 측정하는 스크립트의 출력 결과이다.  IN 과 OUT 의 개념은
mrtg 가 network 전송을 측정하는 것이 원 기능이기 때문에 receive와 transfer 의 값
을 기준으로 삼기 때문에 IN 과 OUT 으로 표현을 하는 것이고 이것을 이용하여 우리는
IN 값과 OUT 값에 적당한 값을 넣어주고  mrtg.cfg 에서 tag 들을 적절히 수정을 하여
이 패키지 처럼 출력을 하게 하는 것이다. 그럼 script 에 대해서 예를 들어서 분석을
해보도록 하겠다.

아래의 예는 loadaverage 를 구하는 script이다.
 


 Hanterm - cat /usr/bin/mrtg2/loadaverage 

 [root@bbuwoo etc]$ cat /usr/bin/mrtg2/loadaverage

  #!/bin/sh
  #
  # Scripted by JoungKyun Kim
  # 2001.2.15 http://oops.org
  # This Script follows GPL2 License

  # OS 를 지정
  OS=LINUX

  # uptime 경로
  UPTIME=/usr/bin/uptime

  # 서버 운영 시간
  DAYS=`$UPTIME | awk '{print $3" "$4}'`
  DAY=${DAYS%%,*}

  이 부분은 서버의 운영시간을 측정한다. uptime | awk '{print $3" "$4}' 를
  실행하면 uptime 결과중 58 days,  1:50, 부분만을 가져온다. 그리고 서버가
  부팅이 된지 하루가 안되었다면 1:50,  11 users 와 같이 가져올 것이다. 이
  결과값을 shell script의 파라미터 확장을 이용하여 ,다음의 모든 문자를 제
  거를 하도록 한다. 그럼 결과값은 58days 또는 1:50 이라는 부분만 남게된다.
  이것이 3번째 줄에 출력이 될 서버 운영시간을 구하는 것이다.

  이 루틴은 다른 부분에 그대로 적용을 해도 상관이 없을 것이다.

  TEMP0=`${UPTIME} | sed -e s/,//g`
  TEMP1=${TEMP0##*average:}

  이 부분은 uptime 명령에서 확인할수 있는 load average filed중 5분과 15분
  평균값만 골라 내도록 하는 부분이다. 그럼 하나씩 분석을 해보도록 하자

  먼저 uptime | sed -e s/,//g 의 결과값을 TEMP0 이라는 변수값으로 받는다.
  다음 TEMP0 의 결과값에서 average: 라는 문자열을 포함하여 앞을 모두 삭제
  하여 TEMP1 이라는 변수로 받는다.

  그럼 TEMP0 은 uptime 결과중 쉼표만 삭제할 체로
  3:41pm  up 58 days  1:57 11 users  load average: 0.00 0.00 0.00
  와 같이 변수값을 가지게 될것이고 TEMP1 은 위의 결과값에서 average: 앞의
  문자열을 모두 삭제한 0.00 0.00 0.00 만이 남게 될 것이다. 즉 5분 10분 15
  분의 average 만 남게 되는 것이다.

  여기서 set 명령을 이용하여 첫번째 field부터 $1, $2, $3 의 변수로 나누어
  준다. 즉 $1 은 5분간의 average가 되고 $3 은 15분간의 average 가 되는 것
  이다.

  FIVE=$1
  FIFT=$3

  # 5분 평균값
  echo ${FIVE}
  # 15분 평균값
  echo ${FIFT}
  echo $DAY
  echo $OS

 
  위와 같이 필요한 값을 구한 다음 차례대로 한줄씩 echo를 해 주면 되는것이다.
  IN OUT 개념이 헷갈릴지는 모르겠지만 이부분은 우리가 필요한 값을 출력을 해
  준 다음 mrtg.cfg 의 LegendO(output tag) 와 LegendI(input tag) 에서 적당한
  이름으로 대체를 해 주면 된다는것이다.

  exit 0

 [root@bbuwoo etc]$
 


위의 scritp 를 이용하면 여러가지를 측정할수가 있다. 물론 script 만 만드는건 상당
히 쉽다. (물론 script 에 대해서 해박한 지식을 가지고 있어야 할것이다.) 그리고 꼭
shell script로 만들 필요는 없다. 필자의 경우에는 shell 스크립트보다 php를 이용하
는 것이 더욱 간단하고 명확하게 만들수 있지만 package 로 배포를 하려다보니 누구나
설치만 하면 사용할수 있게 만들기 위해 shell script를 이용한 것 뿐이다. 아마 perl
을 php만큼만 할줄 알아도 perl로 만들었을 것이다. :-)

다만 내가 말하고자 하는 것은 스크립트를 만드는 것도 중요 하지만 실제로 중요한 것
은 mrtg.cfg 를 설정을 하는 것이다. 필자의 경우에도 script 를 만들어 놓고선 graph
를 제대로 표현을 하지 못해서 애를 많이 먹었었다. 이 부분에 대해서는 mrtg문서들을
꼼꼼히 읽어 보고 하기를 바란다. 필자가 알려주고 싶지만 필자도 꽁수로 이리저리 해
보고 안것이라서 글로서 표현을 하면서 알려주기에는 벅차기 때문이다.

5. 문의 사항이 있으면..?

문의 사항이 있으면 직접 해결 하든지 http://www.mrtg.co.kr를 이용하도록 하길 바란
다. 필자에게 문의를 해도 답변을 해 줄 능력이 없다. 위의 site의 경우 mrtg 에 대한
아주 자세한 자료들과 관리자 또한 해박한 지식을 보유하고 있으니 위의 site 를 이용
하기 바란다. 다만 여기서 배포하는 package를 사용함에 있어 결과값이 제대로 안나온
다든지 또는 package 에 대한 문제점이 발생할 경우 QnA 게시판을 통해 문의를 하기를
바란다.
 


4. MRTG Script 만들기

이  section 에서는 mrtg.cfg 의 Target 에서 지정한 script 들이 어떠한 원리로 만들
어 지는지를 설명하겠다.

MRTG는 상당히 복잡한 계산을 한다. WorkDir에 있는 log file을 보면 알겠지만 4 개의
필드를 이용해서 변화된 값들만 저장을 하게 된다.  이 로그 파일에 대해서 분석을 하
고 싶다면 http://www.mrtg.co.kr 의 기술 자료실의 1번 글을 참고하면 될것이다.

여기서는 이 로그파일을 분석하고 머리를 싸매는 일과는 상관이 없다.  로그파일을 분
석하는 일은 mrtg가 알아서 해 주는 것이고 mrtg가 로그파일을 생성 분석할 data 값만
mrtg로 넘겨 주는 일만 하면 되는 것이다.

mrtg 에게 data를 넘겨 주는 것은 생각외로 단순하다. mrtg의 경우에는

IN
OUT
DATE
OS NAME

의 형식으로만 값을 넘겨 주면 된다. 즉 쉘상에서 실행 했을 경우 아래와 같이 출력이
되면 되는 것이다.
 Hanterm

 [root@bbuwoo mydir]$ /usr/bin/mrtg2/cpuinfo
  0
  1
  58 days
  linux
 [root@bbuwoo mydir]$
위의 경우는 cpu 사용량을 측정하는 스크립트의 출력 결과이다.  IN 과 OUT 의 개념은
mrtg 가 network 전송을 측정하는 것이 원 기능이기 때문에 receive와 transfer 의 값
을 기준으로 삼기 때문에 IN 과 OUT 으로 표현을 하는 것이고 이것을 이용하여 우리는
IN 값과 OUT 값에 적당한 값을 넣어주고  mrtg.cfg 에서 tag 들을 적절히 수정을 하여
이 패키지 처럼 출력을 하게 하는 것이다. 그럼 script 에 대해서 예를 들어서 분석을
해보도록 하겠다.

아래의 예는 loadaverage 를 구하는 script이다.
 Hanterm - cat /usr/bin/mrtg2/loadaverage

 [root@bbuwoo etc]$ cat /usr/bin/mrtg2/loadaverage

  #!/bin/sh
  #
  # Scripted by JoungKyun Kim
  # 2001.2.15 http://oops.org
  # This Script follows GPL2 License

  # OS 를 지정
  OS=LINUX

  # uptime 경로
  UPTIME=/usr/bin/uptime

  # 서버 운영 시간
  DAYS=`$UPTIME | awk '{print $3" "$4}'`
  DAY=${DAYS%%,*}

  이 부분은 서버의 운영시간을 측정한다. uptime | awk '{print $3" "$4}' 를
  실행하면 uptime 결과중 58 days,  1:50, 부분만을 가져온다. 그리고 서버가
  부팅이 된지 하루가 안되었다면 1:50,  11 users 와 같이 가져올 것이다. 이
  결과값을 shell script의 파라미터 확장을 이용하여 ,다음의 모든 문자를 제
  거를 하도록 한다. 그럼 결과값은 58days 또는 1:50 이라는 부분만 남게된다.
  이것이 3번째 줄에 출력이 될 서버 운영시간을 구하는 것이다.

  이 루틴은 다른 부분에 그대로 적용을 해도 상관이 없을 것이다.

  TEMP0=`${UPTIME} | sed -e s/,//g`
  TEMP1=${TEMP0##*average:}

  이 부분은 uptime 명령에서 확인할수 있는 load average filed중 5분과 15분
  평균값만 골라 내도록 하는 부분이다. 그럼 하나씩 분석을 해보도록 하자

  먼저 uptime | sed -e s/,//g 의 결과값을 TEMP0 이라는 변수값으로 받는다.
  다음 TEMP0 의 결과값에서 average: 라는 문자열을 포함하여 앞을 모두 삭제
  하여 TEMP1 이라는 변수로 받는다.

  그럼 TEMP0 은 uptime 결과중 쉼표만 삭제할 체로
  3:41pm  up 58 days  1:57 11 users  load average: 0.00 0.00 0.00
  와 같이 변수값을 가지게 될것이고 TEMP1 은 위의 결과값에서 average: 앞의
  문자열을 모두 삭제한 0.00 0.00 0.00 만이 남게 될 것이다. 즉 5분 10분 15
  분의 average 만 남게 되는 것이다.

  여기서 set 명령을 이용하여 첫번째 field부터 $1, $2, $3 의 변수로 나누어
  준다. 즉 $1 은 5분간의 average가 되고 $3 은 15분간의 average 가 되는 것
  이다.

  FIVE=$1
  FIFT=$3

  # 5분 평균값
  echo ${FIVE}
  # 15분 평균값
  echo ${FIFT}
  echo $DAY
  echo $OS

  
  위와 같이 필요한 값을 구한 다음 차례대로 한줄씩 echo를 해 주면 되는것이다.
  IN OUT 개념이 헷갈릴지는 모르겠지만 이부분은 우리가 필요한 값을 출력을 해
  준 다음 mrtg.cfg 의 LegendO(output tag) 와 LegendI(input tag) 에서 적당한
  이름으로 대체를 해 주면 된다는것이다.

  exit 0

 [root@bbuwoo etc]$
위의 scritp 를 이용하면 여러가지를 측정할수가 있다. 물론 script 만 만드는건 상당
히 쉽다. (물론 script 에 대해서 해박한 지식을 가지고 있어야 할것이다.) 그리고 꼭
shell script로 만들 필요는 없다. 필자의 경우에는 shell 스크립트보다 php를 이용하
는 것이 더욱 간단하고 명확하게 만들수 있지만 package 로 배포를 하려다보니 누구나
설치만 하면 사용할수 있게 만들기 위해 shell script를 이용한 것 뿐이다. 아마 perl
을 php만큼만 할줄 알아도 perl로 만들었을 것이다. :-)

다만 내가 말하고자 하는 것은 스크립트를 만드는 것도 중요 하지만 실제로 중요한 것
은 mrtg.cfg 를 설정을 하는 것이다. 필자의 경우에도 script 를 만들어 놓고선 graph
를 제대로 표현을 하지 못해서 애를 많이 먹었었다. 이 부분에 대해서는 mrtg문서들을
꼼꼼히 읽어 보고 하기를 바란다. 필자가 알려주고 싶지만 필자도 꽁수로 이리저리 해
보고 안것이라서 글로서 표현을 하면서 알려주기에는 벅차기 때문이다.

5. 문의 사항이 있으면..?

문의 사항이 있으면 직접 해결 하든지 http://www.mrtg.co.kr를 이용하도록 하길 바란
다. 필자에게 문의를 해도 답변을 해 줄 능력이 없다. 위의 site의 경우 mrtg 에 대한
아주 자세한 자료들과 관리자 또한 해박한 지식을 보유하고 있으니 위의 site 를 이용
하기 바란다. 다만 여기서 배포하는 package를 사용함에 있어 결과값이 제대로 안나온
다든지 또는 package 에 대한 문제점이 발생할 경우 QnA 게시판을 통해 문의를 하기를
바란다.



출처 : http://oops.org/?&t=lecture&sb=mrtg&n=4

?

공부 게시판

공부에 도움되는 글을 올려주세요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 [공지] 공부 게시판 입니다. 처누 2003.08.18 2011130
2619 하드웨어 강남엘리트❤️OlO-8655-OO53❤️친절문의24시 강남하퍼1등실장 #강남엘리트 #강남엘리트위치 #강남엘리트하퍼 #하이퍼블릭엘리트 #강남엘리트예약문의 #선릉엘리트 #선릉역엘리트 #강남사라있네 new 괴랄한재규어89 2026.10.05 0
2618 블로그 청담동셔츠룸 010 2817 0845 일정과 인원에 맞춘 셔츠룸 문의 new 정열적인퀘이사14 2026.10.05 0
2617 카메라 최근 테헤란로 벤처 밸리의 핵심 리더들 사이에서 ‘클래스가 다른 정통 수질과 프라이빗 무드’로 소문 자자한 '선릉 룸싸롱' 기습 방문, 인공미를 거부하는 무결점 뉴페이스들과 심장을 마비시킨 사심 플러팅에 제대로 저격당하고 온 솔직 후기 new 희미한홍학99 2026.10.05 0
2616 u-E(활성화) 본식DVD, 웨딩영상 색감이 중요한 이유새 창 열림 new 힘겨운귤35 2026.10.05 2
2615 공지 대전, 인천, 세종 하수구 막힘 문제 해결 방법 new 정열적인코요테90 2026.10.05 4
2614 취미 <문경맥주> 구입 할 수 있는 곳은 새 창 열림 new 타오르는드래곤61 2026.10.05 1
2613 데이터베이스 강남건전지❤️OlO-8655-OO53❤️친절문의환영 #강남건전지 #강남유니콘 #선릉유니콘 #강남건전지위치 #선릉역건전지#대치동유니콘 #강남바커스 #선릉바커스 #선릉역바커스 #강남룸클럽 #선릉룸클럽 #강남베터리 #강남바데리 new 괴랄한재규어89 2026.10.05 1
2612 사무 소프트웨어 용인두피문신 고민? 만족 후기 보려면 new 날카로운꿩11 2026.10.05 8
2611 논문 카­톡 gusim8003 급전/내구제 (24시문의) 폰테크 소액대출 선불폰 가개통 new 타오르는켄타우로스86 2026.10.05 1
2610 윈도우즈 웨딩누브라, 완벽한 드레스 핏을 위한 선택 new 날카로운감시자22 2026.10.05 4
2609 인터넷 성공적인 중고화물차 선택, 현명한 가이드 new 붉은드래곤50 2026.10.05 2
2608 가상화 인천맛집 순위 new 차가운파편97 2026.10.05 2
2607 응용 프로그래밍 완벽한 웨딩드레스 핏의 비밀, 웨딩누브라 new 힘겨운암석76 2026.10.05 2
2606 카메라 파주누수업체, 신속 해결 전문가의 비결 new 차가운에메랄드79 2026.10.05 1
2605 u-E(통합센터) 올해의 핫플 선정 간석동 마블! 010&&8923&&0291 교활한감시자99 2026.10.05 1
2604 웹서버,WAS 손목터널증후군 치료, 현명한 선택 기준은? 괴상한두루미52 2026.10.05 1
2603 u-E(통합센터) 손목터널증후군, 두팔로정형외과에서 해답을 찾다 눈부신백마법사86 2026.10.05 2
2602 응용 프로그래밍 골든타워 010 2817 0845 골타문의 편하게 알아보는 셔츠룸 속삭이는미노타우르93 2026.10.05 2
2601 u-E(TestBed) 특별한 기념품제작, 판촉물365 광기의태풍18 2026.10.05 1
2600 건강 대전누수 문제, 청년연합누수가 답이다 몽환적인삵34 2026.10.05 2
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 131 Next
/ 131


즐겨찾기 (가족)

JAESOO's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너