RadarURL

조회 수 1550 추천 수 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 950260
194 유닉스/리눅스 [Rocky Linux 9] /home 용량 줄이고 /root 용량 늘리기 YooN 2026.04.03 49
193 유닉스/리눅스 [Rocky Linux] LVM 환경에서 /root 파티션 공간 부족 해결 YooN 2026.04.03 36
192 유닉스/리눅스 [Linux/Rocky] SSH Root 로그인하는 방법 (root 접속 허용) YooN 2026.04.01 38
191 유닉스/리눅스 리눅스 서버 설치 중 에러 "Failed to find a suitable stage1 device" YooN 2025.10.03 892
190 유닉스/리눅스 Linux 11 . Linux 설치 시 lvm 수동설정 YooN 2025.10.03 798
189 유닉스/리눅스 [Rocky Linux] 누구나 쉽게 따라하는 Rocky Linux 9.0 OS 다운로드 및 설치 방법~!! YooN 2025.10.03 764
188 유닉스/리눅스 Linux/Rocky Linux Rocky Linux : Composer 설치 YooN 2025.09.29 1032
187 유닉스/리눅스 [Rocky Linux] 록키 리눅스 최신 업데이트 적용 방법 YooN 2025.09.29 948
186 유닉스/리눅스 rocky linux 커널 업데이트 YooN 2025.09.29 802
185 유닉스/리눅스 Clonezilla(클론질라) 백업파일 하드디스크로 복구 방법 YooN 2025.09.28 886
184 유닉스/리눅스 클론질라 사용 방법 - OS 이미지 백업 CloneZilla YooN 2025.09.28 912
183 유닉스/리눅스 [Linux / Rocky] FTP 접속 관련 설정 실습 예제 YooN 2025.09.23 947
182 유닉스/리눅스 Could not reliably determine the server's fully qualified domain name YooN 2025.09.23 1005
181 유닉스/리눅스 [아파치] 아파치 웹서버에 .htaccess 파일 설정하는 방법 YooN 2025.09.23 905
180 유닉스/리눅스 [Linux] Apache web server의 rewrite module 사용하기 [출처] [Linux] Apache web server의 rewrite module 사용하기|작성자 g00dmoney YooN 2025.09.23 1236
179 유닉스/리눅스 록키 리눅스 9.1에서 apache, mysql, PHP 설치 YooN 2025.09.23 890
178 유닉스/리눅스 [권한문제] 라이믹스 Fatal error: Uncaught Rhymix\Framework\Exception: Cannot write template cache file YooN 2025.09.23 842
177 유닉스/리눅스 라이믹스 php 에러 표시 YooN 2025.09.23 626
176 유닉스/리눅스 Rocky Linux - 라이믹스(Rhymix) 설치하기 YooN 2025.09.23 763
175 유닉스/리눅스 라이믹스(Rhymix) 매뉴얼 YooN 2025.09.23 1025
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10


즐겨찾기 (가족)

JAESOO's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

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

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

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

JServer.kr

제이서버 메타블로그

재수 티스토리


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

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너