Comment répondre aux questions suivantes:
Cet article est encore une ébauche
On part du général vers le particulier, c'est à dire l'état général de la machine, puis d'une ou quelques métrique pour enfin aller au détail processus par processus. Ce faisant on évite de se focaliser sur un problème local et de louper un problème plus important au niveau global.
Avant de qualifier un bon ou un mauvais fonctionnement, il faut l'étalonner (i.e. connaître les limites théorique et pratique). Deux exemples pour illustrer:
open() "/var/lib/dehydrated/acme-challenges/license.php" failed (2: No such file or directory)
, c'est “juste” un client web qui scan. Ça ne veut pas dire que c'est sans importance mais ce type de message a toute chance de faire partie du bruit de fond. On cherche d'abord ce qui sort du bruit de fond.SYSLOG.PRIORITY
par exemple) permet de hiérarchiser la recherche dans les logs et éventuellement d'ajuster la verbosité de certaines applications (en plus ou en moins d'ailleurs) pour faciliter la recherche de la cause d'un problème.Outils en vracs:
load
(le load est un indicateur qui -avec N le nombre de processeurs dont dispose la machine- dit en gros: en dessous de N, ça va, au dessus le système n'est plus “temps réél”: les questions arrivent plus vite que les réponses). Le load
est donné sur:
Un système parfaitement fonctionnel au niveau matériel mais surchargé, a du mal à indiquer l'origine d'un problème. Par exemple, si il y a une surcharge au niveau des disque (le temps d'accès I/O
va s'allonger) alors le moindre processus qui fait une demande d'accès disque va se retrouver dans le top des consommateurs d'I/O
disque pour un instant, puis ça sera le suivant. Du point de vue de l'administrateur système, c'est le syndrome du “tous coupables”. Pour déterminer le véritable coupable dans ce type de situation, il faut monitorer pendant la montée en charge avant que la charge ne sature le système.
Lorsqu'il y a un problème d'ordre matériel, alors par construction, la remontée d'information ne sera pas fiable. Si le cpu et/ou la RAM renvoie de fausses informations, il y a toute chance que le système plante. Ça peut être aussi le cas d'un composant sur la carte mère. Je me demande même si dans le cas d'un contrôleur disque défaillant, celui ci pourrait introduire de la latence qui ne sera pas comptabilisé ni dans la consommation des I/O
disques générales ni par processus mais l'IOwaitTime
du CPU pourrait trahir ce genre de comportement.
Dans ce genre de cas, on va chercher à mettre en cause composant par composant en essayant de les faire échouer pour savoir à qui on peut faire confiance. Tests de la mémoire RAM (memtest86, memtester), test de surcharge du CPU (stress test, cpu burn). Ces tests sont plus compliquer à mener car ils impliquent au mieux un service dégradé ou arrêté et au pire des dégâts irréversible (un cpuburn sur un microprocesseur sans radiateur va le griller).