Tips en Trucs 2013

Netwerkbelasting bekijken en opslaan

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.

Installatie

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.

Een netwerkverbinding voor vnStat kiezen

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

vnStat gebruiken

Het uitvoeren van de opdracht vnstat zonder argumenten toont de volgende informatie:
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.

Statistieken per uur, dag, maand of week

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.

Informatie exporteren

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

Live netwerk statistieken

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

Top 10

Gebruik de opdracht vnstat --top10 om de 10 dagen met de hoogste netwerktrafiek weer te geven.