인터넷을 검색한 결과 대부분 소스 컴파일 방식이라 자료 찾기가 어려웠다.
하지만 apt-get으로 설치해야 해서 여기 저기 찾아서 해보았다.

apt-get install mrtg rrdtool librrds-perl
하라고 되어있다.
이미 mrtg는 설치했으니, rrdtools과 librrds-perl을 설치한다.
apt-get install rrdtool librrds-perl

그리고 이미 snmp는 라우터의 것을 사용하니, 이것도 패스..
섶이 위치는 다음과 같다.
소스 컴파일시에서는 이런것을 설정해야하지만, apt을 이용하면 이런 귀찮음이 없어진다.
하지만 단점은 어디에 설치되었는지 찾기 어렵다는 것이다.
/usr/lib/perl
/usr/bin/rrdtool

mrtg.cfg 파일을 변경해야 한다.
 vi /etc/mrtg.cfg

### Global Defaults
Logformat: rrdtool
이것만 추가하면 된다.
소스 컴파일시에는 PathAdd, LibAdd를 추가해야하지만, apt-get으로 설치했을 경우는 상관없는듯하다.

html 위치는 /var/www/mrtg 로...

그후 MRTS을 다운 받아야 한다.
Logformat을 rrdtool로 변경하면 더이상 MRTG가 그래프를 그리지 못한다. 그래서 RRDTool을 이용해야 한다.
MRTS(MRTG RRDtool Total Statistics) : php 기반의 프로그램이다.
다운로드 사이트: http://download.tsdn.dk/software/mrts/
cd /var/www/mrtg
wget http://download.tsdn.dk/software/mrts/mrts-v0.1.1.php.gz
gunzip mrts-v0.1.1.php.gz
ln -s mrts-v0.1.1.php mrts.php

이후에 $dir 위치를 변경한다.
이곳은 MRTG+RRDTool 그래프가 그려질 디렉토리이다.
 vi /var/www/mrtg/mrts.php
 
/* The directory where the rrd files are located */
$dir = '/var/www/mrtg';
17번째 라인에서 mrtg 디렉토리로 변경한다.

참고로 26번째 라인에 RRDTool 바이너리 파일 지정이 있는데,
/* RRDtool path - where are the the executable located */
$rrdcommand = '/usr/bin/rrdtool';
이미 설정되어 있다.
소스 컴파일에서는 다 해줘야하지만, apt-get에서는 필요가 없다. 이것 좋은 점..

아파치를 재시작..
 /etc/init.d/apache2 restart

이제 웹페이지 확인하면 된다.
처음엔 타이틀만 보이지만 5분뒤에 모든 그래픽이 보인다.
http://localhost/mrtg/mrts.php

윈도우에서 하려고 하다가 못했는데,
리눅스에서 하니 기분은 좋다..^^


참고 자료:

Home of MRTS - MRTG RRDtool Total Statistics.

Download it or see what it does

How to use it

For a more complete installation guide see this tutorial by Bjoern Weiland

To use MRTS you need to install and set up MRTG and RRDtool.

If you are a Debian GNU/Linux user just do a
apt-get install mrtg rrdtool librrds-perl
if you use another OS, you can probably figure it out youself (or you could change to Debian).

It can also be a good idea to have some standard snmp tools installed (in Debian the package is "snmp"), and if you want to log network traffic on a machine, then install a snmp server (Debian: "snmpd").

Set up the snmp server to allow read access from the machine that is running MRTG (in our example the same machine that we are logging therefore we allow access to 127.0.0.1). If you are using Debian and have installed the snmpd package, you should change a line or two in "/etc/snmp/snmpd.conf". From:

com2sec paranoid   default         public
#com2sec readonly default public
#com2sec readwrite default private to:
#com2sec paranoid default public
com2sec readonly 127.0.0.1 public
#com2sec readwrite default private \and then restart the snmp server: /etc/init.d/snmpd restart

Now you have to find out what device you want to log. You can find this out with this command:

$ snmpwalk 127.0.0.1 public interfaces.ifTable.ifEntry.ifDescr
interfaces.ifTable.ifEntry.ifDescr.1 = lo
interfaces.ifTable.ifEntry.ifDescr.2 = eth0

in this example, we want to log traffic on the eth0, so the number we must use is 2.
Set up the mrtg config file (Debian: "/etc/mrtg.cfg") with something like this:
# Global configuration
WorkDir: /var/log/mrtg
WriteExpires: Yes
Logformat: rrdtool

#For every machine
Target[name-of-machine]: 2:public@127.0.0.1
MaxBytes[name-of-machine]: 12500000
Title[name-of-machine]:
PageTop[name-of-machine]:

In the "Target" line you see the number 2 we found before, and in "MaxBytes" we have set how many bytes the device maximum can transfer (100Mbit * 1000000bit/Mbit / 8byte/bit = 12500000byte).

Now all you have to do is put mrts.php in the web scope and browse into it. (maybe you have to change something in the top of mrts.php)

You can't run the script in "safe mode php", if you server does this as standard, you have to put something like this in your httpd.conf:

<Directory "/path/to/mrts">
php_admin_value safe_mode 0
</Directory>
Posted by 노을지기
인터페이스 부분에 :::::2 (5개임)에 추가하면 된다.

ex) target[192.168.1.1_1]: 1:MRTG@192.168.1.1:::::2
.....

감사합니다.

출처: http://blog.naver.com/seastar97?Redirect=Log&logNo=60113193685

Posted by 노을지기
리눅스의 명령어를 잘 익숙하지 않아서 이런 실수를 하였다.
메시지
mrtg error duplicate definition for target

아래 출처에서 말하듯 2개의 target 설정이 잘못되었다.

이것은 아래 명령어 때문에 발생하였다.
#cfgmaker public@192.168.0.1 >> /etc/mrtg.cfg

이전에 하나 추가했는데, 다시 명령어를 실행을 >> 로 추가하였기 때문이다.

현재 아는 방법은 다른 디바이스의 cfg을 각각 만들어
indexmaker로 합쳐주면 되는듯하다.
(나중에 확인 후 올릴 예정)

출처: http://www.mail-archive.com/mrtg@lists.oetiker.ch/msg29013.html
Flo,
You are using duplicate entries for 2 targets that is Target[10.17.5.201_1]:
this same name (10.17.5.201_1) occurs twice in your cfg file so just replace
the name (10.17.5.201_1) with (10.17.5.201_2) or any other suitable name....
you can not define two differnt target with the same name.. so replace any 1 target name....
and your problem will be solved.
hope it will help you out

Regards
S. Waqqas
[EMAIL PROTECTED] wrote:
Hi I have a problem with my mrtg.
I use mrtg and rrdtool to get informations from layer 3 switches (Traffic
and Broadcasts)
I use mrtg version 2.11.1 and Perl Version 5.8.8
mrtg works a few days, and then I have these error in the Log:
>First definition is on line 25
>contains a duplicate definition for target[10.17.5.201_1].
>2006-11-24 10:12:11 -- ERROR: Line 3101 (Target[10.17.5.201_1]:
>1:[EMAIL PROTECTED]:) in CFG file (D:/MONITORING/Config/mrtgnew.cfg)
If I delete all mrtg data and run the config script, mrtg works well, but
after a few days I have these problem.
If you need more informations , tell me.
Sorry for my poor english.
flo

Posted by 노을지기
MRTG란 Multi Router Traffic Grapher 한다. (왜? 정의하니깐..ㅡㅡ;;)

그래서 그냥 설치하기로..^^
문제는 mrtg는 기본이 root로 설정하고자 해서...
이번만 sudo를 사용하지 않고, 그냥 root 계정으로 설치한다.

 su -i
라고 하면 현재 계정의 비밀번호를 물어본다.
입력하면 자주 보았던 # <- root 계정 접속.(비추천..^^)

내 설정은 현 리눅스가 아닌, 라우터의 정보를 받을 예정임.
귀차니즘으로 인하여 둘 다 설치.. 하지만 snmpd는 설정하지 않을 예정..
 apt-get install mrtg snmpd
창이 나오면서 root만 사용할 것이냐고 물어봄.
yes

기본 웹 디렉토리를 /var/www/mrtg
설정 파일은 /etc/mrtg.cfg
 mkdir /var/www/mrtg

설정파일에 추가
 vi /etc/mrtg.cfg

# Global Settings
RunAsDaemon: yes
EnableIPv6: no
WorkDir: /var/www/mrtg
Options[_]: bits,growright
WriteExpires: Yes


cron 파일 점검
 cat /etc/cron.d/mrtg
0-55/5 * * * * root if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ]; then env LANG=C /usr/bin/mrtg /etc/mrtg.cfg >> /var/log/mrtg/mrtg.log 2>&1; fi

cfg 파일 생성
 cfgmaker MRTG@192.168.1.1 > /etc/mrtg.cfg
이곳이 중요하다.
이미 ns-5gt에 snmp 설정을 하였다.
MRTG 이름으로 하였고, 사설 아이피인 기본 아이피로 사용중이다.
그리고 이 장비에서 서버 아이피로 snmp로 전송되게 설정이 끝난 상태이다.

아무런 메시지가 안 나오면 이상이 없는 것이다.
snmp 등 에러메시지가 나오면 점검해야한다.

HTML 파일을 생성한다.
indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html
역시 아무런 메시지가 없으면 끝..

그후 웹페이지로 확인한다.
http://localhsot/mrtg

corn에 등록
 vi /var//var/spool/cron/crontabs/root

*/5 * * * * /bin/run-parts /etc/cron.mrtg 1> /dev/null
5 * * * * /bin/run-parts /etc/cron.mrtg 1> /dev/null
5분 마다 실행하는 것이다.
이것은 mrtg가 root만 접속하기 때문에 이곳에 설정..
[While 님의 도음으로 수정합니다.]

나중에 cpu 및 ram도 테스트해야겠음..
여기까지만..


출처: http://www.debianhelp.co.uk/mrtg.htm
What is MRTG?

The Multi Router Traffic Grapher (MRTG) is a tool to monitor the traffic load on network links. MRTG generates HTML pages containing PNG images which provide a LIVE visual representation of this traffic.

Download MRTG

http://people.ee.ethz.ch/~oetiker/webtools/mrtg/download.en.html

MRTG Documentation

http://people.ee.ethz.ch/~oetiker/webtools/mrtg/doc/index.en.html

http://people.ee.ethz.ch/~oetiker/webtools/mrtg/3party.en.html

First you need to install apache2 webserver for this click here

Now we need to install mrtg and snmp

Installing MRTG in Debian

#apt-get install mrtg snmpd

The installation will create an mrtg subdirectory where the Apache Web pages reside. On your Debian system the path of this subdirectory is:

/var/www/mrtg

Now you need to edit the mrtg configuration file to edit the some of the settings

File is located at /etc/mrtg.cfg you need to change the global settings as follows

# Global Settings

RunAsDaemon: yes
EnableIPv6: no
WorkDir: /var/www/mrtg
Options[_]: bits,growright
WriteExpires: Yes

Title[^]: Traffic Analysis for

You will find a crontab running every 5 minutes as user root

# cat /etc/cron.d/mrtg
0-55/5 * * * * root if [ -x /usr/bin/mrtg ] && [ -r /etc/mrtg.cfg ]; then env LANG=C /usr/bin/mrtg /etc/mrtg.cfg >> /var/log/mrtg/mrtg.log 2>&1; fi

Now we need to assign the snmp community name in snmp configration file /etc/snmp/snmpd.conf

# sec.name source community
# com2sec paranoid default public
com2sec readonly default public
#com2sec readwrite default private

Now you need to restart the snmp service

#/etc/init.d/snmpd restrat

The configuration file creating using

#cfgmaker public@localhost > /etc/mrtg.cfg

Creating a configuration file for a device using

#cfgmaker public@192.168.0.1 >> /etc/mrtg.cfg

With the configuration file created correctly there's only one other thing you have to do and that's to use the indexmaker utility to create the summary home page. Since you have to re-run this command every time you make certain changes to the /etc/mrtg.cfg configuration file,

Creating index file for the webserver using

#indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html

Now you need to reboot your system wait for five minutes or so and then take a look at your summary home page. If your Debian system's IP address is 172.16.0.20 then you'd type in the following in the address bar of a browser running on a system on the same network:

http://172.16.0.20/mrtg/

Your summary home page should come up with a graph for each target entry in the configuration file. If a graph looks like there's no data on it, click on it and check the statistics to see if any traffic is being seen. Small amounts of traffic won't show up on the graphs because we used the Unscaled statement

Some of examples how to monitor cpu and memory usage

CPU Usage

/etc/mrtg/cpu.cfg

WorkDir: /var/www/localhost/htdocs/mrtg
LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt
Target[localhost.cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@127.0.0.1+ ssCpuRawSystem.0&ssCpuRawSystem.0:public@127.0.0.1+
ssCpuRawNice.0&ssCpuRawNice.0:public@127.0.0.1
RouterUptime[localhost.cpu]: public@127.0.0.1
MaxBytes[localhost.cpu]: 100
Title[localhost.cpu]: CPU Load
PageTop[localhost.cpu]: <H1>Active CPU Load %</H1>
Unscaled[localhost.cpu]: ymwd
ShortLegend[localhost.cpu]: %
YLegend[localhost.cpu]: CPU Utilization
Legend1[localhost.cpu]: Active CPU in % (Load)
Legend2[localhost.cpu]:
Legend3[localhost.cpu]:
Legend4[localhost.cpu]:
LegendI[localhost.cpu]: Active
LegendO[localhost.cpu]:
Options[localhost.cpu]: growright,nopercent

Memory Usage

/etc/mrtg/mem.cfg

LoadMIBs: /usr/share/snmp/mibs/HOST-RESOURCES-MIB.txt
Target[localhost.mem]: .1.3.6.1.4.1.2021.4.6.0&.1.3.6.1.4.1.2021.4.6.0:public@localhost
PageTop[localhost.mem]: <H1>Free Memory</H1>
WorkDir: /var/www/localhost/htdocs/mrtg
Options[localhost.mem]: nopercent,growright,gauge,noinfo
Title[localhost.mem]: Free Memory
MaxBytes[localhost.mem]: 1000000
kMG[localhost.mem]: k,M,G,T,P,X
YLegend[localhost.mem]: bytes
ShortLegend[localhost.mem]: bytes
LegendI[localhost.mem]: Free Memory:
LegendO[localhost.mem]:
Legend1[localhost.mem]: Free memory, not including swap, in bytes

Creating jobs for the above two examples

CPU

/etc/cron.mrtg/cpu

#!/bin/sh
/usr/bin/mrtg /etc/mrtg/cpu.cfg

Memory

/etc/cron.mrtg/mem

#!/bin/sh
/usr/bin/mrtg /etc/mrtg/mem.cfg

Run each script 3 times (disregard the warnings)

/etc/cron.mrtg/cpu
/etc/cron.mrtg/mem

Make the Index Files

#/usr/bin/indexmaker --output=/var/www/mrtg/index.html \
--title="Memory and CPU Usage :)" \
--sort=name \
--enumerate \
/etc/mrtg/cpu.cfg \
/etc/mrtg/mem.cfg

Make the mrtg.cfg file

#cfgmaker --global "WorkDir: /var/www/mrtg/" \
--global "Options[_]: growright,bits" \
--ifref=ip \
public@localhost > /etc/mrtg/mrtg.conf

Cronjob setup

/bin/cat >> /var/spool/cron/crontabs/root
*/5 * * * * /bin/run-parts /etc/cron.mrtg 1> /dev/null


Posted by 노을지기
ssh를 설치하면 config 파일을 찾을 수 있다.
/etc/ssh/sshd_config

5번 라인에서 port 22 부분을 원하는 포트로 변경한다.
참고로 다른 프로그램과 중복된 포트를 사용하지 않도록 확인한다.
cat /etc/services

그 후에 SSH 데몬을 다시 시작한다.
/etc/init.d/ssh restart
Posted by 노을지기