Monitoring d’interface réseau en temps réel sur Linux avec IFTOP

Je cherchais à voir quels process consommaient le plus de bande passante sur un serveur Linux, et j’ai découvert iftop. Une fois installé (avec APT ou YUM, dans vos repository habituels), il suffit de lancer la commande suivante pour avoir le monitoring de vos interfaces réseaux :

1
ikki:~# iftop

Le résultat est présenté sous la forme d’une interface semi-graphique type Minitel. Un ensemble de raccourcis sont disponibles :

  • h : afficher l’aide
  • t : regrouper les lignes par destinataires
  • s : regrouper les lignes par sources
  • p : afficher les ports
  • P : pause du rafraichissement
  • 1/2/3 : trier par la colonne, 1, 2, ou 3.
Monitoring d'interface réseau en temps réel sur Linux avec iftop

Monitoring d’interface réseau en temps réel avec iftop

Note: il est possible de lancer iftop avec des paramètres, par exemple pour filtrer seulement sur certains réseaux, ports, ou pour spécifier une interface.

Si vous voulez plus d’informations, direction la man page ! ;)

Afficher un rapport sur l’utilisation de votre serveur MySQL avec mysqlreport

La commande SHOW STATUS affiche un certain nombre d’informations importantes sur votre serveur MySQL et sur son utilisation. Le script mysqlreport permet d’extraire ces données, et de les afficher dans un rapport facile à lire.

Il suffit de télécharger l’exécutable et de le lancer avec quelques paramètres (identifiants, etc.). Le résultat ressemble à ceci :

MySQLReport : afficher un rapport sur l'utilisation de votre serveur MySQL

Rapport sur l’utilisation de votre serveur MySQL

MySQLReport : afficher un rapport sur l'utilisation de votre serveur MySQL

Rapport sur l’utilisation de votre serveur MySQL

MySQLReport : afficher un rapport sur l'utilisation de votre serveur MySQL

Rapport sur l’utilisation de votre serveur MySQL

Si vous ne comprenez pas tous les détails du rapport, vous pouvez toujours lire la documentation! ;)

« No space left on device » : vous manquez peut-être d’inodes ?

Il y a quelques temps, j’avais un souci sur un de mes serveurs Linux : certains services ne démarraient plus. En tentant de les démarrer manuellement, j’avais un message d’erreur pour un problème d’espace disque.

1
No space left on device.

Premier réflexe, vérifier l’espace disque restant sur les partitions avec la commande df :

1
monitor01:~# df -h
No space left on device sur votre serveur Linux : commande df

Vérification de l’espace libre sur chaque partition

J’avais bien assez d’espace disponible sur tous les volumes, y compris sur la partition /root. Après quelques recherches, je me suis souvenu qu’il y a un nombre limité de fichiers par volumes, défini par le nombre d’inodes disponibles sur un volume.

Pour info, les inode (contraction des mots « index » et « node ») sont des fichiers descripteurs de données, et contiennent les informations (métadatas) sur les fichiers de données : pour chaque fichier, un seul inode.

Pour connaitre le nombre d’inode, c’est toujours la commande df, mais avec le paramètre « -i« .

1
monitor01:~# df -i

…qui m’a donné le résultat suivant :

No space left on device sur votre serveur Linux : vérification des inodes libres

Vérification du nombre d’inodes libres

Je tenais mon problème, il n’y avait plus d’inode de libre sur la partition /root (malgré le total de 1240320 inodes sur la partition, sic). Ce type de symptôme est souvent caractéristique d’un nombre important de petits fichiers.

Pour savoir où sont ces fichiers, on peut utiliser la commande suivante : elle va chercher le nombre de fichiers dans chaque répertoire. On commence par la racine /.

1
monitor01:~# for x in /* ; do echo $x ; find $x | wc -l ; done

Le résultat est présenté très simplement : le nom du répertoire, et le nombre de fichiers associés. En utilisant ce résultat, on peut continuer avec une commande similaire mais en remplaçant /* par /le-repertoire/* …et ainsi de suite !

Une fois trouvé le bon répertoire (/usr/local/pnp4nagios/var/spool/ dans mon cas), il fallait encore faire le ménage : j’ai tenté un « rm -rf », mais j’ai eu une surprise.

1
2
monitor01:~# rm -rf *
/bin/rm: Argument list too long.

Heureusement, j’ai trouvé la solution (et l’explication) sur cette page :

1
monitor01:~# find . -name '*' | xargs rm

Petite astuce : dans mon cas, il a fallu le faire en plusieurs fois, par groupe de fichiers.

Note : pour la petite histoire, il s’agissait d’un serveur de monitoring Shinken, et le répertoire /usr/local/pnp4nagios/var/spool/ était rempli de fichiers perfdata.XXX. Il s’avérait que le processus NPCD qui doit utiliser ces fichiers n’était pas lancé.

En vrac #74

Revue de presse hebdomadaire par Romain DECKERAu départ prévue pour stocker des liens que je jugeais intéressants, la revue de presse hebdomadaire me permet de partager mes découvertes avec vous. Pour cette 74ème édition : un fan qui reproduit un casque des Daft Punk, les premier serveurs de Google, les cartes de pollution lumineuse en France, des attaques de Dragon Ball au Japon, et des photos prises illégalement en haut de la pyramide de Khéops.

(suite…)

Optimisez votre serveur MySQL avec MySQL Tuning Primer

Vous avez des serveurs de bases de données MySQL mais vous n’êtes pas DBA et ne savez pas comment les optimiser ? Dans ce cas, vous serez intéressé par le script MySQL Tuning Primer qui analyse votre installation et vous fait des recommandations de configuration pour optimiser les performances MySQL. Le script utilise les valeurs retournées par les commandes MySQL « SHOW STATUS » et « SHOW VARIABLES« .

Note : en règle général, les fichiers de configuration exemples de MySQL Server sont un bon départ, mais jamais entièrement adapté à votre système. Le dossier d’installation de ces configurations exemples changent en fonction des distributions et de la méthode d’installation, mais vous pouvez les rechercher sur votre serveur : my-small.cnf, my-medium.cnf, my-large.cnf, my-huge.cnf.

MySQL Tuning Primer Script fait des recommendations pour les points suivants :

Slow Query Log, Max Connections, Worker Threads, Memory Usage, Key Buffer, Query Cache, Sort Buffer, Joins, Temp Tables, Table (Open & Definition) Cache, Table Scans (read_buffer), Table Locking, Innodb Status.

Voici un exemple de recommandations sur mon serveur MySQL (pour le serveur hébergeant ma base WordPress entre autres) :

Comment optimiser MySQL ?

Optimisation MySQL avec MySQL Tuning Primer : résultat du script

Optimisation de votre serveur MySQL

Optimisation MySQL avec MySQL Tuning Primer : résultat du script

Optimisation MySQL avec un script : MySQL Tuning Primer

Optimisation MySQL avec MySQL Tuning Primer : résultat du script

Compatible avec toutes les versions de MySQL supérieures à 3.23, il est très facile à utiliser : il suffit de lui indiquer un compte utilisateur qui peut se connecter au serveur, et le résultat s’affiche au bout de quelques secondes.

Site : MySQL Tuning Primer Script.

Comment vérifier la propagation d’un DNS ?

Lorsque l’on change des paramètres, ou bien les serveurs DNS d’un domaine, ce n’est pas toujours immédiat : c’est ce qu’on appelle le délai de propagation. Suivant les opérateurs/hébergeurs, ce délai de propagation est plus ou moins long.

On peut se retrouver dans certains cas où une fois l’adresse IP vers laquelle pointe un domaine est modifiée, mais cette modification met plusieurs heures à se propager dans le monde.

What’s My DNS est une solution qui permet de vérifier l’état d’une propagation DNS, en effectuant des lookups à partir de serveurs DNS présents dans une quinzaine de pays. L’interrogation peut être des types suivants : A, AAAA, CNAME, MX, NS, PTR, SOA, et TXT.

Vérification de la propagation DNS

Vérification de la propagation DNS

Le résultat est fournit sous la forme d’une liste de serveurs, ainsi qu’une carte.

Comment vérifier la propagation d'un DNS ?

Comment vérifier la propagation d’un DNS ?

Bien pratique lors de vos migrations !