mrtg ?
Multi Router Traffic Grapher 의 약자로서 snmp 기반의 장비를 모니터링 하는데 사용함. 주 사용 용도는 네트워크 트래픽 사용량 모니터링 이지만, 경우에 따라서는 cpu, 디스크 사용량 등 벤더에서 제공하는 snmp mip 값을 사용 하여 다양한 정보를 수집 가능.
os 는 centos 5.8에서 진행및 아파치가 필요 하기 때문에 아파치가 설치되어 있다는 전재하에 진행합니다.
1. mrtg 다운
mrtg 다운 전에 필요 한 패키지를 설치 하자
# yum install -y net-snmp* , gd, libpng , zlib
# yum install mrtg or http://oss.oetiker.ch/mrtg 에서 소스 다운 후 설치
소스 설치시
# ./configure –prefix=/usr/local/mrtg
# make && make install
2. mrtg 설정
1) 디렉토리 생성
# mkdir -p /home/mrtg/cfg —> yum 으로 했을때는 이 디렉토리만 생성해도됩니다.
# mkdir -p /home/mrtg/www —> 소스로 설치 했을시 해당 디렉토리도 같이 진행합니다. 인덱스 페이지를 저장하기 위해 만든 디렉토리이기 때문에 어느곳이든 상관 없습니다.
본 호구는 vhost 를 사용하기 때문에 호스트 설정은 나중에하고, yum 으로 mrtg 설치했습니다.
2) snmp 설정
# vim /etc/snmp/snmpd.conf
40 # sec.name source community
41 #com2sec notConfigUser default public
42 com2sec hoguinside xxx.xxx.xxx.xxx public —-> IP는 서버의 IP나 default 로 해도 무방
43
44 ####
45 # Second, map the security name into a group name:
46
47 # groupName securityModel securityName
48 group notConfigGroup v1 hoguinside —-위의 source 명과 동일하게
49 group notConfigGroup v2c hoguinside —- 마찬가지
50
51 ####
52 # Third, create a view for us to let the group have rights to:
53
54 # Make at least snmpwalk -v 1 localhost -c public system fast again.
55 # name incl/excl subtree mask(optional)
56 #view systemview included .1.3.6.1.2.1.1
57 #view systemview included .1.3.6.1.2.1.25.1.1
58 view systemview included .1 80 —-subtree 값 변경
기존에 있던 내용은 주석 처리 하거나 삭제 해도 됩니다.
# /etc/init.d/snmpd start
# netstat -nlp | grep snmpd
snmp 는 udp 161 번 사용 한다. iptables 를 사용한다면 등록 해주긔
tcp 0 0 127.0.0.1:199 0.0.0.0:* LISTEN 13578/snmpd
udp 0 0 0.0.0.0:161 0.0.0.0:* 13578/snmpd
# snmpwalk -On -v 2c -c public xxx.xxx.xxx.xxx
snmpget 은 원하는 MIB(OID)의 결과 값을 가져오고,
snmpwalk 는 원하는 mIB(OID)를 포함하는 하위 값을 차례로 가져옵니다.
명령어를 통해 해당 결과 값을 가져오는지 확인합니다.
3. cfg 생성
# cfgmaker –global ‘WorkDir: /var/www/mrtg’ –global ‘Options[_]: bits,growright’ –output /home/mrtg/cfg/hoguinside.cfg public@xxx.xxx.xxx.xxx
cfgmaker 는 설치방법에따라 경로가 다름
workdir : 수집할 자료값이 저장될위치(내 경로는 yum 으로 설치 했기에 /var/www/mrtg 해당위치에 했습니다.)
bits : 기본단위
growright : 새로운데이터가 오른쪽으로 생성
output : cfg파일이 저장될 위치 (아까 위쪽에 디렉토리 만드러씀 ㅇㅇ)
[root@localhost06:03:00:/var/www/mrtg]# ll /home/mrtg/cfg/
합계 12
drwxr-xr-x 2 root root 4096 2월 27 17:39 ./
drwx—— 4 mrtg mrtg 4096 2월 27 14:06 ../
-rw-r–r– 1 root root 1007 2월 27 17:04 hoguinside.cfg
# vim /home/mrtg/cfg/hoguinside.cfg
1 EnableIPv6: no
2 WorkDir: /var/www/mrtg
3 Options[_]: bits,growright
4
5 Target[xxx.xxx.xxx.xxx]: 1:public@xxx.xxx.xxx.xxx:
6 SetEnv[xxx.xxx.xxx.xxx]: MRTG_INT_IP=”xxx.xxx.xxx.xxx” MRTG_INT_DESCR=”eth0″
7 MaxBytes[xxx.xxx.xxx.xxx]: 125000000 —-> 요부분은 0으로 되어 있을껀데 내당 용량으루 변경
8 Title[xxx.xxx.xxx.xxx]: Traffic Analysis for 2 — localhost
9 PageTop[xxx.xxx.xxx.xxx]: <h1>Traffic Analysis for 2 — localhost</h1>
10 <div id=”sysdetails”>
11 <table>
12 <tr>
13 <td>System:</td>
14 <td>localhost in Unknown (edit /etc/snmp/snmpd.conf)</td>
15 </tr>
16 <tr>
17 <td>Maintainer:</td>
18 <td>Root <root@localhost> (configure /etc/snmp/snmp.local.conf)</td>
19 </tr>
20 <tr>
21 <td>Description:</td>
22 <td>eth0 </td>
23 </tr>
24 <tr>
25 <td>ifType:</td>
26 <td>ethernetCsmacd (6)</td>
27 </tr>
28 <tr>
29 <td>ifName:</td>
30 <td>eth0</td>
31 </tr>
32 <tr>
33 <td>Max Speed:</td>
34 <td>0.0 bits/s</td>
35 </tr>
36 <tr>
37 <td>Ip:</td>
38 <td>115.68.87.115 ()</td>
39 </tr>
40 </table>
41 </div>
주석이 엄청 쳐져 있거나 위부분 만 활성화 되어 있거나 둘중 하나임
위 내용과 그 위쪽에 같은 비슷한 내용이 있을텐데, 두개중 첫번재는 loopback 용 rmtg 임, 그래서 그냥 삭제 해도됩니다.
만약, cfg 파일에 해당 내용이 없다면 snmpwalk 를 통해 값을 받아 오는지 확인 하고 mrtg 를 한번 실행 해보고 확인
실행 방법은 아래있습니다.
maxbytes(0으로 둘경우) 및 주석 해제시 앞쪽에 공간이 남아 있다면 아래 indexmake 가 안될 수 있습니다.
4 index 파일 만들기
웹에서 보여 줄 수 있도록 페이지 만들기
# indexmaker –title “hoguinside MRTG page” –output /var/www/mrtg/index.html /home/mrtg/cfg/hoguinside.cfg
[root@localhost06:09:42:/usr/bin]# cd /var/www/mrtg/
[root@localhost06:13:35:/var/www/mrtg]# ll
합계 180
drwxr-xr-x 2 root root 4096 2월 27 18:08 ./
drwxr-xr-x 3 root root 4096 2월 27 14:11 ../
-rw-r–r– 1 root root 350 2월 24 2012 favicon.ico
-rw-r–r– 1 root root 2522 2월 27 17:06 index.html -> 인덱스 페이지 생성확인
-rw-r–r– 1 root root 343 2월 24 2012 mrtg-l.gif
-rw-r–r– 1 root root 538 2월 24 2012 mrtg-l.png
-rw-r–r– 1 root root 1144 2월 24 2012 mrtg-m.gif
-rw-r–r– 1 root root 414 2월 24 2012 mrtg-m.png
-rw-r–r– 1 root root 1779 2월 24 2012 mrtg-r.gif
-rw-r–r– 1 root root 1759 2월 24 2012 mrtg-r.png
-rw-r–r– 1 root root 4696 2월 24 2012 mrtg-ti.gif
-rw-r–r– 1 root root 4293 2월 24 2012 mrtg-ti.png
5 실행 및 마무리
1) 실행
# mrtg /home/mrtg/cfg/hoguinside.cfg
2)vhost 설정
서브 도메인 으로 DNS 에 mrtg 등록
http://mrtg.hoguinside.com —> 서브도메인 생성
# vim /usr/local/apache/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot /var/www/mrtg
ServerName hoguinside.com
ServerAlias mrtg.hoguinside.com
ErrorLog logs/mrtg.hoguinside.com-error_log
CustomLog logs/mrtg.hoguinside.com-access_log common
</VirtualHost>
# /etc/init.d/apachectl restart
웹에서 확인
클릭하면 아래 처럼 확인확인
3) cron 설정
적당한 경로에다가 스크립트 생성
# vi mrtg.sh
4) 스크립트 생성
#!/bin/bash
mrtg /home/mrtg/cfg/hoguinside.cfg
5) 크론등록(5분마다 실행)
# crontab -e
*/5 * * * * su – root -c ‘/tset/mrtg.sh >& /dev/null’
0 개의 댓글