리눅스

Total 331
Today 0
profile_image
슈퍼아이피
09-07-29 13:01 0개 9회
일반문서
FreeBSD - MRTG 설치 추가

UNIX Linux 서버에 대한 Resource 모니터링<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

(CPU, Memory, Disk)

 

Unix계열(Linux포함)의 장비에 대한 Resource MRTG를 이용하여 모니터링하는 방법에 대한 질문을 많이 해주셨는데, 이에 대한 확실한 답변을 드리지 못했던 것이 사실입니다. 그래서 이번에 <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />이우경님(whamsay)이 알려주신 방법과 제가 알고 있는 방법을 같이 소개하고자 합니다. 많이 활용해 보시기 바랍니다.

 

1.      UCD-SNMP를 설치하여 SUN Solaris 모니터링하기

       UCD-SNMP 설치

                       i.              다운받기 : http://net-snmp.sourceforge.net/ 에서 [Download]로 들어가셔서 최신버전으로 다운받으시기 바랍니다. 여기서는 ucd-snmp-4.2.tar.gz를 다운받아서 설치한다.

                      ii.              gzip –d ucd-snmp-4.2.tar.gz

tar -xvf ucd-snmp-4.2.tar
mv ./ucd-snmp*/ /usr/local/ucd-snmp/
cd /usr/local/ucd-snmp
./configure (
몇 가지 설정을 물어보는데 기본값을 그대로 사용하면 됩니다.)
make
umask 022
make install

       snmpd.conf 파일 및 데몬 실행

                       i.              cp EXAMPLE.conf /usr/local/share/snmp/snmpd.conf

                      ii.              cd /usr/local/share/snmp

                    iii.              vi snmpd.conf

여기서 ‘com2sec’와 관련된 부분은 community와 관련된 부분으로 수정을 하시던지 아니면 ‘#’으로 아래와 같이 주석처리를 하시면 됩니다.

#com2sec local     localhost       COMMUNITY

#com2sec mynetwork NETWORK/24      COMMUNITY

                    iv.              /usr/local/sbin/snmpd    -> 이렇게 snmp 데몬을 실행을 하시면 되는데, 그전에 기존의 snmp데몬은 다음과 같이 찾으신 후에 kill –9로 죽이시면 됩니다.

                      v.              ps -ef | grep snmp

/usr/lib/snmp/snmpdx -y -c /etc/snmp/conf

 

       MIB설명

이제 UCD-SNMP가 제공하는 MIB을 이용하여 SUN Solaris에 대한 모니터링이 가능하다.

참조 MIB파일 : /usr/local/ucd-snmp/mibs/UCD-SNMP-MIB.txt

기본 MIB: .iso.org.dod.internet.private.enterprises.ucdavis (.1.3.6.1.4.1.2021)

 

                       i.              MEMORY관련 MIB : .1.3.6.1.4.1.2021.4.x.x

‘top’ 명령 결과 : Memory:1024M real, 259M free, 409M swap in use, 3595M swap free

OID

MIB

결과값(Kbytes)

Description

memTotalSwap

.1.3.6.1.4.1.2021.4.3.0

4079424

Swap영역의 전체 크기

memAvailSwap

.1.3.6.1.4.1.2021.4.4.0

3680792

사용 가능한 Swap영역

memTotalReal

.1.3.6.1.4.1.2021.4.5.0

1026312

물리적 메모리 크기

memAvailReal

.1.3.6.1.4.1.2021.4.6.0

293704

사용 가능한 물리적 메모리 크기

memTotalFree

.1.3.6.1.4.1.2021.4.11.0

3973968

전체 사용가능한 메모리 크기

l       위의 top과 결과값은 측정한 시간이 차이가 있으므로 정확하게 일치하지는 않는다.

 

ii.                   PROCESSOR관련 MIB : .1.3.6.1.4.1.2021.10.1.3.x

OID

MIB

결과값

Description

laLoad-1

.1.3.6.1.4.1.2021.10.1.3.1

0.49

지난 1분 동안의 평균 load

laLoad-5

.1.3.6.1.4.1.2021.10.1.3.2

0.38

지난 5분 동안의 평균 load

laLoad-15

.1.3.6.1.4.1.2021.10.1.3.3

0.41

지난 15분 동안의 평균 load

l       결과값에 100을 곱하면 백분율이 된다.

 

iii.                  DISK관련 MIB : .1.3.6.1.4.1.2021.9.1.x.x

OID

MIB

결과값(Kbytes)

Description

dskTotal

.1.3.6.1.4.1.2021.9.1.6.1

5043518

분할된 디스크의 전체 크기

dskAvail

.1.3.6.1.4.1.2021. 9.1.7.1

2440233

사용 가능한 영역

dskUsed

.1.3.6.1.4.1.2021. 9.1.8.1

2552850

사용된 영역

l       위의 MIB snmpwalk을 이용해서 확인해 보면, ‘/’로 파티션된 영역에 대해서만 값을 가져옴을 알 수 있다.

 

iv.                  sample cfg파일 – CPU Load

CPU사용률에 대한 결과값이 소수점이므로 이를 백분율로 나타내기 위해서 간단히 perl프로그램을 이용하여 작성하였고, 이 작성된 perl 프로그램을 Target에서 실행하도록 하였다.

[주의]실행 가능하도록 다음과 같이 속성을 변경해야 합니다. ‘chmod 755 cpumonitoring.pl’

 

[perl 프로그램 : cpumonitoring.pl]

mrtg# cat cpumonitoring.pl

------------------------------- cut here --------------------------------

#!/usr/local/bin/perl/perl

 

system "/usr/local/bin/snmpget 211.39.35.131 public .1.3.6.1.4.1.2021.10.1.3.1 | awk '{print \$3}' > temp";

system "/usr/local/bin/snmpget 211.39.35.131 public .1.3.6.1.4.1.2021.10.1.3.2 | awk '{print \$3}' >> temp";

 

open( fileHandle, "<temp" ) || die "Cannot open $fileName.\n";

 

$value1 = <fileHandle> ;           # 1분 평균 load

$value2 = <fileHandle> ;           # 5분 평균 load

chop($value1);                     # 개행문자 버림

chop($value2);                     # 개행문자 버림

 

close( fileHandle );

 

$one_minute  = $value1 * 100 ;     # 백분율로 변경

$five_minute = $value2 * 100 ;

 

print "$one_minute\n$five_minute\n";  # 결과출력

 

------------------------------- cut here --------------------------------

[cfg파일]

 

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

# CPU load config for www3

Target[cpu]:`/usr/local/mrtg/cpumonitoring.pl `

Options[cpu]: growright, gauge, absolute, nopercent

MaxBytes[cpu]: 100

Title[cpu]: CPU 평균사용률

Ylegend[cpu]: Load Avg

ShortLegend[cpu]: %

Legend1[cpu]: 1 min. CPU load average

Legend2[cpu]: 5 min. CPU load average

LegendI[cpu]: &nbsp;1min:

LegendO[cpu]: &nbsp;5min:

PageTop[cpu]:<H1>CPU 평균 사용률</H1>

        <TABLE>

댓글목록

등록된 댓글이 없습니다.