Auteur:
NicoLargo

Date:
15/04/2009

Catégories:
Nagios
Open-source
Reseau

Tags:


VNStat surveille votre bande passante

VNStat est un petit utilitaire bien sympathique pour surveiller la bande passante utilisée sur les interfaces réseaux de ses machines GNU/Linux ou BSD.

Installation de VNstat

Sous GNU/Linux Ubuntu:

# sudo apt-get install vnstat

Puis ajouter la ligne suivant dans votre crontab:

*/5 * * * * root if [ -x /usr/bin/vnstat ] && [ `ls -l /var/lib/vnstat/ | wc -l` -ge 1 ]; then /usr/bin/vnstat -u; fi

Sous FreeBSD:

# pkg_add -r vnstat

Puis ajouter la ligne suivant dans votre crontab:

*/5 * * * * root if [ -x /usr/local/bin/vnstat ] && [ `ls -l /var/db/vnstat/ | wc -l` -ge 1 ]; then /usr/local/bin/vnstat -u; fi

Déclaration des interfaces réseaux à surveiller

Imaginons que la machine à surveiller est un routeur avec deux interfaces réseaux: em0 qui est l’interface coté Internet (c’est à dire l’interface connecté à votre modem/routeur DSL) et em1 qui est l’interface coté LAN (celle connecté à vos machines).

Il faut donc effectuer la déclaration suivante qui va créer automatiquement les fichiers de base de données.

# vnstat -u -i em0 –nick “Internet”
# vnstat -u -i em1 –nick “LAN”

Utilisation de VNStat

Le crontab que nous avons configuré dans la première étape de l’installation est programmé pour se lancer toutes les 5 minutes. Il faut donc attendre un petit moment avant de pouvoir utiliser VNStat.

La première commande permet d’afficher un résumé des statistiques par interface.:

# vnstat
rx      /     tx      /    total    /  estimated
Internet (em0):
yesterday    421.40 MB  /  984.95 MB  /    1.37 GB
today     91.20 MB  /   86.35 MB  /  177.54 MB  /     294 MB

LAN (em1):
yesterday    626.97 MB  /  242.34 MB  /  869.32 MB
today      1.46 GB  /  565.40 MB  /    2.01 GB  /    3.36 GB

Statistiques sur la dernière heure avec l’option -h:

# vnstat -h
Internet (em0)                                                           14:25
^                                                        r
|                                                        r
|                                                        r
|                                                        r
|                                                        r
|                                                        r
|                                                        r
|     r                                                  r     r
|     r                                                  r  r  r
|  r  r  r                  t                 t  t       r  r  rt r  r
-+—————————————————————————>
|  15 16 17 18 19 20 21 22 23 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14

h   rx (kB)    tx (kB)      h   rx (kB)    tx (kB)      h   rx (kB)    tx (kB)
15     117458      17933    23       7006      69069    07       4913      31545
16     205687      21665    00      26175      23108    08      61198      19855
17     112410      14211    01       5373       5281    09     682414      39748
18       4981       6441    02       3734       4623    10     191760      16684
19       5792      42644    03       3822       4842    11     238408      95350
20       4211       4416    04      31824      23303    12     135037      37811
21       5571       6457    05      17429     111179    13      91544      24793
22       5680      32557    06       6706     135740    14      40126       6404

Statistiques journalières avec l’option -d:

# vnstat -d
Internet (em0)  /  daily

day         rx      |     tx      |  total
————————+————-+—————————————-
14.04.    626.97 MB  |  242.34 MB  |  869.32 MB   %%%%%%%:::
15.04.      1.47 GB  |  566.67 MB  |    2.02 GB   %%%%%%%%%%%%%%%%%%:::::::
————————+————-+—————————————-
estimated     2.43 GB  |     937 MB  |    3.35 GB

Statistiques hebdomadaire avec l’option -w:

# vnstat -w
Internet (em0)  /  weekly

rx      |       tx      |    total
—————————-+—————+————–
last 7 days      2.09 GB  |    810.27 MB  |      2.89 GB
current week      2.09 GB  |    810.27 MB  |      2.89 GB
—————————-+—————+————–
estimated      5.67 GB  |      2.14 GB  |      7.82 GB

Statistiques mensuelle avec l’option -m:

# vnstat -m
Internet (em0)  /  monthly

month         rx      |      tx      |   total
————————-+————–+————————————–
Apr ’09       2.09 GB  |   810.27 MB  |     2.89 GB   %%%%%%%%%%%%%%%%::::::
————————-+————–+————————————–
estimated      4.31 GB  |     1.63 GB  |     5.93 GB

D’autres options permette d’avoir une vu en “temps réel” de la consomation de bande passante:

Calcul sur les 5 dernières secondes:

# vnstat -tr
19 packets sampled in 5 seconds
Traffic average for em4

rx           0.14 kB/s              2 packets/s
tx           0.13 kB/s              1 packets/s

Calcul instantané:

# vnstat -l
Monitoring em0…    (press CTRL-C to stop)

rx:       2.36 kB/s    11 p/s            tx:       1.46 kB/s    13 p/s

Le texte c’est bien , mais les graphes c’est mieux

Si vous avez l’âme d’un futur manager, vous êtes en train de vous dire que cet utilitaire n’est pas mal mais qu’une présentation sous forme de graphe ferait un plus bel effet dans mon prochain rapport… Heureusement, les auteurs de VNStat ont pensé à vous et vous proposent VNStati.

L’utilisation est presque la même que pour VNStat. La première commande permet de génèrer (au format PNG) un résumé des statistiques par interface (utiliser l’option -i pour fixer l’interface):

# vnstati -i em0

Statistiques sur la dernière heure avec l’option -h:

# vnstati -h

Statistiques journalières avec l’option -d:

# vnstati -d

Statistiques mensuelle avec l’option -m:

# vnstati -m

Conclusion

Bien que VNStat ne boxe pas dans la même catégorie que des logiciels comme Cacti, je trouve que c’est un bon complément à des outils comme iftop ou ntop (en beaucoup plus léger pour ce dernier). Il existe même un projet parallèle pour intégrer ces rapports dans un site Web à partir d’un front-end PHP (projet vnStat PHP frontend).

9 commentaires


  1. Seza, le 15/04/2009 (#6259)

    C’est une commande sympathique,

    Par contre j’appelle ça du « trafic », pas de la « bande passante ».


  2. DadoOo, le 15/04/2009 (#6260)

    Ca à l’air pas mal.

    Perso, j’ai un petit soucis sous Debian. Tout fonctionne correctement sauf le VNstati : commande introuvable.

    Dommage c’est la partie la plus sympa :(


  3. Djoh, le 16/04/2009 (#6262)

    Exactement ce que je recherchais, je vais pouvoir virer ntop.

    Par contre, pas de vnstati pour moi non plus


  4. DadoOo Bot, le 16/04/2009 (#6263)

    Après recherche il s’avère que les dépots Debian proposent uniquement la version 1.6.1 de vnstat. A cette version vnstati n’est pas encore disponible puisque ce dernier fait son apparition à la version 1.7 dont le source est dispo sur le site de vnstat.

    Attention, il n’est pas nécessaire d’ajouter de crontab comme indiqué puisqu’à l’installation du paquet Debian le crontab est crée automatiquement. ;)


  5. NicoLargo, le 16/04/2009 (#6267)

    @tous: je viens de faire un petit billet pour installer la dernière version de VnStat (et donc pour avoir VnStati) sous Linux:

    http://blog.nicolargo.com/2009/04/compilation-de-vnstat-sous-ubuntudebian.html

    A+


  6. DadoOo Bot, le 16/04/2009 (#6268)

    Merci ! ;)


  7. tuxce, le 16/04/2009 (#6269)

    sinon, pour info, vous pouvez utiliser vnstat_php
    http://www.sqweek.com/sqweek/index.php?p=1
    il suffit de dumper la base vnstat et de copier le fichier dans un rep défini dans la config de vnstat_php


  8. geronimo, le 23/01/2010 (#7499)

    bonjour, merci pour ce billet très intéressant. Je suis en train de tester le concept sur une machine que je souhaite coller entre mon lan et le routeur SFR sur lequel je n’ai absolument pas la main via une machine ubuntu configurée en bridge mode.
    Cependant je but dès le départ, vnstat ne reconnait pas l’option -nick…quelqu’un à dejà eu le souci?
    De même dès que je tape une commande il va chercher mon interface eth0, alors que j’ai défini mes interfaces br0 et eth1 comme indiqué.


  9. geronimo, le 23/01/2010 (#7500)

    autant pour moi, c’est –nick, et pas -nick…je continue de fouiller pour le reste


Laisser un message

Les informations saisies resteront privées.