Enregistrement et surveillance de la consommation de trafic à l'aide de VnStat | INTROSERV
EUR
european

EUR

usa

USD

French Fr
Ex. VAT Ex. VAT 0%

Comment enregistrer et surveiller la consommation de trafic avec vnStat

vnStat est un outil en console léger qui conserve l'historique du trafic réseau sous Linux. Un service en arrière-plan, vnstatd, lit les compteurs des interfaces fournis par le noyau et les enregistre dans une petite base de données. Vous pouvez ensuite consulter le trafic par heure, par jour, par mois et par an, ou suivre en temps réel le débit de transfert actuel. vnStat ne capture pas les paquets, ce qui le rend très peu gourmand en ressources. Il indique la quantité de trafic ayant transité par chaque interface, mais pas les adresses IP, les ports ni les connexions qui l'ont généré.

Ce guide explique comment installer vnStat à partir du dépôt ou du code source, et comment consulter les statistiques de trafic. vnStat est utile sur tout serveur où le trafic est limité ou facturé, par exemple sur un VPS Linux ou un serveur dédié INTROSERV.

Installer vnStat depuis le dépôt

Connectez-vous à votre serveur via SSH. Pour plus de détails, consultez Connexion via SSH.

Ubuntu et Debian

vnStat est disponible dans les dépôts standard. Installez-le :

sudo apt update sudo apt install -y vnstat

L'installation démarre le service vnstat et l'active au démarrage du système. Vérifiez qu'il est en cours d'exécution :

sudo systemctl status vnstat

La sortie doit afficher active (running). Si le service ne fonctionne pas, activez-le et démarrez-le avec la commande sudo systemctl enable --now vnstat.

AlmaLinux et Rocky Linux

vnStat est disponible dans le dépôt EPEL. Activez EPEL et installez vnStat :

sudo dnf install -y epel-release sudo dnf install -y vnstat

Activez et démarrez le service :

sudo systemctl enable vnstat && sudo systemctl start vnstat

Vérifiez qu'il est en cours d'exécution :

sudo systemctl status vnstat

Installer vnStat à partir du code source

Compilez vnStat à partir du code source si le paquet n'est pas disponible pour votre distribution ou si vous avez besoin de la dernière version.

Warning

Si vnStat est déjà installé depuis le dépôt, supprimez d'abord le paquet : sudo apt remove -y vnstat sous Ubuntu et Debian, ou sudo dnf remove -y vnstat sous AlmaLinux et Rocky Linux. Les deux installations utilisent le même fichier de configuration, la même base de données et le même nom de service ; les conserver ensemble provoque donc des conflits.

Installez les dépendances de compilation. Sous Ubuntu et Debian :

sudo apt update && sudo apt install -y build-essential libsqlite3-dev wget

Sous AlmaLinux et Rocky Linux :

sudo dnf group install -y "Development Tools" sudo dnf install -y sqlite-devel wget

Téléchargez et décompressez la dernière version :

wget https://humdi.net/vnstat/vnstat-latest.tar.gz tar -xf vnstat-latest.tar.gz cd vnstat-*/

L'archive se décompresse dans un répertoire dont le nom contient le numéro de version, par exemple vnstat-2.13. Le caractère générique de vnstat-*/ permet d'y accéder sans saisir le numéro de version.

Compilez et installez vnStat :

./configure --prefix=/usr --sysconfdir=/etc && make && sudo make install

L'option --prefix=/usr installe les programmes dans /usr/bin et /usr/sbin, et --sysconfdir=/etc place le fichier de configuration dans /etc/vnstat.conf.

Sous AlmaLinux et Rocky Linux avec SELinux activé, si vnStat a été installé auparavant depuis le dépôt, restaurez d'abord les étiquettes SELinux du répertoire de la base de données. Sinon, le service ne démarre pas et renvoie l'erreur Permission denied :

sudo restorecon -Rv /var/lib/vnstat

Installez le service systemd, puis activez-le et démarrez-le :

sudo cp -v examples/systemd/vnstat.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now vnstat

Vérifiez la version et l'état du service :

vnstat --version sudo systemctl status vnstat

Identifier l'interface réseau

Par défaut, vnStat ajoute à sa base de données toutes les interfaces réseau du serveur, à l'exception de l'interface de bouclage (loopback). Pour afficher les interfaces actuellement enregistrées dans la base de données, exécutez :

vnstat --dbiflist

Vous pouvez également lister les interfaces avec la commande ip a. Les exemples ci-dessous utilisent l'interface ens3. Remplacez-la par le nom de votre interface, par exemple eth0 ou enp1s0.

Info

Par défaut, vnStat enregistre les nouvelles données dans la base toutes les 5 minutes. Juste après l'installation, la commande vnstat indique qu'il n'y a pas encore de données, par exemple avec le message Not enough data available yet ou No data. Patientez quelques minutes, puis relancez la commande.

Consulter les statistiques de trafic

Exécutez vnstat sans option pour afficher un récapitulatif de toutes les interfaces, comprenant le trafic du jour et du mois en cours ainsi qu'une estimation pour la fin de chaque période.

vnstat

Dans tous les rapports, rx désigne le trafic entrant, tx le trafic sortant et total leur somme.

Trafic par heure

Pour afficher les 12 dernières entrées horaires, exécutez :

vnstat -i ens3 -h --limit 12

Trafic par jour

Pour afficher les 2 dernières entrées quotidiennes, exécutez :

vnstat -i ens3 -d --limit 2

Sans --limit, le nombre d'entrées affichées est défini par le paramètre ListDays du fichier /etc/vnstat.conf, 30 par défaut. Ce paramètre ne limite que l'affichage, pas les données stockées dans la base.

Trafic par mois

vnstat -i ens3 -m

Trafic par an

vnstat -i ens3 -y

Trafic en temps réel

Pour suivre le débit de transfert actuel, exécutez :

vnstat -i ens3 -l

Le débit est actualisé jusqu'à ce que vous appuyiez sur Ctrl+C. Si la commande s'est exécutée pendant plus de 10 secondes, vnStat affiche ensuite un récapitulatif pour cette durée.

Trafic sur un nombre de secondes donné

Pour mesurer le débit moyen sur une période donnée, indiquez la durée en secondes. Par exemple, 20 secondes :

vnstat -i ens3 -tr 20

Sans valeur, la mesure dure 5 secondes. Le résultat s'affiche à la fin du délai.

Graphique des dernières 24 heures

Pour afficher le trafic des dernières 24 heures sous forme de graphique en mode texte, exécutez :

vnstat -i ens3 -hg

Tip

Pour traiter les statistiques dans un script, utilisez l'option --json ou --oneline. Par exemple, vnstat -i ens3 --json d exporte les statistiques quotidiennes au format JSON.

Définir l'interface par défaut

Si le serveur possède plusieurs interfaces et que vous en consultez généralement une seule, définissez-la comme interface par défaut dans le fichier de configuration /etc/vnstat.conf. Ouvrez le fichier :

sudo nano /etc/vnstat.conf

Sous AlmaLinux et Rocky Linux, nano n'est pas installé par défaut. Installez-le avec sudo dnf install -y nano ou utilisez vi.

Repérez la ligne Interface, supprimez le point-virgule au début et saisissez le nom de votre interface :

Interface "ens3"

Enregistrez le fichier. Désormais, vnstat affiche cette interface lorsque vous l'exécutez sans l'option -i, par exemple vnstat -d. Le service vnstat continue de surveiller toutes les interfaces.

Pour la liste complète des options, exécutez vnstat --longhelp ou consultez man vnstat.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA