À l'ère du cloud computing, les machines virtuelles (VM) sont devenues très courantes, tandis que l'utilisation des machines physiques a commencé à diminuer progressivement. Dans cet article, nous présenterons les outils ‘vnStat’ et ‘iftop,’ que nous pouvons utiliser pour surveiller la consommation de données dans une VM.
Tout d'abord, je crée une machine avec les ressources suivantes :
Processeur 20 GHz
16 Go de RAM
20 Go de SSD
Je monte le disque avec l'image Ubuntu 18.04 qui est disponible dans la bibliothèque de CloudSigma.
Ubuntu 18.04 : 64 bits préinstallé avec pilotes VirtIO, superutilisateur, Python 2.7.15, Pip 18.0, OpenSSL 1.1.0i, Cloud-init et les dernières mises à jour jusqu'au 2018-09-30.
Ensuite, je mets à jour tous les dépôts et paquets existants sur la machine.
|
1 2 |
sudo apt update sudo apt upgrade |
Maintenant que notre système est à jour, je vais passer à nos outils, ‘vnStat’ et ‘iftop’.
VNSTAT
Selon humdi, vnStat est un outil de surveillance du trafic réseau en console pour Linux et BSD qui conserve un journal du trafic réseau pour la ou les interfaces sélectionnées. Il utilise les statistiques de l'interface réseau fournies par le noyau comme source d'informations. Cela signifie que vnStat ne va pas réellement sniffer le trafic et garantit également une utilisation légère des ressources système.
Certaines des fonctionnalités de vnStat sont :
- Même si le système redémarre, les données persistent.
- Il peut surveiller plusieurs interfaces en même temps.
- Il existe plusieurs options d'affichage, par exemple, par jour, par semaine, etc.
- Les politiques de rétention des données peuvent être configurées par l'utilisateur.
- Les mois peuvent être configurés en fonction du cycle de facturation.
- L'outil lui-même est très léger et l'utilisation des ressources est minimale.
- L'utilisation du processeur sera la même quel que soit le trafic.
Installation
Utilisez la commande suivante pour installer vnStat :
|
1 |
sudo apt install vnstat |
Il devrait détecter automatiquement l'interface réseau. Si ce n'est pas le cas, je peux vérifier l'interface avec la commande :
|
1 |
ip addr |
Dans mon cas, je peux voir deux interfaces :
|
1 2 3 4 5 6 7 8 9 10 11 12 |
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 22:af:d1:32:d2:0b brd ff:ff:ff:ff:ff:ff inet XXX.XXX.XX.XXX/24 brd XXX.XXX.XX.XXX scope global dynamic ens3 valid_lft 1853sec preferred_lft 1853sec inet6 fe80::20af:d1ff:fe32:d20b/64 scope link valid_lft forever preferred_lft forever |
Je peux ignorer l'interface de loopback. L'interface que je souhaite surveiller est ‘ens3’. Je peux mettre cela à jour dans vnStat en utilisant la commande :
|
1 |
sudo vnstat -u -i ens3 |
Guide d'utilisation
Le guide d'utilisation peut être consulté à l'aide de la commande : vnStat –help
L'utilisation sera décrite comme ceci :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
vnStat 1.18 par Teemu Toivola <tst chez iki point fi> -q, --interroger interroger la base de données -h, --heures afficher les heures -d, --jours afficher les jours -m, --mois afficher les mois -w, --semaines afficher les semaines -t, --top10 afficher le top 10 des jours -s, --court utiliser la sortie courte -u, --mise à jour mettre à jour la base de données -i, --interface sélectionner l'interface (par défaut: ens3) -?, --aide courte aide -v, --version afficher la version -tr, --trafic calculer le trafic -ru, --unité de débit basculer l'unité de débit configurée -l, --en direct afficher le débit de transfert en temps réel Voir aussi "--longhelp" pour la liste complète des options et "man vnstat". |
À l'aide de ces commandes, nous pouvons obtenir les métriques d'utilisation des données.
Pour le surveiller facilement et intuitivement, nous pouvons installer le tableau de bord vnStat. Voici les étapes pour installer le tableau de bord :
Installez les dépendances requises suivantes :
|
1 |
sudo apt install apache2 php wget unzip -y |
Après l'installation des dépendances requises, nous récupérerons le tableau de bord depuis le dépôt GitHub, le décompresserons et le placerons dans le répertoire de notre serveur web.
|
1 2 3 |
wget https://github.com/alexandermarston/vnstat-dashboard/archive/master.zip unzip master.zip sudo mv vnstat-dashboard-master/ /var/www/html/vnstat/ |
Ensuite, nous devons modifier la configuration.
|
1 |
sudo vi /var/www/html/vnstat/config.php |
Les lignes suivantes devront être modifiées. Je marque les modifications requises en gras.
|
1 2 3 4 5 6 7 |
$use_predefined_interfaces = <strong>true</strong>; if ($use_predefined_interfaces == <strong>true</strong>) { $interface_list = <strong>["ens3"]</strong>; $interface_name<strong>['ens3']</strong> = "Interface de test"; } |
Je peux nommer l'interface afin de faciliter la surveillance. On peut avoir plusieurs interfaces à surveiller. Nous pouvons les ajouter ici.
Après avoir effectué les modifications, ouvrez <<IP-ADDRESS>>/vnstat
Je peux maintenant voir les données de manière élégante.


IFTOP
iftop écoute le trafic réseau sur une interface nommée, ou sur la première interface qu'il trouve et qui ressemble à une interface externe si aucune n'est spécifiée. Il affiche un tableau de l'utilisation actuelle de la bande passante par paires d'hôtes. Nous devons exécuter iftop avec des permissions suffisantes pour surveiller tout le trafic réseau sur l'interface.
Installation
Nous pouvons installer Iftop à l'aide de la commande suivante :
|
1 |
sudo apt install iftop |
Guide d'utilisation
Le guide d'utilisation peut être consulté à l'aide de la commande : iftop -h
L'utilisation sera décrite comme ceci :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
iftop: affiche la bande passante l'utilisation de sur une interface par hôte Synopsis: iftop -h | [-npblNBP] [-i interface] [-f filtre code] [-F réseau/masque] [-G réseau6/masque6] -h affiche ce message -n ne pas faire de résolutions de noms d'hôtes -N ne pas convertir les numéros de port en services -p exécuter en mode promiscuous (afficher le trafic entre d'autres hôtes sur le même segment réseau) -b ne'pas afficher de graphique en barres du trafic -B Afficher la bande passante en octets -i interface écouter sur l'interface nommée -f filtrer code utiliser le code de filtrage pour sélectionner les paquets à compter (par défaut: aucun, mais seuls les paquets IP sont comptés) -F réseau/masque afficher les flux de trafic entrant/et sortant du réseau IPv4 -G net6/masque6 afficher les flux de trafic entrant/et sortant du réseau IPv6 -l afficher et compter le trafic -IPv6 local au lien (par défaut: désactivé) -P afficher les ports ainsi que les hôtes -m limite définit la limite supérieure pour l'échelle de bande passante -c fichier de config spécifie un autre fichier de configuration -t utiliser l'interface texte sans ncurses Ordres de tri: -o 2s Trier par la première colonne, (2s de trafic moyen) -o 10s Trier par la deuxième colonne, (10s de trafic moyen) [par défaut] -o 40s Trier par la troisième colonne, (40s de trafic moyen) -o source Trier par l'adresse source -o destination Trier par l'adresse de destination Les options suivantes ne sont disponibles qu'en combinaison avec t -t -s num afficher une seule sortie texte après num secondes, puis quitter -L num nombre de lignes à afficher iftop, version 1.0pre4 copyright (c) 2002 Paul Warren <pdw@ex-parrot.com> et contributeurs |
Il a besoin des permissions root pour fonctionner. J'utilise simplement sudo car mon utilisateur cloudsigma est un utilisateur sudoer. Je peux également utiliser la commande ‘sudo su’ puis exécuter toutes les commandes en tant qu'utilisateur root.
La commande suivante me donnerait un affichage de toutes les connexions sur l'interface ‘ens3’ et les transactions de données :
|
1 2 |
sudo su iftop |
Une méthode plus simple si l'objectif est de capturer le trafic de données pendant une durée déterminée :
|
1 |
iftop -t -s 30 |
La commande ci-dessus résumerait les transactions de trafic de données pour les 30 secondes à venir et, une fois ce temps écoulé, fournirait un tableau listant l'ensemble de l'utilisation des données et des taux de transfert.
Bien qu'iftop fournisse des taux de transfert en direct, il ne stocke pas les données et ne dispose pas d'un tableau de bord pour nous permettre de visualiser et de comprendre intuitivement les tendances. Par conséquent, si nous voulons voir les taux de transfert de données en direct, nous recommandons iftop. Pour la surveillance du trafic de données sur une période plus longue, nous recommandons vnStat.
Nous espérons que vous pourrez utiliser ce guide à votre avantage et appliquer les bases de l'utilisation de vnStat et iftop pour surveiller la consommation de données au sein d'une VM.
Commentaires
Aucun commentaire pour l'instant. Soyez le premier.