Quelle est la première chose que vous vérifiez lorsqu'un serveur Unix intact commence à devenir fou?

10

Donc, vous avez ce serveur Unix parfaitement configuré et il est super rapide et fonctionne très bien et tout est parfait pendant des mois, et soudainement toutes sortes d'erreurs étranges commencent à apparaître pour une variété de services différents et aucun d'eux n'a beaucoup de sens par eux-mêmes , beaucoup moins ensemble.

Quelles sont les choses bon marché que vous devriez vérifier dès que vous obtenez votre session ssh sur la machine?

Je suis particulièrement intéressé par les histoires de traumatismes qui mettent en évidence des commandes non évidentes et des situations rares, mais je suppose que ce qui est évident varie d'une personne à l'autre, nous pouvons donc simplement les énumérer toutes librement.

kch
la source

Réponses:

19

Première commande: est-elle réactive?

Si vous ne pouvez pas vous connecter, il y a de plus gros problèmes en cours. Cela se présente généralement en deux versions: défaillance matérielle et défaillance logicielle. Les deux sont potentiellement catastrophiques. Pour éviter les erreurs DFA, vérifiez d'abord l'état général du matériel - un simple coup d'œil suffit généralement.

Deuxième ordre: les structures sous-jacentes du système sont-elles en bonne santé et en bon ordre?

Vérifiez la "Triade d'Or" des systèmes:

  • Le temps processeur est suffisant pour le traitement
  • Un espace disque suffisant est disponible pour le stockage
  • La mémoire est suffisante pour les charges de travail

Au cours des dernières décennies, la triade s'est développée en un "quad" qui comprend les communications (mise en réseau):

  • La connectivité est fonctionnelle, réactive et a une capacité

Troisième ordre: quelle est la gravité du problème?

Quels programmes ou services sont concernés? Par ordre décroissant de gravité, est-il systémique (à l'échelle du système), groupé (un groupe de programmes) ou isolé (un programme spécifique)? Les grappes de programmes sont généralement déclenchées parce qu'un service sous-jacent spécifique a échoué ou n'a pas répondu. Les problèmes systémiques sont parfois liés à cela (pensez aux conflits DNS ou IP), mais savoir où chercher est généralement la clé.

Quatrième ordre: les outils de diagnostic fournissent-ils des données utiles concernant le problème? Maintenant que vous avez des informations sur la santé du système (deuxième ordre) et quelles parties de celui-ci rencontrent des problèmes (troisième ordre), cela devrait vous permettre de déterminer facilement où se situe le problème.

Les messages d'erreur ou les fichiers journaux devraient être un point de cheminement courant lors de ce voyage.

Problèmes de processeur:

  • loadav
  • Haut
  • strace

Problèmes d'espace disque / d'E / S:

  • df
  • du
  • lsof
  • iostat
  • vmstat

Problèmes de mémoire:

  • gratuit

Problèmes de connectivité:

  • ping
  • route (et arp et rarp et amis)
  • iptables, ipchains, ipfw (pour les gens BSD là-bas)
  • traceroute ou mtr
  • hosts, nslookup ou dig
  • netstat

Plainte la plus courante (que j'entends):

L'e-mail n'est pas envoyé assez rapidement (plus d'une minute entre l'envoi et la réception par le destinataire) ou l'e-mail rejette ma tentative d'envoi. Cela se résume généralement au limiteur de débit de Postfix qui intervient lors d'une tempête de spam, ce qui affecte la capacité d'accepter la livraison interne.

Un exemple concret:

Par contre, ce n'est pas toujours le cas. Une fois, le problème a persisté quel que soit le redémarrage du service; donc après 3 minutes, il était temps de commencer à regarder autour. Le processeur était occupé mais inférieur à 100%, mais la charge avait grimpé à 15 sur une boîte de seulement 2 cœurs, et menaçait d'aller plus haut. La commande supérieure a révélé que le système de messagerie était saturé, avec le scanner de messagerie, mais aucun processus enfant amavis n'était visible. C'était la clé - la commande mail queue (mailq) a montré plus de 150 messages non livrés, dont plus de 80% étaient du spam, au cours des 20 dernières minutes. Un ajustement rapide pour abaisser le limiteur de débit (qui a réduit le taux d'admission de la tempête de spam) tout en augmentant le nombre de processus d'analyse de courrier électronique enfant (pour aider à traiter le backlog), suivi d'un redémarrage du service, a résolu le problème et le système a pu pour terminer les livraisons en peu de temps.

Le problème était dû au fait que le processus parent amavis était mort et que les processus enfants avaient finalement tous suivi leur cours (ils s'arrêtent automatiquement après tant d'analyses pour éviter les fuites de mémoire). Il y avait donc des processus SMTP dans postfix qui tentaient de contacter ... Thin Air ... pour effectuer l'analyse de spam / virus qui était nécessaire. La distribution que j'utilisais avait des packages obsolètes qui ne seraient jamais mis à jour; comme l'installation devait être remplacée dans un an environ, j'ai "surpassé" manuellement l'installation vers la dernière version, qui comprenait plusieurs corrections de bogues. Je n'ai pas eu le même problème depuis.

Avery Payne
la source
5

habituellement "qui" suivi de "dernier"

un tas de problèmes sur les machines que j'ai gérées au fil du temps sont dus à une définition très vague de "intacte" - souvent quelqu'un a fait quelque chose :)

Mark Regensberg
la source
4

Eh bien, je vais commencer.

Celui-ci m'a mordu une fois, j'ai passé des heures à essayer des milliers de choses différentes, à désactiver des services ici et là, à redémarrer, etc. Quel était le problème? Espace disque totalement insuffisant.

Voici donc la première chose que je tape lors du débogage d'un serveur soudainement perturbé:

df -h

Je n'oublie jamais ça maintenant. Cela m'a sauvé beaucoup d'efforts inutiles. Je pensais partager.

kch
la source
2

haut (ou htop)

Oli
la source
1
ou prstat sur solaris.
kch
1

Si vous le pouvez, j'essayerais toujours d'arrêter toutes les cartes réseau, à l'exception de la gestion.

Chopper3
la source
1

Vérification de dmesg pour toute erreur - je commence généralement par un dmesg | tail, car il y a des chances que les choses tournent mal et que le serveur essaie toujours de faire ce qui cause l'erreur.

Andy
la source
0

La première chose que je vérifie est «top» (y a-t-il des processus étranges; ceux qui monopolisent la mémoire ou le temps CPU.)

Si rien ne se passe là-bas, je vais vérifier «qui» pour voir si quelqu'un d'autre est sur ma machine pour une raison quelconque.

Peut-être qu'un système de fichiers a été démonté; vérifiez avec un appel à «cat / etc / mtab» puis «fstab» pour vous assurer que tout se passera bien au démarrage.

Vérifiez la disponibilité pour vous assurer que le nombre d'utilisateurs sur la boîte est raisonnable (ne devrait être que vous), puis parcourez var / log / auth.log pour voir si quelque chose ne va pas.

Ce sont des fourre-tout. Selon les erreurs que votre boîte génère, vous devrez peut-être examiner des processus spécifiques qui causent le problème.

ParoX
la source
0

top df -h et TOUJOURS vérifier / var / log pour s'assurer que la partition n'est pas remplie. Cela m'a fait fondre à plusieurs reprises.

Nolte
la source
0

df -ha

pour vérifier si les disques durs sont pleins et si quelqu'un n'a pas reçu d'avertissement

htop ou top

pour vérifier la mémoire et l'utilisation du processeur n'est pas anormalement élevé.

Alternativement, si la boîte ne répond pas, je vais dans le client vm-ware et je vérifie cpu / ram à partir de là.

Omegatron
la source
0

Exécuter quelque chose comme (at) sar sur l'hôte est presque obligatoire. L'utilité de pouvoir obtenir des instantanés historiques du processeur, du réseau, de la mémoire et des E / S de disque (entre autres) ne peut pas être sous-estimée.

Il y a eu de nombreuses fois où j'ai pu diagnostiquer un défaut en examinant ce que l'hôte faisait au cours des dernières 24 heures et en voyant quand les choses ont commencé à mal tourner.

Gavin McTaggart
la source
0

Sous linux, je vérifie généralement dmesg et / var / log / messages ou / var / log / syslog. dmesg indiquera s'il s'agit d'une panne matérielle soudaine; beaucoup d'autres problèmes apparaîtront dans les journaux système.

pjc50
la source
0

Je suppose que la première chose que je fais est une vérification de l'espace disque (comme d'autres l'ont mentionné). Si les vérifications simples ne révèlent pas de problème "courant", je poursuivrai mes recherches.

Une chose que j'aime faire est de capturer un instantané du système. Je peux les saluer plus tard pour chercher tout ce qui a attiré mon attention.

lsof > /tmp/lsof.tmp &
ps auxfw > /tmp/ps.tmp &
netstat -anp > /tmp/netstat.tmp &

De là, c'est le dépannage 101, mais je trouve un peu plus rapide de récupérer les journaux enregistrés et si la condition disparaît pendant que je suis connecté, j'ai quelque chose à continuer ou à rechercher des changements.

Tourbillon
la source