VNStat surveille votre bande passante

Publié le 15 avril 2009 par Nicolargo

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:

# vnstat -h

Statistiques journalières avec l'option -d:

# vnstat -d

Statistiques mensuelle avec l'option -m:

# vnstat -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).