강좌
클라우드/리눅스에 관한 강좌입니다.
네트워크 분류

MRTG를 이용한 다양한 자원

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

icon01.giftitle13.gif

1. 다양한 자원분석 사용량분석 개론<?XML:NAMESPACE PREFIX = O />

MRTG로 분석가능한 자원은 많이 있다.

그중 가장 대표적인 것이 네트웍트래픽분석이다.

앞장에서 설명드린 내용은 이런 트래픽을 웹화면에서 모니터링하는 방법에 대한 것을 다루었다.

이번장에서는 네트웍장비의다양한 자원의 사용량을 분석하는 방법을 CPU사용량을 웹에서 모니터링하는 방법에 대해서 설명할 것이다.

 

먼저, mrtg로 트래픽뿐아니라 cpu, memory, disk등의 다양한 자원에 대한 분석을 하려면 ucd-snmp를 업그레이드해야한다.

사용중인 ucd-snmp의 버전이 4.1대라면 4.2대로 업그레이드하기 바란다.

 

CPU사용량 모니터링을 하는 방법또한 앞장과 많이 유사하다.

단지, cfg파일(Configuration file)이 조금 다를 뿐이다.

따라서 이장과 다음장에 나오는 MEMORY사용량분석에서는 앞장에서 설명한 트래픽분석부분과의 중복되는 부분은 생략하고 주로 cfg파일을 위주로 설명이 될 것이다.

 

우선, ucd-snmp에 대해서 좀 알아보자.

현재 필자가 MRTG서버로 구축하는 서버는 레드햇리눅스이다.

아마도 최신버전의 리눅스라면 ucd-snmp 4.2.X가 깔려 있을 것이다.

여러분의 서버에 설치되어 있는 ucd-snmp가 4.1.X라면 4.2.X로 업그레이드하기를 권한다.

우선 현재 사용중인 snmp의 버전을 확인해 보자.

확인하는 방법은 "snmpd -v"를 하면 다음과 같이 현재 사용중인 snmp의 버전을 확인할 수 있다. image_13_001.gif

확인한 바와 같이 현재 snmp의 버전은 ucd-snmp 4.1.2이다.

ucd-snmp의 최신버전은 4.2.1로서 다운을 받으려면 net-snmp.sourceforge.net에 방문해 보기 바란다.

잠깐만 언급한다면 ucd-snmp는 현재 그 이름이 net-snmp로 불리우고 있다.

최신번전은 2001년 4월달에 발표된 것으로 현재 트래픽분석뿐아니라 다양한 자원분석을 위해 많이 사용되고 있는 프로토콜이다.

4.2.X로 버전업 하는 구체적인 방법에 대해서는 "UCD-SNMP 버전업하기"편에 자세히 설명이 되어있다. 을 참조하기 바란다.

이를 참조하여 버전을 하였다면 다음과 같이 snmp의 버전을 다시한번 확인해 보도록 할 것이다.

image_13_002.gif

 

 

2. 관련 MIB 확인하기

 

우선 트래픽외의 다양한 자원을 분석하기위해서는 대상 MIB정보를 확인해야한다.

ucd-snmp 4.2.1버전의 SNMP를 정상적으로 설치하였다면 이런 MIB값에 대한 정보를 제공하는 파일들이 /usr/local/share/snmp/mibs/디렉토리에 txt파일로 존재한다.

분석코자하는 대상자원의 MIB정보를 가진 txt 파일을 이 디렉토리에서 확인하여 cfg파일내에 LoadMIBs라는 옵션으로 참조하게만 하면된다.

이 디렉토리에 존재하는 파일들중에 CPU라는 자원을 MRTG로 분석하기 위해서는 UCD-SNMP-MIB.txt라는 파일이 필요하다.

따라서 다음절에 나올 cfg파일분석편에 보시면 LoadMIBs로 이 파일을 읽어들이는 것을 확인할 수 있을 것이다.

 

, cpu라는 자원에 대한 MIB정보는 어떤 것들이 있을까?

UCD-SNMP-MIB.txt파일내에 cpu와 관련된 MIB정보를 확인해 보자.

 

다음표는 UCD-SNMP-MIB.txt파일내용중 CPU와 관련된 MIB값들이다.

. CPU관련 MIB값

객체

구문

접근권한

Status

설명

비고

ssCpuUser

Integer32

read-only

Current

사용자 CPU time 퍼센트

::= { systemStats 9 }

ssCpuSystem

Integer32

read-only

Current

시스템 CPU time 퍼센트

::= { systemStats 10 }

ssCpuIdle

Integer32

read-only

Current

CPU idle time 퍼센트

::= { systemStats 11 }

ssCpuRawUser

Counter32

read-only

Current

사용자 CPU 시간

::= { systemStats 50 }

ssCpuRawNice

Counter32

read-only

Current

nice CPU 시간

::= { systemStats 51 }

ssCpuRawSystem

Counter32

read-only

Current

시스템 CPU 시간

::= { systemStats 52 }

ssCpuRawIdle

Counter32

read-only

Current

idle CPU 시간

::= { systemStats 53 }

ssCpuRawWait

Counter32

read-only

Current

iowait CPU 시간

::= { systemStats 54 }

ssCpuRawKernel

Counter32

read-only

Current

커널 CPU 시간

::= { systemStats 55 }

ssCpuRawInterrupt

Counter32

read-only

Current

interruptlevel CPU 시간

::= { systemStats 56 }

위의 표를 보면 대충 어떤 MIB값을 사용해야하는 가를 알 수 있을 것이다.

위의 표 "설명"부분을 참조하여 CPU의 어떤사용률에 대한 분석을 하거픈가를 확인하면 된다.

참고로 이책에서 실습대상으로 하는 MIB값은 위의 표중에서 "ssCpuRawUser"와 ssCpuRawIdle"이다.

, 사용자 프로세스가 사용한 CPU사용시간과 CPU가 한가하게 놀았던 시간(idle time)에 대한 분석이될 것이다.

 

다음표는 UCD-SNMP-MIB.txt파일내용중 MEMORY와 관련된 MIB값들이다.

. MEMORY관련 MIB값

객체

구문

접근권한

Status

설명

비고

memIndex

Integer32

read-only

current

Bogus Index, 항상 0 리턴

::= { memory 1 }

memErrorName

DisplayString

read-only

current

Bogus Name, 항상 'swap'문자리턴

::= { memory 2 }

memTotalSwap

Integer32

read-only

current

전체 swap공간

::= { memory 3 }

memAvailSwap

Integer32

read-only

current

사용가능한 swap 공간

::= { memory 4 }

memTotalReal

Integer32

read-only

current

전체 물리적인(RAM) 공간

::= { memory 5 }

memAvailReal

Integer32

read-only

current

사용가능한 물리적인 공간

::= { memory 6 }

memTotalSwapTXT

Integer32

read-only

current

사용된 가상메모리공간

::= { memory 7 }

memAvailSwapTXT

Integer32

read-only

current

사용중인 가상메모리공간

::= { memory 8 }

memTotalRealTXT

Integer32

read-only

current

사용된 전체 물리적인 메모리공간

::= { memory 9 }

memAvailRealTXT

Integer32

read-only

current

사용중인 실제메모리공간

::= { memory 10 }

memTotalFree

Integer32

read-only

current

전체사용가능한 메모리

::= { memory 11 }

memMinimumSwap

Integer32

read-only

current

비워질 수 있는 swap공간의 최소크기를 리턴하거나 memErrorSwap이 1로 셋팅되어 있을 경우 memSwapErrorMsg에 에러문자리턴

::= { memory 12 }

memShared

Integer32

read-only

current

전체공유메모리 크기

::= { memory 13 }

memBuffer

Integer32

read-only

current

버퍼링된 메모리크기

::= { memory 14 }

memCached

Integer32

read-only

current

캐싱된 메모리크기

::= { memory 15 }

memSwapError

Integer32

read-only

current

Error Flag 리턴. Flag가 1일 경우 여유swap공간이 거의 없음을 의미함.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,037 명
  • 현재 강좌수 :  35,811 개
  • 현재 접속자 :  104 명