강좌

HOME > 강좌 >
강좌| 리눅스 및 오픈소스에 관련된 강좌를 보실 수 있습니다.
 
트래픽관리를 위한 MRTG서버구축을 실무연구 1편
조회 : 9,084  


1



트래픽관리를 위한 MRTG서버구축을 실무연구 1



작성자 : 리눅스포털 수퍼유저코리아(www.superuser.co.kr) 박성수



------- 전 체 목 차 ------
1. MRTG
?

2. MRTG의 다양한 용도

2-1. 네트웍모니터링

2-1-1. 일간그래프

2-1-2. 주간그래프

2-1-3. 월간그래프

2-1-4. 년간그래프

2-2. CPU 모니터링예

2-2-1. 일간 CPU사용량

2-2-2. 주간 CPU사용량

2-2-3. 월간그래프

2-2-4. 년간그래프

2-3. DISK모니터링예

2-3-1. 일간 DISK사용량

2-3-2. 주간 DISK사용량

2-3-3. 월간 DISK사용량

2-3-4. 년간 DISK사용량

2-4. MEMORY 모니터링예

2-4-1. 일간 MEMORY 사용량

2-4-2. 주간 MEMORY 사용량

2-4-3. 월간 MEMORY 사용량

2-4-4. 년간 MEMORY사용량

2-5. 스위치의 포트별 사용량 분석

3. MRTG운용을 위해서 필요한 것은?

3-1. 트래픽분석서버

3-2. 분석대상자원

3-3. 필요한 프로그램 및 툴들

3-4. 네트웍이 갖춰진 환경

4. SNMP?

5. MIB이란?

6. 리눅스로 구축하는 MRTG서버

7. MRTG트래픽서버 디렉토리구성도

7-1. MRTG 홈디렉토리

7-2. MRTG 실행파일들 저장위치

7-3. MRTG Configuration 파일들의 저장위치

7-4. MRTG 실행결과 생성되는 HTML파일, LOG파일들의

8. MRTG를 이용한 트래픽사용량 분석

8-1. 서버트래픽분석 개론

8-2. Configuration file 만들기

8-3. cfg파일 분석

8-4. mrtg 초기실행하기

8-5. 결과확인 및 분석하기

8-6. 결과페이지 로딩시 암호인증걸기

8-7.cron 등록하기

9. MRTG를 이용한 다양한자원(CPU, DISK, MEMORY) 사용량 분석

9-1. 다양한 자원분석 사용량분석 개론

9-2. 관련 MIB 확인하기

9-3. Configuration file 만들기

9-4. cfg파일 분석

9-5. mrtg 초기실행과 웹페이지 생성확인

9-6. 웹브라우즈로 결과확인

9-7. 마무리 작업










1. MRTG?

MRTGMuti Router Traffic Grapher의 약어이다.

MRTG는 현재 세계각처에서 트래픽모니터링 및 트래픽관리 및 관리를 위해서 사용되고 있는 가장 범용의 툴이다.

MRTG는 트래픽관리서버(MRTG가 설치되어 운용되고 있는 서버)에서 주기적으로 실행된 결과를 gif png의 그래픽파일을 포함한 HTML파일을 자동으로 생성하여 웹브라우즈를 통해서 네트웍트래픽을 분석/관리할 수 있다.

MRTGCPERL로서 개발되었으며, 속도를 요하는 루틴은 대부분 C, HTML을 생성하는 부분은 대부분 perl로 되어 있다.

MRTG로 분석된 간단한 결과페이지를 보면 아래와 같다.

그림1 MRTG로 분석한 트래픽예

간단히 설명드리자면 위의 그래프는 MRTG에서 표준으로 분석하여 결과로 보여주는 4(,,,)의 결과중 첫 번째 일간 트래픽추이를 모니터링한 것을 보여준 것이다.

이를 통해서 네트웍관리자나 관계자들은 네트웍의 증설 및 관리를 할 수 있게된다.








2. MRTG의 다양한 용도

MRTG가 네트웍트래픽 모니터링이나 분석을 위한 도구로만 사용되는 것은 아니다.

MRTGSNMP프로토콜에서 지원되는 다양한 자원(서버,라우터,스위치등)의 객체(MIB)들의 값을 가져와서 사용량등을 분석할 수도 있다.

, MRTG로 가능한 여러 가지 작업들을 예를 들어보면 다음과 같다.

  • 네트웍트래픽모니터링 및 분석

  • 서버의 트래픽모니터링 및 분석

  • CPU의 모니터링 및 분석

  • MEMORY의 모니터링 및 분석

  • DISK의 사용량 모니터링 및 분석

  • 기타 MIB에서 가져올 수 있는 다양한 자원들의 모니터링 및 분석

물론, MRTG의 가장 주된 목적은 트래픽을 분석하기위해 모니터링하는 것이다.

하지만, MRTGSNMP(Simple Network Monitoring Protocol)라는 네트웍관리 프로토콜을 사용하며, SNMPMIB(Management Information Base)이라는 자원의 객체데이터베이스에 정의된 값들을 가져오거나 셋팅이 가능하기 때문에 MRTG는 이들을 통한 모든 분석 및 다양한 객체의 분석 및 모니터링이 가능하다는 결론이 나온다.

2-1. 네트웍모니터링

MRTG를 통해서 분석할 수 있는 가장 대표적인 것이 아래와 같은 네트웍트래픽모니터링이다.

네트웍관련 회사들은 각회사의 네트웍을 관리하고 분석함으로서 네트웍상황이나 요금발생, 기타 경영의 지표로 활용하게된다.

2-1-1. 일간그래프

5분주기로 MRTG가 실행되어 모니터링한 결과의 1일변동상황을 gifpng등의 그래프가 포함된 HTML파일로 보여주게 된다.

2-1-2. 주간그래프

30분주기의 트래픽결과를 분석하여 일주일 변동상황을 gifpng등의 그래프가 포함된 HTML파일로 보여주게 된다.

2-1-3. 월간그래프

2시간주기의 트래픽결과를 모니터링하여 한달동안의 변동상황을 gifpng등의 그래프가 포함된 HTML파일로 보여주게 된다.

2-1-4. 년간그래프

1일 주기의 결과값을 계산하여 일년동안의 변동상황을 gifpng등의 그래프가 포함된 HTML파일로 보여주게 된다.

2-2. CPU 모니터링예

MRTG를 활용하면 네트웍 트래픽뿐아니라 CPU의 사용량또한 모니터링이 가능하다.

단지 사용하는 MIB객체와 configuration만 바꿔주므로써 가능한데 이에 대한 자세한 설명은 configuration편과 MIB편에서 자세히 다루기로 하고 단지 CPU모니터링에 사용된 MIB객체(여기서는 ssCpuRawUser.0ssCpuRawIdle.0)를 달리하여 실행한 결과라는 것정도만 이해하도록 하자.

2-2-1. 일간 CPU사용량

5분주기로 MRTG가 실행되어 CPU사용량을 모니터링한 결과를 하루동안의 변동상황을 gifpng등의 그래프가 포함된 HTML파일로 보여주게 된다.

2-2-2. 주간 CPU사용량

30분주기의 CPU사용량을 모니터링한 결과를 분석하여 일주일간의 변동상황을 gifpng등의 그래프가 포함된 HTML파일로 보여주게 된다.

2-2-3. 월간그래프

2시간주기의 CPU사용량을 모니터링한 결과를 분석하여 한달간의 변동상황을 gifpng등의 그래프가 포함된 HTML파일로 보여주게 된다.

2-2-4. 년간그래프

1일주기의 CPU사용량을 모니터링한 결과를 분석하여 1년간의 변동상황을 gifpng등의 그래프가 포함된 HTML파일로 보여주게 된다.

2-3. DISK모니터링예

또한 MRTGDISK의 사용량까지도 모니터링이 가능하다. 메모리에 관련된 MIB객체를 이용하면 다음예와 같은 분석결과를 얻을 수 있으며 여기서 사용한 MIB객체는 dskPercent.1dskPercent.2이다.



2-3-1. 일간 DISK사용량

5분주기로 MRTG가 실행되어 DISK의 사용량을 모니터링한 결과의 1일변동상황을 gifpng등의 그래프가 포함된 HTML파일로 보여주게 된다.

2-3-2. 주간 DISK사용량

30분주기의 DISK사용량을 분석하여 일주일 변동상황을 gifpng등의 그래프가 포함된 HTML파일로 보여주게 된다.

2-3-3. 월간 DISK사용량

2시간주기의 DISK사용량을 모니터링하여 한달동안의 변동상황을 gifpng등의 그래프가 포함된 HTML파일로 보여주게 된다.

2-3-4. 년간 DISK사용량

1일 주기의 DISK사용량을 계산하여 일년동안의 변동상황을 gifpng등의 그래프가 포함된 HTML파일로 보여주게 된다.

2-4. MEMORY 모니터링예

모니터링하고자하는 자원의 MEMORY의 사용량을 분석하기위해서 사용되는 MIB의 객체는 1.3.6.1.4.1.2021.4.4.01.3.6.1.4.1.2021.4.6.0 이며, 이에대한 자세한 설명은 MIB편에서 하게된다.

2-4-1. 일간 MEMORY 사용량

5분주기로 MEMORY사용량을 모니터링한 결과의 1일변동상황을 gifpng등의 그래프가 포함된 HTML파일로 보여주게 된다.

2-4-2. 주간 MEMORY 사용량

30분주기의 MEMORY사용량을 분석하여 일주일 변동상황을 gifpng등의 그래프가 포함된 HTML파일로 보여주게 된다.

2-4-3. 월간 MEMORY 사용량

2시간주기의 MEMORY사용량을 모니터링하여 한달동안의 변동상황을 gifpng등의 그래프가 포함된 HTML파일로 보여주게 된다.

2-4-4. 년간 MEMORY사용량

1일 주기의 MEMORY사용량을 계산하여 일년동안의 변동상황을 gifpng등의 그래프가 포함된 HTML파일로 보여주게 된다.

2-5. 스위치의 포트별 사용량 분석

3COM이나 Intel등에서 생산되는 다양한 스위치의 포트들을 분석하는 것이 가능하다.

, 위에서 설명드린 것은 단순히 어떤 MIB객체를 이용하여 그 객체에 해당하는 값을 MRTG에서 가져와 분석한 것을 HTML그래프로 나타낸 것이지만 대부분의 네트웍관련 업체에서는 스위치를 대상으로 트래픽분석을 하고 있다.

, 다시 말하면 어떤 장비(서버, 라우터, 스위치등)의 네트웍사용량을 모니터링하고자할 경우에 그 장비가 연결되어 있는 스위치의 포트를 중심으로 트래픽량을 분석한다는 것이다.

이에대한 자세한 설명또한 실제프로젝트를 예로 들어 자세히 설명되어 있으므로 해당편을 참조바란다.





3. MRTG운용을 위해서 필요한 것은?

MRTG를 구축하여 트래픽분석서버를 구축하기위해서는 어떤 것들이 필요할까?

우선 MRTG 트래픽분석서버를 구축하여 운용하기 위해서 필요한 것을 열거해 보면 다음과 같다.

  1. 트래픽분석서버(MRTG가 설치되어 운영될 서버)

    • UNIX, Solaris, NT, Linux

  2. 분석대상자원(네트웍트래픽의 분석대상자원)

    • Router

    • Switch

    • Server

    • 기타네트웍장비들

  3. 필요한 프로그램 및 툴들

    • MRTG

    • gzip

    • gcc

    • perl

    • zlib

    • libpng

    • gd

    • Apache

    • snmp (ucd-snmp, cmu-snmp)

  4. 네트웍이 갖춰진 환경



3-1. 트래픽분석서버

MRTG가 설치될 서버, 즉 트래픽분석서버로 사용될 서버가 필요할 것이다.

MRTG가 설치될 수 있는 서버는 UNIXSolaris뿐아니라 NTLINUX등 거의 모든 서버에서 설치가 가능하다.

필자가 아래의 모든 운영체제(OS)에서 MRTG를 테스트해 본 것은 아니지만 MRTG 공식사이트인 www.mrtg.org에서는 아래와 같은 운영체제에서 MRTG가 설치되어 운용가능하다고 알리고 있다.

  • Linux 1.2.x, 2.0.x, 2.2.x, 2.4.x (Intel and Alpha and Sparc and PowerPC)

  • Linux MIPS, Linux S/390

  • SunOS 4.1.3

  • Solaris 2.4, 2.5, 2.5.1, 2.6, 7, 8

  • AIX 4.1.4, 4.2.0.0, 4.3.2

  • HPUX 9,10,11

  • WindowsNT 3.51, 4.0, 2k

  • IRIX 5.3, 6.2

  • BSDI BSD/OS 2.1, 4.x, 3.1

  • NetBSD (sparc)

  • FreeBSD 2.1.x, 2.2.x, 3.1, 3.4, 4.x

  • OpenBSD 2.5, 2.6, 2.7

  • Digital Unix 4.0

  • SCO Open Server 5.0

  • Reliant UNIX

  • NeXTStep 3.3

  • OpenStep 4.2

  • And about and other sensible Unix

보시는 바와 같이 거의 모든 운영체제에서 MRTG가 설치되어 운용이가능하다는 것을 알 수가 있다.

3-2. 분석대상자원

분석대상자원이란 MRTG를 통해서 트래픽분석이 가능한 네트웍장비들을 통칭한 말이다.

정확히 말해서 SNMP프로토콜이 탑제된 네트웍장비는 거의 가능하다.

, www.mrtg.org에서는 아래와 같은 장비의 모니터링이 가능하다고 공식적으로 알리고 있다.

MRTG로 네트웍트래픽 분석이 가능한 네트웍자원

  • 3Com NETBuilders, LANplex 6012 and 2500

  • 3Com etherswitches and hubs

  • 3Com Linkswitch 1000 1100 3300

  • 3Com Superstack II switch 3900, 3300 MX

  • Alantec powerhub 7000

  • Annex terminal server

  • Asante Hub

  • Ascend (Lucent) Max 600, [24]00x, Pipeline 50, TNT

  • Alcatel (Assured Access) x1600, OmniSR9, OmniCore 5022

  • AT&T Wave Point, Lan

  • BayNetworks (Wellfleet) 7.80 and up, BayStack 350T, Instant Internet, see Nortel

  • BreezeCom AP,SA

  • Cabletron ESX-820 Etherswitch

  • Centillion Token Ring SpeedSwtich 100 (IBM 8251 Token Ring Switch)

  • About every Cisco Kit there is ...

  • CentreCOM 8116

  • Compatible Systems

  • DECBridge 620, DEC 900EF, 900EE, Gigaswitch

  • ELSA Lancom L 11 (Wireless Router)

  • Ericsson Tirgis Series RAS Servers

  • Fore ASX200 ATM

  • FlowPoint 2200 ATM/DSL Router

  • Formula 8200 series

  • Foundry BigIron 8000 Gigabit

  • Cable Modems from Lancity, Terayon and DOCSIS

  • HP - network interfaces, disks, database Informix

  • HP AdvanceStack/Procurve Switch 2000, AdvanceStack Switch 200

  • HP Procurve Switches , model 4000m, 2424m and 2400m

  • IBM 8260 swtich (with 155MB ATM blades installed), IBM 2210 Routers

  • Intel switches (details)

  • IMV Victron NetPro 3000 UPS

  • Kentrox Pacesetter Pro

  • Lantronix Bridge

  • Lucent/Xedia Access PointT 450, 1000

  • Livingston (Lucent) IRX 3.2.1R, IRX 114, PM2E(R) PM3-2E OR-U

  • Motorola 6560 Regional Node, SB3100 CableModem

  • Morningstar terminal servers/routers

  • MGE (Merlin Gerin) UPSes (details)

  • Network Appliance

  • Netopia R7100C SDSL

  • Netscreen 5 / 10 / 100

  • Nortel Networks, Bay Routers BCN, BLN, ASN, ARN, AN, Passport 1k and Passport 8k3 series L3 switches, BayStack 450 L2 switches.

  • Nortel Networks, Accelar L3 Switches

  • Nokia IP 330/440/650

  • Nbase ethernet switch

  • Novell 3.11, 4.11

  • Rmon probes

  • SGI-Server (Irix 5.3)

  • Any server server running HP-UX, Ultrix, Solaris, SunOS, OSF, NetBSD, FreeBSD, BSDi, Linux, AIX, OpenBSD, Irix or even Windows operating systems (badly), when using NET-SNMP (former UCD-SNMP).

  • Apple Mac (An snmp service is included on the OS CD >= 8.5 )

  • Shiva Accesport

  • Solaris Server

  • Squid Web cache

  • US-Robotics Total Control Modemracks

  • Wellfleet (later Bay Networks): see Nortel routers

  • WinNT, MS Proxy

  • Xylan (today Alcatel) 4024C 24port 10/100 OmniStack Switch, 9k devices, including ATM links.

  • Yamaha rt100i

  • Zyxel Prestige P310, 153X, 642.

3-3. 필요한 프로그램 및 툴들

MRTG가 제대로 작동되기 위해서는 MRTG만 설치되어서는 안되며 필요한 라이버러리와 몇가지 프로그램 및 툴들이 필요하다.

이들을 간단히 설명하면 다음과 같다.

구분

설명

구할 수 있는 곳

MRTG

MRTG 프로그램

www.mrtg.org

perl

perl 인터프리터

www.perl.com

zlib

zlib 라이브러리, 그래픽파일 압축라이버러리

www.info-zip.org/pub/infozip/zlib

libpng

libpng 라이브러리, png파일로 변환시켜주는 라이버러리

www.libpng.org/pub/png

gd

gd 라이브러리

www.boutell.com/gd

Apache

아파치, IIS등의 웹서버

www.apache.org

snmp

snmp프로토콜
(ucd-snmp, net-snmp, cmu-snmp)

net-snmp.sourceforge.net

기타

gzip

(소스압축해제용 압축프로그램)

gcc.gnu.org

gcc

(컴파일러)

이들 프로그램 및 툴들의 자세한 설치방법은 뒤에서 자세히 다루므로 여기서는 MRTG로 트래픽분석서버를 구축하기위해서 필요한 것들이 이런 것이구나 하는 정도로만 알고 넘어가면 된다.

3-4. 네트웍이 갖춰진 환경

MRTG는 네트웍을 통해서 분석값을 가져오므로 당연히 네트웍이 갖추어져있어야하고, 또한 MRTG의 존재이유가 네트웍(트래픽)관리이므로 네트웍이 갖추어지지 않은 환경은 MRTG가 존재할 이유가 없다고 할 수 있다.








4. SNMP?

SNMPsimple network management protocol의 약어입니다 .

SNMP
는 네트웍장비들로 부터 필요한정보를 가져와 장비상태를 모니터링하거나 특수한 경우 장비의 관련설정값을 변경하는 등의 작업을 하여 네트웍장비의 전체상황을 관리할수 있는 프로토콜입니다.

SNMP
Client/Server모델 기반으로 운용이 됩니다.

SNMP
에서 ClientManager라고 하며 이 Manager가 탑재되어 응용프로그램(,MRTG)이 돌아가는 시스템은 네트웍관리시스템이라고 합니다.

또한 ServerAgent라고 하며 관리대상이 되는 장비들에서 돌아가며 필요한 정보들을 보아서 Manager로 전송을하는 역할을 하게됩니다.

특히 SNMPMRTG라는 소프트웨어에서 네트웍장비의 트래픽사용량을 분석하는 데에 많이 사용이 되고 있습니다.

SNMP
RFC-1157에 정의되어 있으며 네트웍장비를 생산하는 대부분의 업체에서는 RFC-1157문서에 알려바를 수용해서 생산함으로써 다른 네트웍장비와의 호환성을 유지하게 되는 것입니다.

SNMP
RFC-1157문서를 보시려면 아래의 URL에서 보실수 있습니다.

ftp://ftp.isi.edu/in-notes/rfc1157.txt









5. MIB이란?

MIBManagement Information Base의 약어이다.

네트웍장비들 즉 서버, 라우터, 허브, 워크스테이션, 스위치등을 분석대상자원이라고 하고 이들 장비들의 특정한 값을 통해서 관리를 하게되는데 이런 특정한 정보나 자원을 객체라고 하며 이런 객체들의 집합체를 MIB이라고 한다.

, MIB이란 MRTG의 구체적인 작업대상이 되는 것이다.

이런 MIB값을 통해서 각 장비의 상태파악이나 모니터링이 가능해 지는 것이다.

응용프로그램(, MRTG)을 통해 네트웍자원을 관리한다라는 의미는 이들 MIB값의 정보를 수집하여 이들 자원의 상태를 파악하거나 MIB값의 변경을 통해 이들자원의 상태를 변경시키거나 특정동작을 수행하게 할 수도 있다라는 의미이다.

MIB값은 다음과 같이 정의되고 있다.

  • 이름 : 대상객체를 구별하기위한 식별자

  • 신택스 : 객체의 종류 예) Integer, String, Octect

  • 부호화 : 객체가 전송되는 BIT패턴

MIB은 각 객체들을 데이터베이스화 하여 정의하고 있으며 트리(tree)구조로 되어있다.

현재 TCP/IP기반에서 사용되고 있는 MIB의 정의문서는 RFC-1156에서 찾아볼 수 있으며 RFC-1156문서에 대한 원문은 아래의 URL에서 볼 수가 있다.

ftp://ftp.isi.edu/in-notes/rfc1156.txt

RFC-1156 문서의 제목은 "Management Information Base for Network Management of TCP/IP-based internets"라는 것으로 현재 TCP/IP기반의 응용프로그램들이 MIB을 사용하기 위한 기본틀을 제공하고 있다.

또한 MIB-2에 대한 문서는 RFC-1213에 정의되어 있으며 모두 9개의 그룹에 대한 정의가 되어있다.

이 책에서 다루게 되는 MIB그룹은 RFC-1213문서에 따른 것으로 모두 9개의 MIB그룹을 대상으로 설명이 될 것이다.

  • System

  • Interfaces

  • Address Translation

  • IP

  • ICMP

  • TCP

  • UDP

  • EGP

MRTG를 통해서 네트웍자원들의 상황을 모니터링하고 관리하기 위해서는 관리대상의 가장 구체적인 대상이 되는 MIB에 대한 정확한 이해가 필요하다.

이들 그룹에 대해서 하나씩 차례대로 살펴보도록 하자.


6. 리눅스로 구축하는 MRTG서버

  • 리눅스 서버설치하기

  • gzip

  • gcc

  • perl

  • zlib

  • libpng

  • gd

  • Apache

  • ucd-snmp

  • cmu-snmp

  • MRTG설치 하기

2


트래픽관리를 위한 MRTG서버구축을 실무연구 리눅스포털 수퍼유저코리아

www.superuser.co.kr



[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=1187


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
박성수
파파
헐렁고수