Dstat : outil de monitoring complet pour Linux
I. Présentation
Lors des opérations de configuration ou de débogage, il arrive souvent que l'on ait à jouer avec plusieurs commandes de monitoring du système, sous Linux il existe par exemple "free", "vmstat", "iotop" ou encore "iftop". Aujourd'hui nous allons découvrir un outil "pour les gouverner tous", qui va en effet centraliser les fonctions d'une très grande partie des outils de monitoring local sous Linux, il s'agit de dstat.
II. Installation
Cet outil n'étant pas présent par défaut sur les OS Linux, nous allons commencer par l'installer, sous Debian :
apt-get install dstat
III. Utilisation
L'utilisation de dstat est plutôt simple bien que l’outil soit très complet. Il est de base fournis avec un ensemble de plugin et nous pouvons encore en ajouter d'autres ... Faisons un petit tour des fonctionnalités principales. La commande de base "dstat" renvoi l'affichage suivant :
On voit donc ici que dstat nous avertit que si aucune métrique n'a été choisie, l'affichage par défaut affiche les options c, d, n ,g et y. Cela correspond donc aux colonnes d'utilisation globale du cpu, du disque, du réseau, le pagin et du système. Si on souhaite n'afficher qu'une ou quelques unes de ces métriques, il suffit de le préciser. Par exemple pour n'afficher que les statistiques du disque et du réseau :
dstat -dn
Pour que ce soit un peu plus parlant, on peut rajouter une colonne temps qui va indiquer la date et l'heure des métriques affichées. On utilise pour cela l'option "-t" :
dstat -tdn
dstat est un outil intéressant car l'affichage qu'il propose permet l'enregistrement et le suivi des métriques, on peut d'ailleurs préciser un fichier de sortie au format CSV, ce qui nous donnera donc un beau tableau que nous pourrons même ouvrir sur Excel. Par exemple si on souhaite avoir les statistiques toutes les dix secondes de l'utilisation du réseau, du cpu, de la mémoire et de la swap et enregistrer le tout dans un fichier CSV. On utilisera la commande suivante :
dstat -tncms --output /tmp/file.csv 10
L'utilisation de la valeur de temps "10" est là aussi utile, on peut l'ajouter n'importe où dans la commande et cela va faire en sorte qu'une ligne va être générée toutes les 10 secondes (ou autre si on a mis un autre délai). Cependant la dernière ligne affichera toujours de façon dynamique les valeurs réelles par secondes, ce qui est plutôt utile. On peut imaginer utiliser cela dans un benchmark ou une analyse de performance/d'utilisation des ressources d'un outil par exemple. On pourra même insérer une valeur de temps pour mettre fin à notre analyse. Par exemple si l'on souhaite faire une analyse pendant 60 secondes avec une mise à jour toutes les 10 secondes. On pourra utiliser la commande suivante :
dstat 10 6
On va alors avoir un affichage de 6 lignes qui auront été mises à jour toutes les 10 secondes. Plusieurs plugins sont disponibles dans dstat par défaut, on peut les lister via la commande suivante :
dstat --list
On voit donc plusieurs plugins dont certains sont propres à des applications comme "mysql-keys" ou "squid". On peut également se pencher sur les plugins "top" qui permettent l'affichage pour chaque ligne du processus ayant consommé le plus de ressources selon ce que l'on souhaite savoir. Par exemple si l'on souhaite savoir à chaque fois quel processus à utilisé le plus de ressources mémoire et disque, on utilisera la commande suivante :
dstat --top-io--top-mem
Pour résumer, dstat est un outil très utile et très complet qui comblera certainement les lacunes des autres commandes du même genre. Je vous recommande de l'essayer !
Mouai, glances (de nicolargo) est plus utile mais c’est peut être une histoire de goût
enfin peut être pas plus utile, il lui manque la notion de plugins… je vais continuer à creuser dstat, merci pour cette découverte!
je me pose de question avec ce outils sa peux geré un parcs de 28 pc le trafic,viox,… diagnostic et optimisation!!!