Strona 1 z 2

[+] plik konfiguracyjny mrtg - jak?

: 24 września 2008, 13:41
autor: kuzyn
Witam.

Chciałbym aby mrtg monitorowało mi ilość zajętej przestrzeni na dysku.

Napisałem taki oto miniskrypcik:

Kod: Zaznacz cały

#!/bin/sh
WYNIK=`df | tail | grep /dev/hda1 | awk '{ print $4 }'`
echo $WYNIK
Moje pytanie brzmi - jak powinien wyglądać plik cfg?

[Dodano: 2008-09-25, 00:06]
Zrobiłem - dla przyszłych fajterów.

Kod: Zaznacz cały

WorkDir: /var/www/mrtg
Target[hda9]: `df|grep /dev/hda9|awk '{print $3 "\n" $4}'`
MaxBytes[hda9]: 27505776
Options[hda9]: gauge
Unscaled[hda9]: ymdw
LegendI[hda9]: Used:
LegendO[hda9]: Free:
Title[hda9]: Dysk hda9 -- /home
kMG[hda9]: k,M,G,T
kilo[hda9]: 1024
ShortLegend[hda9]: B
YLegend[hda9]: bajty
PageTop[hda9]:<H1>Zajetosc dysku hda9 -- /home</H1>
Pozdrawiam.

: 17 marca 2010, 11:41
autor: Luc3k
A udało Ci się może zrobić ruch dla poszczególnych hostów w sieci?

: 17 marca 2010, 14:16
autor: filip.cy
Luc3k pisze:A udało Ci się może zrobić ruch dla poszczególnych hostów w sieci?
Spróbuj tak:

mrtg.cfg

Kod: Zaznacz cały

#10.0.1.253

Target[10.0.1.253]: `/sciezka/10.0.1.253`
Title[10.0.1.253]: Ruch dla 10.0.1.253
MaxBytes[10.0.1.253]: 1250000
PageTop[10.0.1.253]: <h1>10.0.1.253</h1>

/sbin/iptables -L -vnx -t mangle |/bin/grep 0x161 |/usr/bin/awk '{print $2}'
/sbin/iptables -L -vnx -t mangle |/bin/grep 0x4e5 |/usr/bin/awk '{print $2}'
gdzie:

Kod: Zaznacz cały

0x161 
uzyskujemy przez:

Kod: Zaznacz cały

eval /usr/bin/printf %x 353 (100+ip)
eval /usr/bin/printf %x 1253 (1000+ip)
Wcześniej musisz oznaczyć sobie pakiety dla hostów.

: 17 marca 2010, 23:11
autor: db
filip.cy pisze:Spróbuj tak:
Wcześniej musisz oznaczyć sobie pakiety dla hostów.


Po co?

Kod: Zaznacz cały

iptables -A FORWARD -s 192.168.0.123; iptables -L FORWARD -n -xvZ

: 18 marca 2010, 09:09
autor: filip.cy
db pisze:Po co?

Kod: Zaznacz cały

iptables -A FORWARD -s 192.168.0.123; iptables -L FORWARD -n -xvZ
Można i tak

Kod: Zaznacz cały

/sbin/iptables -t mangle -A FORWARD -d 10.0.1.1 -j MARK --set-mark 101
/sbin/iptables -t mangle -A FORWARD -s 10.0.1.1 -j MARK --set-mark 1001

: 18 marca 2010, 10:49
autor: db
Nie, takie rozwiązanie, do samego zbierania statystyk, jest bez sensu. Markowanie pakietów ma swoją określoną rolę i zastosowanie. Nie ma sensu markować, jeżeli takie rozwiązanie nie będzie nigdzie dalej wykorzystywane.

: 18 marca 2010, 11:18
autor: filip.cy
db pisze:Nie, takie rozwiązanie, do samego zbierania statystyk, jest bez sensu. Markowanie pakietów ma swoją określoną rolę i zastosowanie. Nie ma sensu markować, jeżeli takie rozwiązanie nie będzie nigdzie dalej wykorzystywane.

Pewnie masz racje :)

zacytuje klasyka "Ja tylko probowalem niesc pomoc"

: 18 marca 2010, 12:20
autor: Luc3k
Zaimplementowałem poniższe rozwiązanie. Mam niestety problem ze skryptem, a właściwie to z mrtg. Skrypt w swym zamierzeniu zlicza aktualny transfer danego hosta.
Oto skrypt:

Kod: Zaznacz cały

#!/bin/bash
download=`iptables -L mrtg_traffic -v -x -n | grep " $1 " | head -1 | awk '{print $2}'`
upload=`iptables -L mrtg_traffic -v -x -n | grep " $1 " | tail -1 | awk '{print $2}'`
echo $download
echo $upload
uptime | sed -e 's/^.*up *//g' -e 's/, *[0-9] *u.*$//g'
hostname
Skrypt na moje oko działa poprawnie, ponieważ po uruchomieniu go ręcznie zwraca oczekiwane wartości:

Kod: Zaznacz cały

Alpha:/etc/mrtg/bin# ./traffic 10.0.0.213
1749276230
29383756
1 day,  3:05
Alpha
Mrtg natomiast pluje błędem:

Kod: Zaznacz cały

/etc/mrtg/bin/traffic: line 2: iptables: command not found
/etc/mrtg/bin/traffic: line 3: iptables: command not found
2010-03-18 12:10:01: WARNING: Problem with External get '/etc/mrtg/bin/traffic 10.0.0.213':
   Expected a Number for 'in' but got ''

2010-03-18 12:10:01: WARNING: Problem with External get '/etc/mrtg/bin/traffic 10.0.0.213':
   Expected a Number for 'out' but got ''

2010-03-18 12:10:01: ERROR: Target[traffic_10.0.0.213][_IN_] ' $target->[7]{$mode} ' did not eval into defined data
2010-03-18 12:10:01: ERROR: Target[traffic_10.0.0.213][_OUT_] ' $target->[7]{$mode} ' did not eval into defined data
Tak natomiast wygląda wpis w mrtg.conf dla tego skryptu:

Kod: Zaznacz cały

Target[traffic_10.0.0.213]: `/etc/mrtg/bin/traffic 10.0.0.213`
Title[traffic_10.0.0.213]: 10.0.0.213
Options[traffic_10.0.0.213]: growright, nopercent, integer, nobanner, noinfo, noborder
MaxBytes[traffic_10.0.0.213]: 512000
kilo[traffic_10.0.0.213]: 1024
ShortLegend[traffic_10.0.0.213]: B/s
YLegend[traffic_10.0.0.213]: Transfer
Legend1[traffic_10.0.0.213]: Download
Legend2[traffic_10.0.0.213]: Upload
LegendI[traffic_10.0.0.213]: download
LegendO[traffic_10.0.0.213]: upload
PageTop[traffic_10.0.0.213]: 10.0.0.213
PageFoot[traffic_10.0.0.213]:
Nie wiem już gdzie szukać przyczyny błędów?

: 18 marca 2010, 12:35
autor: filip.cy
/etc/mrtg/bin/traffic: line 2: iptables: command not found
/etc/mrtg/bin/traffic: line 3: iptables: command not found
Podaj w skrypcie pełną ścieżkę do iptables, grepa itd.

: 18 marca 2010, 12:44
autor: Luc3k
Nie rozumiem? Jak pełną ścieżkę? Możesz troszkę rozwinąć?