주 제 : MRTG 구축


 


작성자 : 김마현. mail : mapoo@ㄴㅔㅇㅣ트.,  web : http://mapoo.kr


최초작성일 : 2012-03-29,  SerialNo : 20120329A51



 


< 목 차 >


>     시작말


>     1. 설치환경


>     2. 설치하기


>     3. 세팅하기


>     4. 다른 장비의 MIB 가져오기


>     5. 모니터링 웹보기



>     맺음말


 


n  시작말 :


MRTG‘Multi Router Traffic Grapher’의 약자로써, SNMP(Simple Network Management Protocol)를 지원하는 장비(서버, 스위치 등)로부터 MIB(Management Information Base)값을 가져와서 C Perl을 이용하여 웹에 그래프를 구현해 주는 유틸리티이다. MRTG를 잘 활용한다면 NMS( Network Management System)를 구축할 수 있다.


 


1.     설치환경


1)     H/W 사양


CPU : VM


M/B : VM


RAM : 512MB


HDD : 10G


NIC : VM – Fast Ethernet


2)     S/W 사양


OS : CentOS 4.7 ServerCD i386


Host Name : CentOS47-VM


GCC : gcc-3.4.6-10


Perl : perl-5.8.5-36.el4_6.3


MRTG : mrtg-2.14.7


Apache : httpd-2.2.2


ZLIB : zlib-1.2.1


LIBPNG : libpng-1.2.18


GD : gd-2.0.33


SNMP : net-snmp-5.1.2


 


2.     설치하기


1)     라이브러리 설치


1>   Zlib 설치 - 데이터 압축 라이브러리








[root@CentOS47-VM ~]# tar zxvf zlib-1.2.1.tar.gz –C /usr/local


[root@CentOS47-VM ~]# /usr/local/zlib-1.2.1/configure –prefix=/usr/local/zlib


[root@CentOS47-VM ~]# /usr/local/zlib-1.2.1/make


[root@CentOS47-VM ~]# /usr/local/zlib-1.2.1/make install



2>   Libpng 설치 - png 포맷 이미지파일 사용을 위한 라이브러리








[root@CentOS47-VM ~]# tar zxvf libpng-1.2.18.tar.gz –C /usr/local


[root@CentOS47-VM ~]# cp /usr/local/libpng/scripts/makefile.linux /usr/local/libpng/makefile


[root@CentOS47-VM ~]# /usr/local/libpng/make install



3>   GD 설치 - 동적이미지 생성 ANSI C라이브러리








[root@CentOS47-VM ~]# tar zxvf gd-2.0.33.tar.gz –C /usr/local


[root@CentOS47-VM ~]# /usr/local/gd-2.0.33/configure –prefix=/usr/local/gd


[root@CentOS47-VM ~]# /usr/local/gd-2.0.33/make


[root@CentOS47-VM ~]# /usr/local/gd-2.0.33/make install



2)     Apache 설치








[root@CentOS47-VM ~]# tar zxvf httpd-2.2.2 –C /usr/local


[root@CentOS47-VM ~]# /usr/local/httpd-2.2.2/configure --prefix=/usr/local/apache2 --enable-so --with-mpm=worker --enable-rewrite


[root@CentOS47-VM ~]# /usr/local/httpd-2.2.2/make


[root@CentOS47-VM ~]# /usr/local/httpd-2.2.2/make install



3)     MRTG 설치








[root@CentOS47-VM ~]# tar zxvf mrtg-2.14.7.tar.gz –C /usr/local


[root@CentOS47-VM ~]# /usr/local/mrtg-2.14.7/configure --prefix=/usr/local/mrtg --with-gd=/usr/local/gd --with-z=/usr/local/zlib --with-png=/usr/local/libpng


[root@CentOS47-VM ~]# /usr/local/httpd-2.2.2/make


[root@CentOS47-VM ~]# /usr/local/httpd-2.2.2/make install



4)     SNMP 설치








[root@CentOS47-VM ~]# rpm -ivh /usr/local/net-snmp-5.1.2-18.el4.rpm


[root@CentOS47-VM ~]# rpm -ivh /usr/local/net-snmp-libs-5.1.2-18.el4.rpm



 


3.     세팅하기


1)     SNMP 세팅


1>   기존 snmp 파일 백업








[root@CentOS47-VM ~]# mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf_old



2>   snmp.conf 파일 아래처럼 작성








[root@CentOS47-VM ~]# cat /etc/snmp/snmpd.conf


com2sec notConfigUser  default       abc-mrtg


 


#group   notConfigGroup v1           notConfigUser


group   notConfigGroup v2c           notConfigUser


 


view    systemview      included        .1


 


access  notConfigGroup ""      any       noauth    exact  systemview none none


 


disk / 100000


disk /home 100000


 


proc afpd


proc proftpd



3>   snmp 데몬 start 및 서비스에 등록








[root@CentOS47-VM ~]# /etc/init.d/snmpd start


[root@CentOS47-VM ~]# chkconfig snmpd on



2)     MRTG 세팅


1>   mrtg 관련 디렉토리 생성








[root@CentOS47-VM ~]# mkdir -p /home/mrtg/conf


[root@CentOS47-VM ~]# mkdir /home/mrtg/www


[root@CentOS47-VM ~]# mkdir /home/mrtg/www/localhost



2>   cfg 파일 생성








[root@CentOS47-VM ~]# /usr/local/mrtg/bin/cfgmaker --global 'WorkDir: /home/mrtg/www/localhost' --global 'Options[_]: bits,growright' --output /home/mrtg/conf/localhost.cfg abc-mrtg@127.0.0.1



* 옵션설명


- WorkDir : index파일과 png(그래프)파일이 위치할 곳


- bits : 비트단위로 표시


- growright : 그래프가 오른쪽에서 왼쪽으로 흐르게 표시


- abc-mrtg@127.0.0.1 : abc-mrtg - 커뮤니티값(snmp.conf값과 일치해야됨) 기본은 public


                      127.0.0.1 - MIB 값을 가져올 호스트의 도메인 또는 IP


* 처음실행시 경고 문구가 나오나 무시해도 된다. 기존의 로그가 없어 비교할 값이 없어서 그렇다.


3>   index 생성하기








[root@CentOS47-VM ~]# /usr/local/mrtg/bin/indexmaker --title "CentOS47-VM" /home/mrtg/conf/localhost.cfg > /home/mrtg/www/localhost/index.html



4>   mrtg 실행하기 - MIB값을 가져온다.








[root@CentOS47-VM ~]# /usr/local/mrtg/bin/mrtg /home/mrtg/conf/localhost.cfg



3)     스케쥴링 등록


1>   cron을 통해서 - 1분에 한번씩 MIB 값을 가져온다








[root@CentOS47-VM ~]# crontab -l


*/1 * * * * /usr/local/mrtg/bin/mrtg /home/mrtg/conf/localhost.cfg



2>   mrtg를 데몬으로 실행하기 - cfg 파일의 global 세팅 부분에 아래처럼 추가








[root@CentOS47-VM ~]# cat /home/mrtg/conf/localhost.cfg


RunAsDaemon: yes


Refresh : 300



* Refesh : 300초에 한번씩 MIB 값을 가져온다. 단점은 300(5) 미만으론 안된다.


* cron이나 mrtg 데몬 둘중 하나를 선택하면되지만, cron을 더 추천한다.


4)     Apache 세팅


1>   httpd.conf 수정 - mrtg index파일 위치하는 곳 설정 추가








[root@CentOS47-VM ~]# cat /usr/local/apache2/conf/httpd.conf


.


.


Alias   /morn-abc  /home/mrtg/www/localhost



2>   apache 데몬 start








[root@CentOS47-VM ~]# /usr/local/apache2/bin/apachectl start



 


4.     다른 장비의 MIB 가져오기


1)     가져오기에 앞서


위 내용은 CentOS47-VM 서버에서 자신의 MIB 값을 가져오는 방식이다.


다른 장비에서 MIB 값을 가져오기 위해선 아래 조건이 맞아야 한다.


1>   해당 장비가 SNMP를 지원


2>   Agent 서버(CentOS47-VM)와 장비간 SNMP 버전 호환


3>   Agent 서버(CentOS47-VM)와 장비간 커뮤니티값 맞추기


4>   방화벽에서 인바운드 포트개방 - udp 161


2)     장비에서 세팅


snmp.conf 파일을 위에서 한것처럼 세팅


3)     mrtg 관련 디렉토리 생성


Agent 서버(CentOS47-VM)에서








[root@CentOS47-VM ~]# mkdir /home/mrtg/www/test-local



4)     cfg 파일 생성


Agent 서버(CentOS47-VM)에서



* WorkDir의 경로와 SNMP를 가져올 장비의 IP또는 도메인 변경


5)     mrtg 실행하기


해당 장비로부터 MIB값을 가져온다.








[root@CentOS47-VM ~]# /usr/local/mrtg/bin/mrtg /home/mrtg/conf/test-local.cfg



6)     Apache 세팅


1>   httpd.conf 수정 - mrtg index파일 위치하는 곳 설정 추가








[root@CentOS47-VM ~]# cat /usr/local/apache2/conf/httpd.conf


.


.


Alias   /morn-abc2  /home/mrtg/www/testlocal



2>   apache 데몬 restart








[root@CentOS47-VM ~]# /usr/local/apache2/bin/apachectl restart



 


5.     모니터링 웹보기


1)     브라우져를 띄우고 주소줄에 아래주소 입력 - 서버의 IP 192.168.0.100라고 가정.


http://192.168.0.100/morn-abc


http://192.168.0.100/morn-abc2


 


n  맺음말 :


대부분의 네트워크, 서버 등의 장비들은 SNMP를 지원한다. SNMP 프로토콜을 이용해 분석해주는 대표적인 모니터링 툴인 MRTG는 많은 시스템 관리자가 모니터링을 위해 사용하는 툴이다. MRTG를 잘 활용하여 장비의 상황을 중앙집중식으로 모니터링할 수 있는 시스템을 갖추도록 하자.

MRTG 구축

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다