Surveille le trafic réseau avec vnStat sur Ubuntu 20.04

vnStat est un outil de surveillance du trafic réseau gratuit, open-source et basé sur une console pour le système d’exploitation Linux. Avec vnStat, tu peux surveiller les statistiques du réseau sur diverses périodes de temps. Il est simple, léger et ne consomme qu’une petite partie de tes ressources système. vnStat te permet de générer les données de trafic réseau sur une heure, un jour, un mois, une semaine et un jour.

Dans ce tutoriel, nous allons te montrer comment installer et utiliser vnStat pour surveiller le trafic réseau.

Conditions préalables

  • Un serveur exécutant Ubuntu 20.04.
  • Un mot de passe root est configuré sur le serveur.

Installer vnStat

Par défaut, la dernière version de vnStat n’est pas disponible dans le dépôt par défaut d’Ubuntu. Tu devras donc la compiler à partir des sources.

Tout d’abord, installe toutes les dépendances nécessaires pour compiler vnStat avec la commande suivante :

apt-get install build-essential gcc make libsqlite3-dev -y

Une fois que toutes les dépendances sont installées, télécharge la dernière version de la source de vnStat avec la commande suivante :

wget https://humdi.net/vnstat/vnstat-2.6.tar.gz

Une fois le téléchargement terminé, extrais le fichier téléchargé avec la commande suivante :

tar -xvzf vnstat-2.6.tar.gz

Ensuite, change le répertoire pour le répertoire extrait et configure-le avec la commande suivante :

cd vnstat-2.6
./configure --prefix=/usr --sysconfdir=/etc

Ensuite, installe le vnStat en exécutant la commande suivante :

make
make install

Une fois que vnStat est installé, tu peux vérifier la version installée de vnStat avec la commande suivante :

vnstat -v

Tu devrais obtenir la sortie suivante :

vnStat 2.6 by Teemu Toivola 

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Gérer le service vnStat

Ensuite, tu devras copier le fichier du service vnStat systemd de la source vnStat dans le répertoire /etc/systemd/system/ :

cp -v vnstat-2.6/examples/systemd/vnstat.service /etc/systemd/system/

Ensuite, active le service vnStat et démarre-le avec la commande suivante :

systemctl enable vnstat
systemctl start vnstat

Tu peux aussi vérifier l’état du service vnStat à l’aide de la commande suivante :

systemctl status vnstat

Tu devrais obtenir la sortie suivante :

? vnstat.service - vnStat network traffic monitor
   Loaded: loaded (/etc/systemd/system/vnstat.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-11-12 06:24:01 UTC; 11s ago
     Docs: man:vnstatd(8)
           man:vnstat(1)
           man:vnstat.conf(5)
 Main PID: 20989 (vnstatd)
    Tasks: 1 (limit: 4701)
   Memory: 1.5M
   CGroup: /system.slice/vnstat.service
           ??20989 /usr/sbin/vnstatd -n

Nov 12 06:24:01 Ubuntu systemd[1]: Started vnStat network traffic monitor.
Nov 12 06:24:01 Ubuntu vnstatd[20989]: No interfaces found in database, adding available interfaces...
Nov 12 06:24:01 Ubuntu vnstatd[20989]: Interface "ens3" added with 1000 Mbit bandwidth limit.
Nov 12 06:24:01 Ubuntu vnstatd[20989]: Interface "ens4" added with 1000 Mbit bandwidth limit.
Nov 12 06:24:01 Ubuntu vnstatd[20989]: -> 2 new interfaces found.
Nov 12 06:24:01 Ubuntu vnstatd[20989]: Limits can be modified using the configuration file. See "man vnstat.conf".
Nov 12 06:24:01 Ubuntu vnstatd[20989]: Unwanted interfaces can be removed from monitoring with "vnstat --remove".
Nov 12 06:24:01 Ubuntu vnstatd[20989]: Info: vnStat daemon 2.6 started. (pid:20989 uid:0 gid:0 64-bit)
Nov 12 06:24:01 Ubuntu vnstatd[20989]: Info: Monitoring (2): ens4 (1000 Mbit) ens3 (1000 Mbit)

Une fois que tu as terminé, tu peux passer à l’étape suivante.

Travailler avec vnStat

vnStat est livré avec plusieurs options qui t’aident à surveiller le trafic réseau. Tu peux répertorier toutes les options disponibles avec la commande suivante :

vnstat --help

Tu devrais obtenir la sortie suivante :

vnStat 2.6 by Teemu Toivola 

      -5,  --fiveminutes [limit]   show 5 minutes
      -h,  --hours [limit]         show hours
      -hg, --hoursgraph            show hours graph
      -d,  --days [limit]          show days
      -m,  --months [limit]        show months
      -y,  --years [limit]         show years
      -t,  --top [limit]           show top days

      -b, --begin            set list begin date
      -e, --end              set list end date

      --oneline [mode]             show simple parsable format
      --json [mode] [limit]        show database in json format
      --xml [mode] [limit]         show database in xml format

      -tr, --traffic [time]        calculate traffic
      -l,  --live [mode]           show transfer rate in real time
      -i,  --iface      select interface

Use "--longhelp" or "man vnstat" for complete list of options.

Avant d’utiliser vnStat, tu dois attendre un certain temps pour mettre à jour la base de données vnStat. Après avoir mis à jour la base de données, tu peux exécuter vnStat sans aucune option comme indiqué ci-dessous :

vnstat

Tu devrais voir la sortie suivante :

                      rx      /      tx      /     total    /   estimated
 ens3:
       2020-11    164.83 KiB  /  495.17 KiB  /  660.01 KiB  /     --     
         today    164.83 KiB  /  495.17 KiB  /  660.01 KiB  /    2.38 MiB

Tu peux aussi spécifier l’interface réseau spécifique en utilisant l’option -i comme indiqué ci-dessous :

vnstat -i ens3

Tu devrais obtenir les statistiques quotidiennes et mensuelles dans la sortie suivante :

Database updated: 2020-11-12 06:30:00

   ens3 since 2020-11-12

          rx:  164.83 KiB      tx:  495.17 KiB      total:  660.01 KiB

   monthly
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
       2020-11    164.83 KiB |  495.17 KiB |  660.01 KiB |        5 bit/s
     ------------------------+-------------+-------------+---------------
     estimated       --      |     --      |     --      |

   daily
                     rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
         today    164.83 KiB |  495.17 KiB |  660.01 KiB |      231 bit/s
     ------------------------+-------------+-------------+---------------
     estimated       608 KiB |    1.79 MiB |    2.38 MiB |

Pour afficher les statistiques horaires, exécute la commande suivante :

vnstat -h

Tu devrais obtenir le résultat suivant :

 ens3  /  hourly

         hour        rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     2020-11-12
         06:00    164.83 KiB |  495.17 KiB |  660.01 KiB |    3.00 kbit/s
     ------------------------+-------------+-------------+---------------

Pour afficher les statistiques quotidiennes, exécute la commande suivante :

vnstat -d

Tu devrais obtenir le résultat suivant :

 ens3  /  daily

          day        rx      |     tx      |    total    |   avg. rate
     ------------------------+-------------+-------------+---------------
     2020-11-12   164.83 KiB |  495.17 KiB |  660.01 KiB |      231 bit/s
     ------------------------+-------------+-------------+---------------
     estimated       608 KiB |    1.79 MiB |    2.38 MiB |

Tu peux utiliser l’option -t pour afficher les jours où le trafic est le plus élevé :

vnstat -t

Tu devrais obtenir le résultat suivant :

 ens3  /  top 1

    #      day          rx      |     tx      |    total    |   avg. rate
   -----------------------------+-------------+-------------+---------------
 >  1   2020-11-12   164.83 KiB |  495.17 KiB |  660.01 KiB |       62 bit/s

Pour afficher les statistiques du trafic réseau en temps réel, exécute la commande suivante :

vnstat -l

Tu devrais obtenir le résultat suivant :

Monitoring ens3...    (press CTRL-C to stop)

   rx:     1.31 kbit/s     2 p/s          tx:     1.49 kbit/s     1 p/s^C


 ens3  /  traffic statistics

                           rx         |       tx
--------------------------------------+------------------
  bytes                     3.75 KiB  |        5.42 KiB
--------------------------------------+------------------
          max            6.55 kbit/s  |    11.17 kbit/s
      average            1.53 kbit/s  |     2.22 kbit/s
          min              264 bit/s  |       264 bit/s
--------------------------------------+------------------
  packets                         41  |              37
--------------------------------------+------------------
          max                  7 p/s  |           8 p/s
      average                  2 p/s  |           1 p/s
          min                  0 p/s  |           0 p/s
--------------------------------------+------------------
  time                    20 seconds

Tu peux aussi effacer les entrées de la base de données pour l’interface ens3 et arrêter la surveillance à l’aide de la commande suivante :

vnstat -i ens3 --remove --force

Tu devrais obtenir le résultat suivant :

Interface "ens3" removed from database.
The interface will no longer be monitored. Use --add
if monitoring the interface is again needed.

Tu peux aussi ajouter à nouveau l’interface ens3 supprimée en exécutant la commande suivante :

vnstat -i ens3 --add

Tu devrais obtenir le résultat suivant :

Adding interface "ens3" for monitoring to database...

Restart the vnStat daemon if it is currently running in order to start monitoring "ens3".

Ensuite, redémarre le service vnStat pour appliquer les modifications :

systemctl restart vnstat

Conclusion

Dans le guide ci-dessus, tu as appris à installer vnStat et à l’utiliser pour surveiller le trafic réseau. J’espère que cet outil t’aidera à analyser et à résoudre les problèmes liés au réseau. N’hésite pas à me demander si tu as des questions.

Vous aimerez aussi...