리눅스

Total 331
Today 0
profile_image
슈퍼아이피
09-07-29 10:45 1개 17회
설치문서
FreeBSD - MRTG 설치

집에서 서버를 돌리고 있는 웹서버의 트래픽과 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분씩 실행을 한다.
또한 아래 옵션이 있는데 CPU, Memory 등의 사용률을 볼수 있다. 그리고 옵션에서 Target[cpu], MaxBytes[cpu] 같이 [] 대괄호 안에 들어가는 문자열은 mrtg 실행시 cpu.html 처럼 html 파일 이름으로 생성이 된다.

 

# 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>


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 을 웹상에서 확인해본다.

댓글목록

슈퍼아이피님의 댓글

profile_image
슈퍼아이피 작성일

db.excelnet.co.kr/root /usr/local/www/data/mrtg {167}snmpget -v1 -c public localhost system.sysLocation.0
SNMPv2-MIB::sysLocation.0 = STRING: MyServer
db.excelnet.co.kr/root /usr/local/www/data/mrtg {168}snmpwalk -v1 -c public localhost system
SNMPv2-MIB::sysDescr.0 = STRING: FreeBSD db.excelnet.co.kr 6.2-RELEASE FreeBSD 6.2-RELEASE #0: Fri Jan 12 10:40:27 UTC 2007    root@dessler.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.8
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (60412) 0:10:04.12
SNMPv2-MIB::sysContact.0 = STRING: jinhan2 <master@superip.net>
SNMPv2-MIB::sysName.0 = STRING: db.excelnet.co.kr
SNMPv2-MIB::sysLocation.0 = STRING: MyServer
SNMPv2-MIB::sysServices.0 = INTEGER: 72
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORID.1 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.2 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.3 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.4 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.5 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORID.6 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.7 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.8 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.9 = OID: IF-MIB::ifMIB
SNMPv2-MIB::sysORDescr.1 = STRING: The MIB module for SNMPv2 entities
SNMPv2-MIB::sysORDescr.2 = STRING: The MIB module for managing TCP implementations
SNMPv2-MIB::sysORDescr.3 = STRING: The MIB module for managing IP and ICMP implementations
SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for managing UDP implementations
SNMPv2-MIB::sysORDescr.5 = STRING: View-based Access Control Model for SNMP.
SNMPv2-MIB::sysORDescr.6 = STRING: The SNMP Management Architecture MIB.
SNMPv2-MIB::sysORDescr.7 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.8 = STRING: The management information definitions for the SNMP User-based Security Model.
SNMPv2-MIB::sysORDescr.9 = STRING: The MIB module to describe generic objects for network interface sub-layers
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORUpTime.9 = Timeticks: (1) 0:00:00.01