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 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) / 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:
# 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).