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 MBLAN (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 14h 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) / dailyday 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) / weeklyrx | 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) / monthlymonth 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 em4rx 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).






Open-source






Abonnez-vous
9 commentaires au billet “VNStat surveille votre bande passante”
C'est une commande sympathique,
Par contre j'appelle ça du « trafic », pas de la « bande passante ».
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
Exactement ce que je recherchais, je vais pouvoir virer ntop.
Par contre, pas de vnstati pour moi non plus
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.
@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+
Merci !
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
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é.
autant pour moi, c'est --nick, et pas -nick...je continue de fouiller pour le reste
Publier un commentaire
Utiliser
pour lier des documents à vos commentaires.
Pour des discutions techniques, merci d'utiliser le forum.