집에서 서버를 돌리고 있는 웹서버의 트래픽과 NAT 으로 물린 내부 네트워크의 트래픽 상황을 알아보기 위해 MRTG 를 설치 하였다. 설치 방법은 FreeBSD 의 포트로 설치를 진행한다.

1. snmpd 설치

yongbok# cd /usr/ports/net-mgmt/net-snmp && make install clean

설치가 완료 되면 snmpd.conf 파일을 생성하여 아래와 같이 사용자 환경에 맞게 셋팅을 해주면 된다.

yongbok# vi /usr/local/share/snmp/snmpd.conf

# sec.name | source | community
com2sec local localhost private
# MyROFroup 는 읽기만 가능 하고 MyRWGroup 으로 설정하면 쓰기도 가능해진다.
# 쓰기권한까지 설정할때는 신중하게 생각해서 해야한다.
# group 이것을 안써주면 cfgmaker 로 cfg 파일 생성시 에러를 발생하게 된다. 나름 트러블 슈팅
group MyROGroup v1 local
group MyROGroup v2c local
group MyROGroup usm local
# snmp클라이트에서 모든 값을 접근 할 수 있다.
view    all     included        .1
# context | sec.model | sec.level | match | read | write | notif
access MyROGroup        “”      any       noauth    exact   all     all     none
# snmp 서버의 정보를 입력해준다.
syslocation MyHome
syscontact Yongbok <ruo91@naver.com>

사용자 환경에 맞게 수정을 하고 저장을 하였다면 snmpd.conf 파일에 600 권한을 준다.

yongbok# chmod 600 /usr/local/share/snmp/snmpd.conf

snmpd 를 실행하기 위해서는 /etc/rc.conf 파일에 아래와 같이 추가 후 시작한다.

yongbok# vi /etc/rc.conf
snmpd_enable=”YES”

yongbok# /usr/local/etc/rc.d/snmpd start
Starting snmpd.

2. MRTG 설치

yongbok# cd /usr/ports/net-mgmt/mrtg && make install clean

쭈루룩~ 컴파일이 되고 설치가 완료 되면 아래와 같이 cfgmaker 로 설정 파일을 생성한다.

yongbok# cfgmaker private@localhost > /usr/local/etc/mrtg/ruo91.cfg

/usr/local/etc/mrtg 디렉토리에 ruo91.cfg 라는 설정 파일이 생성 된다.
ruo91.cfg 파일을 사용자 환경에 맞게 수정을 한다.

yongbok# vi /usr/local/etc/mrtg/ruo91.cfg

# Created by
# /usr/local/bin/cfgmaker private@localhost

### Global Config Options
#  for UNIX
WorkDir: /home/www/traffic
Language: korean
RunAsDaemon: yes
EnableIPv6: no
######################################################################
# System: yongbok.net
# Description: FreeBSD yongbok.net 7.2-STABLE FreeBSD 7.2-STABLE
# 0: Thu May  7 15:02:46 KST 2009     root@yongbok.net:/usr/obj/usr/src/sys/Yongbok i386
# Contact: YongBok <ruo91@naver.com>
# Location: Home Server
######################################################################
### Interface 1 >> Descr: ‘stge0’ | Name: ‘stge0’ | Ip: ‘115.137.195.157’ | Eth: ’30-78-30-30-31-38-66-33-63-38-66-39-31-34′ ###
Target[localhost_1]: 1:private@localhost:
SetEnv[localhost_1]: MRTG_INT_IP=”115.137.195.157″ MRTG_INT_DESCR=”stge0″
MaxBytes[localhost_1]: 125000000
Title[localhost_1]: Traffic Analysis for 1 — yongbok.net
PageTop[localhost_1]: <h1>Traffic Analysis for 1 — yongbok.net</h1>
<div id=”sysdetails”>
<table>
<tr>
<td>System:</td>
<td>yongbok.net in Home Server</td>
</tr>
<tr>
<td>Maintainer:</td>
<td>YongBok &lt;ruo91@naver.com&gt;</td>
</tr>
<tr>
<td>Description:</td>
<td>stge0  </td>
</tr>
<tr>
<td>ifType:</td>
<td>ethernetCsmacd (6)</td>
</tr>
<tr>
<td>ifName:</td>
<td>stge0</td>
</tr>
<tr>
<td>Max Speed:</td>
<td>125.0 MBytes/s</td>
</tr>
<tr>
<td>Ip:</td>
<td>115.137.195.157 (ns.yongbok.net)</td>
</tr>
</table>
</div>

WorkDir: /home/www/traffic 는 mrtg 그래프를 보여줄 파일들의 디렉토리를 지정해준다.
Language: korean 은 한국어로 보여준다.
RunAsDaemon: yes 는 Perl 데몬이 주기적으로 5분씩 실행을 한다.

또한 아래 more 버튼을 눌러 보면 옵션이 있는데 CPU, Memory 등의 사용률을 볼수 있다. 그리고 옵션에서 Target[cpu], MaxBytes[cpu] 같이 [] 대괄호 안에 들어가는 문자열은 mrtg 실행시 cpu.html 처럼 html 파일 이름으로 생성이 된다.
[#M_ more.. | less.. | # CPU MEM
### CPU Load Average ###
Target[cpu]: .1.3.6.1.4.1.2021.10.1.5.1&.1.3.6.1.4.1.2021.10.1.5.2:private@localhost
MaxBytes[cpu]: 2000
#Unscaled[cpu]: dwmy
Options[cpu]: integer, gauge,withzeroes, growright, noinfo, nopercent
YLegend[cpu]: CPU Load Average
ShortLegend[cpu]: (%)
LegendI[cpu]: Aver 1/minite
LegendO[cpu]: Aver 5/min
Legend1[cpu]: Aver 1/minite
Legend2[cpu]: Aver 5/min
Title[cpu]: CPU Load
PageTop[cpu]: </p><h1>CPU Load Average</h1>

### Rate of CPU use ###
Target[cpu_use]: .1.3.6.1.4.1.2021.11.50.0&.1.3.6.1.4.1.2021.11.52.0:private@localhost
MaxBytes[cpu_use]: 100
Options[cpu_use]: growright, noinfo, nopercent
YLegend[cpu_use]: CPU usage(%)
ShortLegend[cpu_use]: (%)
LegendI[cpu_use]: User
LegendO[cpu_use]: System
Legend1[cpu_use]: CPU usage(User)(%)
Legend2[cpu_use]: CPU usage(System)(%)
Title[cpu_use]: Rate of CPU use
PageTop[cpu_use]: <h1>Rate of CPU use</h1>

### Memory Free ####
###
Target[mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.4.0:private@localhost
MaxBytes1[mem]: 2070868
MaxBytes2[mem]: 2048248
Unscaled[mem]: dwmy
Options[mem]: gauge, growright, noinfo
YLegend[mem]: Mem Free(Bytes)
ShortLegend[mem]: Bytes
kilo[mem]: 1024
kMG[mem]: k,M,G,T,P
LegendI[mem]: Real
LegendO[mem]: Swap
Legend1[mem]: RAM [MBytes]
Legend2[mem]: Swap Memory [MBytes]
Title[mem]: Memory Free
PageTop[mem]: <h1>Memory Free</h1>_M#]

cfg 파일을 셋팅을 후 mrtg를 실행해본다.

yongbok# vi /etc/rc.conf

snmpd_enable=”YES”
mrtg_enable=”YES”

yongbok# mrtg /usr/local/etc/mrtg/ruo91.cfg

html 파일을 생성하며 그래프에 기록을 한다. 이렇게 만들어진 html 파일을 indexmaker 도구를 사용하여 index.html 으로 보기 쉽게 만들어 본다.

yongbok# indexmaker /usr/local/etc/mrtg/ruo91.cfg \
–output=/home/www/traffic/index.html –title=”Yongbok Traffic”

생성 된 index.html 을 웹상에서 확인해본다.
freebsd mrtg