Vandaag bekijken we hoe je het netwerkgebruik kunt bekijken en opslaan om deze later te analyseren.
De vnstat opdracht is een hulpmiddel om netwerkgebruik te bekijken en op te slaan. Het gebruikt daarbij de netwerk statistieken van de kernel. Deze werkwijze veroorzaakt dus geen extra belasting van uw systeem.
Het vnstat pakket zit niet in de standaard softwarebronnen van openSUSE 12.3. Je kunt het echter installeren vanaf de site software.opensuse.org uit één van de softwarebronnen van pakketbuilders zoals brunciter. Deze softwarebronnen staan niet onder toezicht van openSUSE en worden daardoor door openSUSE als onstabiel beschouwd.
Wie liever de broncode van de software gebruikt om vnstat te installeren kan terecht op de site van vnStat.
Daar vnstat informatie gebruikt die door de kernel wordt verzameld, voer je de volgende opdracht uit om te testen of de kernel alle informatie die vnstat gebruikt kan aanleveren:
dany@linux-s7xo:~> vnstat --testkernel
This test will take about 60 seconds.
[==============================] done.
Detected boot time variation during test: 0
Maximum boot time variation set in config: 15
The current kernel doesn't seem to suffer from boot time variation problems.
Everything is ok.
vnStat slaat netwerkinformatie pas op als je vnStat de opdracht geeft een bepaalde netwerkverbinding in de gaten te houden.
Om de netwerkverbinding eth0 in de gaten te houden, voer je de volgende opdracht één keer uit:
dany@linux-s7xo:~> sudo vnstat -u -i eth0
Error: Unable to read database "/var/lib/vnstat/eth0".
Info: -> A new database has been created.
Zoals je ziet maakt deze opdracht een database bestand aan waarin alle netwerk berichten van de netwerkverbinding eth0 worden opgeslagen.
Om alle aanwezige netwerkverbindingen op het systeem weer te geven, voer je de volgende opdracht uit:
dany@linux-s7xo:~> vnstat --iflist
Available interfaces: eth0 lo wlan0
Start de vnstatd (vnstat dienst) om op de achtergrond informatie te verzamelen:
dany@linux-s7xo:~> sudo /usr/sbin/vnstatd -d
root's password:
dany@linux-s7xo:~> ps -ef | grep vnst
root 2248 1 0 17:38 ? 00:00:00 /usr/sbin/vnstatd -d
dany 2250 1964 0 17:39 pts/2 00:00:00 grep --color=auto vnst
Neem vnstatd op in de opstartprocedure van uw computer om deze dienst automatisch op te starten.
In het pakket voor openSUSE 12.3 zit een fout in het opstartscript waardoor de vnstatd dienst niet automatisch wil opstarten (maakt gebruik van de niet meer ondersteunde -u optie).
Dit los je als volgt op:
Pas met een root editor (bijvoorbeeld: sudo joe /etc/init.d/vnstatd
) het opstartscript als volgt aan:
Schakel in regel 50 de -u optie uit door er commentaar van te maken
"$VNSTATD_BIN" -d -p "$VNSTATD_PIDFILE" #
-u "$VNSTATD_USER"
Sla het aangepaste opstartscript op en voer de volgende opdrachten uit:
dany@linux-s7xo:~>sudo systemctl --system daemon-reload
dany@linux-s7xo:~>sudo systemctl start vnstatd.service
dany@linux-s7xo:~>sudo systemctl status vnstatd.service
vnstatd.service - LSB: vnstatd daemon providing network traffic accounting Loaded: loaded (/etc/init.d/vnstatd) Active: active (running) since Wed, 2013-03-27 18:21:15 CET; 31s ago CGroup: name=systemd:/system/vnstatd.service └ 1735 /usr/sbin/vnstatd -d -p /var/run/vnstatd.pid Mar 27 18:21:15 linux-s7xo.site systemd[1]: Starting LSB: lightweight network traffic monitor... Mar 27 18:21:15 linux-s7xo.site vnstatd[1735]: vnStat daemon 1.11 started. Mar 27 18:21:15 linux-s7xo.site vnstatd[1735]: Monitoring: eth0 Mar 27 18:21:15 linux-s7xo.site vnstatd[1728]: Starting vnstatd ..done Mar 27 18:21:15 linux-s7xo.site systemd[1]: Started LSB: lightweight network traffic monitor.
Deze opdrachten zorgen voor het herladen van het aangepaste opstartscript, het starten van de vnStat dienst en het controleren van zijn status. Met de volgende opdracht neem je het opstartscript op in de opstartprocedure van uw computer:
dany@linux-s7xo:~> sudo systemctl enable vnstatd.service
vnstatd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig vnstatd on
dany@linux-s7xo:~> vnstat
Database updated: Wed Mar 27 16:49:29 2013
eth0 since 03/27/13
rx: 5.95 MiB tx: 351 KiB total: 6.30 MiB
monthly
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
Mar '13 5.95 MiB | 351 KiB | 6.30 MiB | 0.02 kbit/s
------------------------+-------------+-------------+---------------
estimated -- | -- | -- |
daily
rx | tx | total | avg. rate
------------------------+-------------+-------------+---------------
today 5.95 MiB | 351 KiB | 6.30 MiB | 0.85 kbit/s
------------------------+-------------+-------------+---------------
estimated -- | -- | -- |
Opmerking: indien vnstatd onvoldoende informatie heeft verzameld, krijg je het volgende bericht:
eth0: Not enough data available yet.Laat vnstatd wat meer informatie verzamelen (wacht geduldig) en voer de opdracht opnieuw uit.
De volgende opdracht toont statistieken per uur (samen met een tekstgrafiek):
dany@linux-s7xo:~> vnstat -h
eth0 16:49
^ r
| r
| r
| r
| r
| r
| r
| r
| r
| r
-+--------------------------------------------------------------------------->
| 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16
h rx (KiB) tx (KiB) h rx (KiB) tx (KiB) h rx (KiB) tx (KiB)
17 0 0 01 0 0 09 0 0
18 0 0 02 0 0 10 0 0
19 0 0 03 0 0 11 0 0
20 0 0 04 0 0 12 0 0
21 0 0 05 0 0 13 0 0
22 0 0 06 0 0 14 0 0
23 0 0 07 0 0 15 0 0
00 0 0 08 0 0 16 6096 351
Met de opdracht vnstat -d
krijg je dagelijkse, met vnstat -m
maandelijkse en met vnstat -w
wekelijkse statistieken te zien.
Om de informatie te exporteren naar een rekenblad of database, voer je informatie uit naar een bestand met komma gescheiden gegevens (csv). Dit formaat wordt door bijna alle rekenbladen en databases feilloos geïmporteerd.
De eerste regels van het --dumpdb formaat bevatten header informatie. Daarna volgen de netwerkstatistieken. De regels met netwerkinformatie bevatten de volgende door puntkomma's gescheiden gegevens:dany@linux-s7xo:~> vnstat --dumpdb
version;3
active;1
interface;eth0
nick;eth0
created;1364395229
updated;1364399369
totalrx;5
totaltx;0
currx;6242304
curtx;359424
totalrxk;976
totaltxk;351
btime;1364396567
d;0;1364395229;5;0;976;351;1
d;1;0;0;0;0;0;0
...
Met de opdracht vnstat --oneline krijg je een samenvatting in één regel, waarbij de gegevens opnieuw door puntkomma's gescheiden zijn.
dany@linux-s7xo:~> vnstat --oneline
1;eth0;03/27/13;5.95 MiB;351 KiB;6.30 MiB;0.85 kbit/s;Mar '13;5.95 MiB;351 KiB;6.30 MiB;0.02 kbit/s;5.95 MiB;351 KiB;6.30 MiB
Om het netwerkgebruik live te volgen, voer je de volgende opdracht uit:
dany@linux-s7xo:~> vnstat -l
Monitoring eth0... (press CTRL-C to stop)
rx: 88 kbit/s 38 p/s tx: 144 kbit/s 55 p/s
De weergavestijl wordt bepaald door het argument --style gevolg door een cijfer:
dany@linux-s7xo:~> vnstat --style 4 -l
Monitoring eth0... (press CTRL-C to stop)
rx: 0 kbit/s 0 p/s tx: 0 kbit/s 0 p/s
rx: 116 kbit/s 46 p/s tx: 156 kbit/s 66 p/s
rx: 0 kbit/s 0 p/s tx: 0 kbit/s 0 p/s
Gebruik de opdracht vnstat --top10
om de 10 dagen met de hoogste netwerktrafiek weer te geven.