Was ist das erste, was Sie überprüfen, wenn ein unberührter Unix-Server wütend wird?


10

Sie haben also diesen ordentlich eingerichteten Unix-Server und er ist superschnell und funktioniert gut und alles ist monatelang großartig, und plötzlich tauchen alle Arten von seltsamen Fehlern für eine Vielzahl verschiedener Dienste auf, und keiner von ihnen macht für sich genommen viel Sinn viel weniger zusammen.

Was sind billige Dinge, die Sie überprüfen sollten, sobald Sie Ihre SSH-Sitzung auf dem Computer haben?

Ich interessiere mich besonders für Trauma-Geschichten, die nicht offensichtliche Befehle und seltene Situationen hervorheben, aber ich denke, was offensichtlich ist, variiert von Person zu Person, sodass wir sie einfach alle frei auflisten können.

Antworten:


19

Erste Bestellung: Reagiert es?

Wenn Sie sich nicht anmelden können, treten größere Probleme auf. Dies gibt es im Allgemeinen in zwei Varianten: Hardwarefehler und Softwarefehler. Beide sind potenziell katastrophal. Überprüfen Sie zuerst den allgemeinen Hardwarezustand, um DFA-Fehler zu vermeiden. In der Regel reicht ein einfacher Blick aus.

Zweite Ordnung: Sind die zugrunde liegenden Strukturen des Systems in guter Gesundheit und Ordnung?

Überprüfen Sie die "Goldene Triade" der Systeme:

  • Für die Verarbeitung steht genügend CPU-Zeit zur Verfügung
  • Es ist genügend Speicherplatz für die Speicherung frei
  • Für Workloads ist genügend Speicher frei

In den letzten Jahrzehnten hat sich die Triade zu einem "Quad" entwickelt, das Kommunikation (Vernetzung) umfasst:

  • Konnektivität ist funktional, reaktionsschnell und hat Kapazität

Dritte Ordnung: Wie schwer ist das Problem?

Welche Programme oder Dienste sind betroffen? Ist es in absteigender Reihenfolge des Schweregrads systemisch (systemweit), gruppiert (eine Gruppe von Programmen) oder isoliert (ein bestimmtes Programm)? Programmcluster werden normalerweise ausgelöst, weil ein bestimmter zugrunde liegender Dienst ausgefallen ist oder nicht mehr reagiert. Systemische Probleme hängen manchmal damit zusammen (denken Sie an DNS- oder IP-Konflikte), aber normalerweise ist es wichtig zu wissen, wo Sie suchen müssen.

Vierte Ordnung: Stellen Diagnosetools nützliche Daten bereit, die für das Problem relevant sind? Nachdem Sie nun Informationen über den Zustand des Systems (zweite Ordnung) und die Teile des Systems (dritte Ordnung) haben, sollte es Ihnen leicht fallen, das Problem einzugrenzen.

Fehlermeldungen oder Protokolldateien sollten ein häufiger Wegpunkt auf dieser Reise sein.

CPU-Probleme:

  • loadav
  • oben
  • strace

Speicherplatz- / E / A-Probleme:

  • df
  • du
  • lsof
  • iostat
  • vmstat

Speicherprobleme:

  • kostenlos

Konnektivitätsprobleme:

  • Klingeln
  • route (und arp und rarp und freunde)
  • iptables, ipchains, ipfw (für die BSD-Leute da draußen)
  • traceroute oder mtr
  • Hosts, nslookup oder dig
  • netstat

Häufigste Beschwerde (die ich höre):

E-Mails werden nicht schnell genug zugestellt (mehr als eine Minute vom Senden bis zum Empfang durch den Empfänger), oder E-Mails lehnen meinen Versuch ab, sie zu senden. Dies hängt normalerweise damit zusammen, dass der Ratenbegrenzer in Postfix während eines Spam-Sturms aktiviert wird, was sich auf die Fähigkeit auswirkt, interne Zustellungen zu akzeptieren.

Ein Beispiel aus dem wirklichen Leben:

Dies ist jedoch nicht immer der Fall. Einmal blieb das Problem unabhängig vom Neustart des Dienstes bestehen. Nach 3 Minuten war es Zeit, sich umzusehen. Die CPU war ausgelastet, aber unter 100%, aber die Last war auf einer Box mit nur 2 Kernen auf 15 gestiegen und drohte höher zu steigen. Der Befehl top ergab, dass das Mailsystem zusammen mit dem Mailscanner auf Hochtouren war, aber keine untergeordneten Amavis-Prozesse zu sehen waren. Das war der Hinweis - der Befehl für die Mail-Warteschlange (mailq) zeigte mehr als 150 nicht zugestellte Nachrichten an, von denen über 80% Spam warenin den letzten 20 Minuten. Eine schnelle Anpassung, um den Ratenbegrenzer zu senken (was die Aufnahmerate des Spam-Sturms verringerte) und gleichzeitig die Anzahl der untergeordneten E-Mail-Scanner-Prozesse zu erhöhen (um den Rückstand zu verarbeiten), gefolgt von einem Neustart des Dienstes, löste das Problem und das System war in der Lage Lieferungen in kurzer Zeit abzuschließen.

Die Ursache des Problems war, dass der übergeordnete Amavis-Prozess tot umgekippt war und die untergeordneten Prozesse schließlich alle ihren Lauf genommen hatten (sie beenden sich nach so vielen Scans selbst, um Speicherverluste zu verhindern). Es gab also SMTP-Prozesse in Postfix, die versuchten, ... Thin Air ... zu kontaktieren, um den erforderlichen Spam- / Virenscan durchzuführen. Die von mir verwendete Distribution hatte veraltete Pakete, die niemals aktualisiert werden würden. Da die Installation in ungefähr einem Jahr ersetzt werden sollte, habe ich die Installation manuell auf die neueste Version "überschrieben", die mehrere Fehlerkorrekturen enthielt. Ich hatte seitdem nicht mehr das gleiche Problem.


5

normalerweise "wer" gefolgt von "zuletzt"

Ein Haufen Probleme auf Maschinen, die ich im Laufe der Zeit verwaltet habe, war auf eine sehr lose Definition von "unberührt" zurückzuführen - oft hat jemand etwas getan :)


4

Nun, ich werde anfangen.

Dieses eine hat mich einmal gebissen, ich habe Stunden damit verbracht, Tausende verschiedener Dinge auszuprobieren, Dienste hier und da zu deaktivieren, neu zu starten usw. Was war das Problem? Völlig kein Speicherplatz mehr.

Also, hier ist das erste, was ich beim Debuggen eines plötzlich gestörten Servers tippe:

df -h

Das vergesse ich jetzt nie. Es hat mir nur viel verschwendete Mühe erspart. Ich dachte, ich würde teilen.



1

Wenn Sie können, würde ich immer versuchen, alle Netzwerkkarten außer der Verwaltungs-Netzwerkkarte herunterzufahren.


1

Überprüfen von dmesg auf Fehler - Ich beginne normalerweise mit a dmesg | tail, da wahrscheinlich immer noch etwas schief geht und der Server immer noch versucht, das zu tun, was den Fehler verursacht.


0

Das erste, was ich überprüfe, ist 'top' (gibt es irgendwelche seltsamen Prozesse; solche, die den Speicher oder die CPU-Zeit belasten.)

Wenn dort nichts auftaucht, überprüfe ich, wer sich aus irgendeinem Grund auf meinem Computer befindet.

Möglicherweise wurde ein Dateisystem abgesetzt. Überprüfen Sie mit einem Aufruf von 'cat / etc / mtab' und dann 'fstab', ob beim Booten alles richtig läuft.

Überprüfen Sie die Verfügbarkeit, um sicherzustellen, dass die Anzahl der Benutzer auf der Box angemessen ist (sollten nur Sie sein), und durchsuchen Sie dann var / log / auth.log, um festzustellen, ob dort etwas schief läuft.

Das sind Allheilmittel. Abhängig von den Fehlern, die Ihre Box auslöst, müssen Sie möglicherweise bestimmte Prozesse untersuchen, die die Probleme verursachen.


0

top df -h und überprüfen Sie IMMER / var / log, um sicherzustellen, dass die Partition nicht voll ist. Das hat mich ein paar Mal total zum Schmelzen gebracht.


0

df -ha

um zu überprüfen, ob die Festplatten voll sind und jemand keine Warnungen erhalten hat

htop oder top

Die Überprüfung der Speicher- und CPU-Auslastung ist nicht ungewöhnlich hoch.

Wenn die Box nicht reagiert, gehe ich in den VM-Ware-Client und überprüfe von dort aus die CPU / den RAM.


0

Das Ausführen von so etwas wie (at) sar auf dem Host ist fast obligatorisch. Die Nützlichkeit, historische Snapshots von CPU-, Netzwerk-, Speicher- und Festplatten-E / A (unter anderem) abrufen zu können, kann nicht unterschätzt werden.

Es gab viele Male, in denen ich einen Fehler diagnostizieren konnte, indem ich untersuchte, was der Gastgeber in den letzten 24 Stunden tat, und sah, wann die Dinge schief gingen.


0

Unter Linux überprüfe ich normalerweise dmesg und / var / log / messages oder / var / log / syslog. dmesg zeigt an, ob es sich um einen plötzlichen Hardwarefehler handelt. In den Systemprotokollen werden viele andere Probleme angezeigt.


0

Ich nehme an, das erste, was ich mache, ist eine Speicherplatzprüfung (wie andere erwähnt haben). Wenn die einfachen Überprüfungen kein "häufiges" Problem aufdecken, werde ich weitere Untersuchungen durchführen.

Eine Sache, die ich gerne mache, ist eine Momentaufnahme des Systems. Ich kann diese später durchsuchen, um nach etwas zu suchen, das mir aufgefallen ist.

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

Von dort aus ist die Fehlerbehebung 101, aber ich finde es etwas schneller, die gespeicherten Protokolle zu durchsuchen, und wenn sich der Zustand während der Anmeldung bessert, muss ich etwas tun oder nach Änderungen suchen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.