Szintén egy olyan dologhoz értünk, amelyet nem hiszem, hogy sokan használnak. Sokszor látni azt, hogy egyes emberek szeretik mérni a forgalmi statisztikájukat, vagy éppen forgalmi korlátos internet előfizetésük van. Kevés ebből is az ingyenes program, nem beszélve arról, hogy mi van, hogyha több gép is van a családban, a LAN-on. Akkor most mindegyikre telepíteni kelljen, vagy hogy…?
Ezt fogjuk összehozni ha minden jól megy:vnstat frontend
Szükséges dolgok megléte:
Kezdjünk is neki, hogyan is, ha nem a szokásos módon:
ipkg install vnstat
Az előző honlapról szedjük is le a frontendet, kicsit lejebb a lap alján megtalálható. Figyeljünk, hogy a legújabbat szedjük le, ez a cikk írása közben az 1.3-as verziónál tart.
Következő lépésben létre kell hoznunk egy könyvtárat, ahova majd cron segítségével 5 percenként a vnstat frissíti az adatbázist. Mindenki oda teszi ahova szeretné csak majd ezt az elérési utat kell megadni a conf-ban is, nekem a választásom most ide esett:
mkdir /opt/share/vnstat
Ezután konfiguráljuk a vnstat.conf-ot:
vi /opt/etc/vnstat.conf
1-2 szóban, hogy mire is kell it figyelni. Sokmindenre nem:) A default interface résznél nálam ppp0 van, mert nekem a kapcsolat típusom PPPoE. A MaxBWeth0 8 nálam azért 8, mert lefelé 8mbit a sebességem.
Szóval nálam így fest:
# vnStat 1.6 config file
##
# location of the database directory
DatabaseDir “/opt/share/vnstat”
# locale (LC_ALL)
Locale “hu_HU”
# on which day should months change
MonthRotate 1
# date output formats for -d, -m, -t and -w
# see ‘man date’ for control codes
DayFormat “%m.%d.”
MonthFormat “%b ‘%y”
TopFormat “%d.%m.%y”
# characters used for visuals
RXCharacter “%”
TXCharacter “:”
RXHourCharacter “r”
TXHourCharacter “t”
# default interface
Interface “ppp0″
# maximum bandwidth (Mbit) for all interfaces, 0 = disable feature
# (unless interface specific limit is given)
MaxBandwidth 100
# interface specific limits
# example 8Mbit limit for eth0 (remove # to activate):
MaxBWeth0 8
# how many seconds should sampling for -tr take by default
Sampletime 5
# default query mode
# 0 = normal, 1 = days, 2 = months, 3 = top10
# 4 = dumpdb, 5 = short, 6 = weeks, 7 = hours
QueryMode 0
# database file locking (1 = enabled, 0 = disabled)
UseFileLocking 1
# how much the boot time can variate between updates (seconds)
BootVariation 15
Majd létre kell hoznunk az adatbázisokat, a ppp0 helyett mindenki a saját interface-t írja be:
vnstat -u -i ppp0
vnstat -u -i vlan0
vnstat -u -i vlan1
Ha ilyen üzit kaptunk, akkor minden oké: <br />
Error:<br />
Unable to read database "/opt/share/vnstat/vlan1".<br />
-> A new database has been created.<br />
Következő feladatunk, hogy ezt az adatbázis olyan formára hozzuk, hogy a mi esetünkben ezt php (a frontend) segítségével emészthető formába tudjuk hozni.
Ehez a crontab segítségét vesszük igénybe.
crontab -e parancs begépelésével adjuk hozzá a következő 4 sort, persze akinél nem ppp0 van, az cserélje. Fontos a sorrend, tehát a vnstat -u rész legyen a többi 3 előtt.
*/5 * * * * /opt/bin/vnstat -u
*/5 * * * * /opt/bin/vnstat –dumpdb -i ppp0 > /opt/share/vnstat/vnstat_dump_ppp0
*/5 * * * * /opt/bin/vnstat –dumpdb -i vlan0 > /opt/share/vnstat/vnstat_dump_vlan0
*/5 * * * * /opt/bin/vnstat –dumpdb -i vlan1 > /opt/share/vnstat/vnstat_dump_vlan1
A végére hagyjunk egy üres sort. Régebben háklis volt erre a cron, de szerintem még most is.
Most már elvileg a cron segítségével 5 percenként frissülget az adatbázis, megvannak az emészthető formák is, most már csak a php frontend van hátra.
Ez a legnehezebb az egészben:))
Csomagoljuk ki a frontendet a web root alá mundjuk vnstat könyvtárba, majd nyissuk meg a config.php állományt.
Nálam ennyi a tartalma (a szokásos cseréket persze mindenki végezze el):
$iface_list = array(’vlan0′, ‘vlan1′, ‘ppp0′);
$iface_title['vlan0'] = ‘LAN’;
$iface_title['vlan1'] = ‘WAN’;
$iface_title['ppp0'] = ‘TvNetwork’;
$vnstat_bin = ‘;
$data_dir = ‘/opt/share/vnstat’;
Már majdnem kész vagyunk, de még kell egy kiegészítés a php-hoz (előfordulhat, hogy már valakinek fent van), hogy megkapjuk a grafikus függvényeket is az arcunkba. Ez a php-gd, amihez szépen sorban települ majd a többi összetevő is.
ipkg install php-gd
Ne felejtsük majd el újraindítani a lighttpd-t, hogy érvényesüljenek az előbb telepített csomagok is.
/opt/etc/init.d/S80lighttpd restart
Ezután már csak navigáljunk a böngészőben a megfelelő címre.
Az én esetemben ez http://192.168.1.1:8081/vnstat.
Persze ha villámkézzel csináltuk végig a tutort, akkor lehet, hogy még nincs elég adat.
Nah, tetszik-e az eredmény?:)

Read original blog post