준비운동 하기
MRTG는 대표적인 네트워크 모니터링 프로그램이다. 써본 결과 아주 괜찮은 놈이라는 것을 알게 되었다.(순전히 내 생각^^)
설치하기 위해서는, snmp라는 프로토콜(?)… 이 설치되어 있어야 한다. MRTG가 snmp를 이용해서 네트워크 트래픽을 측정하기 때문이다.
ucd-snmp-4.2.6.tar.gz 프로그램의 이름이다. 필자가 몇번이고 소스 설치를 해보려고 삽질을 해보았지만, 결국 실패하고 말았다. 자~아 그래서 RPM설치를 하기로 했다. ^^;
설치하기
다음의 사이트에서 다운 받도록 하자!
ftp://mirror.oops.org/pub/Linux/Redhat/UPDATES/7.3/RPMS/
꼬~옥 위의 사이트에서 다운 받기 바란다. 필자가 들은 바로는 ucd-snmp의 RPM프로그램이 문제가 많다는 것이|다. 그런데 그것을 김정균(?)이라는 분이 패치해서 PRM으로 제작해서 올린 사이트가 바로 위의 사이트이다.
- ucd-snmp-4.2.5-9.i686.rpm
- ucd-snmp-utils-4.2.5-9.i686.rpm
- ucd-snmp-devel-4.2.5-9.i686.rpm
위의 파일들은 받도록 하자!
여기서 잠깐 필자의 설치 환경은 다음과 같다.
OS | 레드햇8.0 |
CPU | 펜4 2.53G |
RAM | 512MB |
#rpm -ivh ucd-snmp-4.2.5 <= 이런 식으로 설치해주자!!
devel → utils → snmp 의 순서로 설치한다.
☞ 만일 원래 ucd-snmp 패키지가 설치된 상태라면 당연히 지워준다!!
지우기전에 snmp 프로세스를 정지시킨다.
#/etc/rc.d/init.d/snmpd stop
그리고 나서
#rpm -qa|grep snmp
결과가 나온다면 깨끗이 지워준다. 설치가 다 되었다면,
#vi /etc/snmp/snmpd.conf <= 이런 파일이 있는지 확인해보자!
이제 이 파일을 설정해주어야 한다!!
------------------/etc/snmp/snmpd.conf-------------------- # sec.name source community #com2sec local localhost COMMUNITY #com2sec mynetwork NETWORK/24 COMMUNITY com2sec local localhost private com2sec mynetwork 220.73.8.191 public <- 도메인 네임을 적어주어도 된다. ##### Second, map the security names into group names: # sec.model sec.name group MyRWGroup v1 local group MyRWGroup v2c local group MyRWGroup usm local group MyROGroup v1 mynetwork group MyROGroup v2c mynetwork group MyROGroup usm mynetwork #### # Third, create a view for us to let the groups have rights to: # incl/excl subtree mask view all included .1 80 ##### Finally, grant the 2 groups access to the 1 view with different # write permissions: # context sec.model sec.level match read write notif access MyROGroup "" any noauth exact all none none access MyRWGroup "" any noauth exact all all none ################################################################################# System contact information # # It is also possible to set the sysContact and sysLocation system # variables through the snmpd.conf file. **PLEASE NOTE** that setting # the value of these objects here makes these objects READ-ONLY # (regardless of any access control settings). Any attempt to set the # value of an object whose value is given here will fail with an error # status of notWritable. syslocation "Seoul Korea" sysservices 76 syscontact "kim woo jong, fat81@hanmail.net" # Example output of snmpwalk: ---------------/etc/snmp/snmpd.conf-----------------------
위의 파일이 설정파일이다. 여기서 주의깊게 볼 부분은 주석처리가 안된 부분이다. 각자 자신의 네트워크에 맞게 설정해주기 바란다. 만일 정확히 않으면 잠시후에 해볼 테스트에서 우리가 원하는 결과를 얻지 못할 것이다.
#/etc/rc.d/init.d/snmpd start <---프로세스를 띄워 주자! #ps -ax|grep snmpd <-- 제대로 띄워졌는지 확인하자!
테스트를 해보자!
#snmptest localhost private Variable: sysLocation.0 Variable: sysServices.0 Variable: sysContact.0 Variable: 그냥 엔터를 쳐준다. Received Get Response from 127.0.0.1 requestid 0x6FED441D errstat 0x0 errindex 0x0 system.sysLocation.0 = "Seoul Korea" system.sysServices.0 = 76 system.sysContact.0 = "kim woo jong, fat81@hanmail.net"
위와 비슷하게 결과가 나온다면, 우선 snmp가 제대로 설치되었다고 봐도 될 것이다.
이제는 MRTG를 설치해 보도록 하자!
- gcc (이거 깔리지 않은 곳은 없겠지?)
- perl (이거 깔리지 않은 곳은 없겠지?)
- gd (www.boutell.com)
- libpng (www.libpng.org)
- zlib (www.info-zip.org/pub/infozip/zlib/)
zlib
우선 zlib을 설치하도록 하자!
필자는 zlib-1.1.4.tar.gz을 받았다. 압축을 풀어주고 Makefile을 만들어 준다.
#tar xzvf zlib-1.1.4.tar.gz #cd zlib-1.1.4 #./configure #make test #make install
libpng
#tar xzvf libpng-1.2.5.tar.gz #cd libping-1.2.5/scripts/ #cp makefile.linux ../makefile #cd .. #make test #make install
gd
#tar xzvf gd-2.0.11.tar.gz #cd gd-2.0.11 #./configure #make #make install
위의 프로그램들이 설치되어 있는지 체크해보고, 만일 설치되어 있지 않다면 위와 같이 설치하도록 하자! 이 것 역시 마찬가지 였다.
mrtg
필자는 mrtg-2.9.27.tar.gz을 받았다.
이번에도 마찬가지로 압축을 풀어주고 아래와 같이 설치하자~
#tar xzvf mrtg-2.9.27.tar.gz #cd mrtg-2.9.27 #./configure --with-gd=/usr/local/gd --with-z=/usr/local/zlib --with-png=/usr/local/libpng #make #make install #/usr/local/mrtg-2/bin/cfgmaker --global 'Workdir:/usr/local/program/apache/htdocs/mrtg' --global 'language:korean' public@220.73.8.191 > /usr/local/program/apache/htdocs/mrtg/mrtg.cfg
위의 과정은 아주 중요하다. 특히 Workdir 과 public@220.73.8.191 이라는 부분을 유심히 살펴보기 바란다. 또한 여러분의 설정도 이에 맞게 해주기 바란다. 도메인을 써주어도 무방하다.
에러 없이 정해준 디렉토리에 mrtg.cfg 라는 파일이 제대로 생성되었는지도 확인하자!!
#mrtg /usr/local/program/apache/htdocs/mrtg/mrtg.cfg (/home/htdocs에 localhost_로 시작하는 html파일이 mrtg결과물로 생긴다.)
만일 html파일이 생기지 않는다면 다음과 같은 방법을 써보도록 하자!
#indexmaker /webhosting/mrtg/index.html /mrtg.cfg
그리고 정해둔 웹서버에 접속하여 보도록 하자! 어떤가 그래프들과 그에 맞는 시간과 IP그리고 그래프가 보이지 않는가?
이제 이것을 cron 데몬으로 올려보자!
#crontab -e */5 * * * * /usr/local/mrtg-2/bin/mrtg /usr/local/program/apache/htdocs/mrtg/mrtg.cfg
위와 같이 적어주고, 저장한다. 5분마다 갱긴하면서 업데이트 되도록 했다.
#crontab -l
위의 적어준대로 나오는지 확인하자.