Frage Ihre Fehlerbehebungsregeln, Vorgehensweise zur Fehlerbehebung [geschlossen]


Haben Sie allgemeine Regeln, auf die Sie zurückgreifen können, wenn Sie ein schwieriges Netzwerk- / Hardware- / Softwareproblem lösen müssen?

Bsp .: "Ich isoliere die Ursache des Problems, indem ich ein Peripheriegerät mit einem zweiten Computer teste" oder "Ich entferne so viel Hardware wie möglich, um das Gerät einzuschalten, und füge dann Komponenten einzeln hinzu, bis ich das Problem reproduzieren kann" , usw.


21


Ursprung


Vielleicht sollte ich den Titel bearbeiten. ich weiß nur jemand wird antworten "danke! ich bin stolz darauf" ;-) - username


Antworten:


Nur eine Liste von Punkten, die ich für mich geschrieben habe, nachdem ich eine Weile mit einem Problem gekämpft hatte:

  1. Was ist dein Hauptziel ? Sollte klar und als angegeben werden prägnant. Das Ziel sollte sehr sein besonders. Es sollte nicht sein Allgemeines. Vorzugsweise ein Satz.
  2. Was ist dein Problem ?
  3. Gibt es nur ein Problem oder viele ? Wenn es viele gibt, löse sie eins nach dem anderen.
  4. Versuchen Sie, das Problem mit zu reproduzieren unterschiedliche Bedingungen. Kann es in allen möglichen reproduziert werden Bedingungen oder nicht? Sagt es irgendetwas über die Natur des Problem ?
  5. Wenn es ein dringendes Problem ist, ist es da ein Problemumgehung ? Versuchen Sie, als zu finden viele Workarounds wie möglich.
  6. Versuchen Sie es als viele Vermutungen wie möglich auf was ist die Ursache von Ihr Problem.
  7. Versuche deine Vermutungen zu beweisen, Experiment mit dem System.
  8. Konse- quent sein in dem, was du versuchst machen. Tun Sie eine Sache nach der anderen.
  9. Bleib dran von dem, was du machst, was du bereits versucht hast.
  10. Tun nicht abweichen von deiner  Hauptziel. Überprüfen Sie ständig, ob  Du löst immer noch deine Hauptsache  Problem, kein Unterschied.
  11. Tun nicht fixieren entweder.

Es gab auch eine große Liste von Debugging-Regeln, es war in einem PDF-Formular mit Beispielen und Erklärungen für jede der Regeln. Ich konnte das PDF nicht schnell finden, aber ich denke, das ist ein Poster der Liste:

enter image description here


16





  • Wenn das Problem internetbezogen ist, ist es wahrscheinlich das DNS.

  • Wenn das Problem schwer zu diagnostizieren ist, ist es wahrscheinlich der RAM.

  • Wenn das Problem bei einer Windows-Arbeitsstation auftritt, ist es wahrscheinlich am schnellsten, es neu zu erstellen.

  • Wenn das Problem an einem Freitag ist, ist es wahrscheinlich etwas Ernstes.


15



Ich wollte einen Witz veröffentlichen, aber es ist überraschend genau! - TessellatingHeckler
Ich mochte # 3; könnte nicht wahrer sein. - Federer


Ich mag es, zurück zu fallen wissenschaftliche Methode.

Von (http://en.wikipedia.org/wiki/Scientific_method)

  1. Definieren Sie die Frage
  2. Sammeln Sie Informationen und Ressourcen (beobachten)
  3. Formhypothese
  4. Experimentieren Sie und sammeln Sie Daten
  5. Daten analysieren
  6. Interpretieren Sie Daten und ziehen Sie Schlussfolgerungen, die als Ausgangspunkt dienen   Punkt für neue Hypothese
  7. Dokument Ergebnisse

Als allgemeine Regel versuche ich immer, meine Grundannahmen zu überprüfen. Hat es Strom, ist es eingesteckt, ist die Verkabelung gut. Es ist sehr ärgerlich, Stunden damit zu verbringen, ein Softwareproblem zu untersuchen, wenn Sie ein losen Kabel haben.

Ich finde es sehr wichtig während der Hypothesenerstellungsphase, so viele mögliche Ursachen des Problems wie möglich zu finden. Dann versuche ich, Ideen zu wählen, die zuerst getestet werden, basierend darauf, wie einfach es zu testen ist und wie wahrscheinlich die Idee ist.

Es ist auch wichtig, Hilfe zu bekommen. Wenden Sie sich an Ihre Mitarbeiter, Lieferanten oder an diejenigen, die mit den fraglichen Systemen am besten vertraut sind. Verbringe nicht viel Zeit mit dem Drehen eines Problems, wenn jemand verfügbar ist, der dir helfen kann, das Problem zu lösen.

O'Reilly hat ein gutes Buch Tools zur Netzwerkfehlersuche Das hat eine Reihe von Schritten, die der wissenschaftlichen Methode sehr ähnlich sind. Ich fand das Buch sehr nützlich und empfehle es sehr. Das Buch geht viel detaillierter und schlägt viele nützliche Werkzeuge vor.

Von Tools zur Netzwerkfehlersuche

  1. Nenne dein Ziel
  2. Definieren Sie das System
  3. Identifizieren Sie mögliche Ergebnisse
  4. Identifizieren Sie und wählen Sie aus, was Sie messen werden
  5. Gegebenenfalls Testparameter und Faktoren identifizieren
  6. Wählen Sie Werkzeuge
  7. Stellen Sie Messungsbeschränkungen her
  8. Überprüfen Sie das experimentelle Design
  9. Daten sammeln
  10. Daten analysieren

Siehe auch:


10



Bestimmt. Schritt 7 ist jedoch etwas humorvoll. Mein Doc endet normalerweise wie "Ja, es ist behoben. Jetzt funktioniert es." - squillman
Ich respektiere die wissenschaftliche Methode, denke, ich glaube, bevor es in Kraft tritt, sollte es einen menschlichen Faktor geben, der durchschaut werden muss. Zum Beispiel muss ich die Quelle des Berichts (die Person, die das Problem meldet) berücksichtigen ... und vorsichtig sein, nicht anzunehmen, dass er / sie eine "vertrauensvolle" Quelle ist (durch Vertrauen, ich meine, er / sie wird ein guter sein Ressource, die mir hilft, die Frage zu definieren, Informationen zu sammeln und meine erste Hypothese zu formulieren). - l0c0b0x


(Diese Highlights sind aus dem Kapitel "Debugging" von "Die Praxis der System- und Netzwerkadministration")

Zwei Dinge zu wissen:

  1. Erfahren Sie, wie die "fixed" Version aussieht.  Vorzugsweise können Sie einen Befehl ausführen, der eine bestimmte Ausgabe liefert, wenn die Dinge funktionieren. Zum Beispiel: Ich versuche herauszufinden, warum SSH nach einem Passwort fragt, wenn ich die Schlüssel richtig eingerichtet habe (oder zumindest dachte ich). Also mein Test ist: "ssh Servername Uptime" und es sollte funktionieren, ohne ein Passwort zu fragen.

  2. Beschreibe das Problem auf der richtigen Ebene.  Ein Benutzer, der sich darüber beschwert, dass er keinen Server anpingen kann, sollte Sie nicht zum Ausführen und Reparieren des Servers abweisen. Die Aufgabe der Person besteht nicht darin, den ganzen Tag herumzusitzen und eine Maschine anzupingen. Sie möchten irgendeine Art von Aufgabe erledigen, wie die Maschine als ihren DNS-Server benutzen. Beispiel: Sobald sich ein Benutzer beschwert hat, dass er eine Maschine nicht um die halbe Welt pingen kann. Ich verbringe den Tag damit, Systemadministratoren in diesem Teil des Unternehmens ausfindig zu machen, um herauszufinden, was mit diesem Computer nicht stimmt. Es wurde stillgelegt und sie waren in Panik, weil sie dachten, dass sie vielleicht die falsche Maschine ausgeschaltet hatten. Ich kontaktierte den Benutzer und sagte: "Abgesehen davon, dass Sie diese Maschine anpingen müssen, was möchten Sie damit machen?". Es stellte sich heraus, dass er einen bestimmten Job ausführen wollte und wenn er die richtige Prozedur verfolgt hätte, wären seine Aufgaben automatisch auf die Ersatzmaschine umgeleitet worden. Ich hatte meinen ganzen Tag und die Zeit der lokalen Systemadministratoren verschwendet. Ein weiterer Grund "Ich kann nicht pingen" ist nicht das Richtige, um zu testen: Häufig sind Firewalls so konfiguriert, dass sie Ping-Pakete löschen, aber andere Pakete zulassen. Testen Sie, was Sie durchmachen möchten.

Zwei Strategien:

  1. Zusatzstoff:  Fügen Sie Komponenten hinzu, bis das Problem beginnt. Das letzte, was Sie hinzugefügt haben, ist das Problem. Beispiel: Webbrowser können nicht mit einem Server sprechen. Zwischen dem Server und dem Benutzer befindet sich ein Load Balancer, eine Firewall, ein Cache und der lokale Web-Proxy des Benutzers. Versuchen Sie zunächst, Abfragen direkt an den Server zu senden, dann durch die LB an den Server, dann durch die Firewall an die LB an den Server usw. usw. jedes Mal, wenn Sie eine Komponente hinzufügen.

  2. Subtraktiv: Entfernen Sie die Komponenten, bis das Problem behoben ist. Das letzte, was Sie entfernt haben, war das Problem: Beispiel: Ein Computer mit Dutzenden von Karten wird nicht gestartet. Entfernen Sie die Karten, bis die Maschine startet.

Zwei Stückchen dummes Glück:

  1. Vergiss alles, was ich gesagt habe. Das Problem wird durch die letzte Änderung verursacht, die an dem System vorgenommen wird.  (das funktioniert 99% der Zeit ... das Problem ist, dass 99% der Zeit nicht wissen, was die letzte Änderung tatsächlich war)

  2. Wenn alles andere schief geht, Nach dummen Dingen suchen.  http://whatexit.org/tal/mywritings/dumb-things-to-check.html  Beispiel: Ein verrücktes Problem konnte einfach nicht erklärt werden. Dann überprüften wir die Konfigurationsdatei: Ein Benutzer hatte es bearbeitet, indem er es in eine Windows-Box kopiert, bearbeitet und dann wieder kopiert hatte. Es hatte jetzt ein ^ M am Ende jeder Zeile. Das haben wir nie bemerkt, weil unser Texteditor diese Tatsache stillschweigend verbarg. Leider hat die Software, die die Konfigurationsdatei gelesen hat, diese ^ Ms in einen non-break Raum verwandelt, der viele andere Prozeduren vermasselt hat.


10





Allgemeine Praktiken, an die ich mich während des gesamten Prozesses erinnere:

  1. Schreibe alles auf, was ich mache.
  2. Nehmen Sie immer nur eine Änderung vor.
  3. Wenn möglich, kehren Sie die Änderung um, bevor Sie einen anderen versuchen, es sei denn, ein bestimmter Fortschritt wird gemacht.

Während der Fehlersuche definiert sich hier meine grundlegende Methodik:

  • Wenn das System läuft und gut läuft, bevor es ein Problem gibt, versuche ich zu sehen, was es macht. Joe Richards erklärt warum viel besser als ich in diesem kurzen Raum könnte.
  • Ich beginne mit der einfachsten Lösung. Zum Beispiel, keine Netzwerkverbindung? Überprüfen Sie die physische Schicht. Ich kann Ihnen nicht sagen, wie oft unterbrochene Verbindungsprobleme kein Serverproblem waren, sondern ein Netzwerkkabel, das halb oder schlecht angeschlossen war.
  • Ich versuche, alle Symptome, die ich von allen möglichen Quellen sehen kann, zu erfassen, bevor ich mit den Änderungen beginne.
  • Ich führe vorläufige diagnostische Tests durch. Wenn ich zum Beispiel erfahren habe, dass ein Server ausgefallen ist, verwende ich zuerst ping und nbtstat (Windows), um dies zu überprüfen. Das Problem könnte am fernen Ende liegen (um sich ein altes Tech-Control-Sprichwort der Air Force zu leihen).
  • Ich habe keine Angst, die Forschung zu machen. Google, support.microsoft.com, eventid.net und solche Seiten sind dein Freund.
  • Ich habe keine Angst, um Hilfe von der Gemeinschaft zu bitten. Nicht nur Sites wie serverfault.com, aber ich habe eine gute Auswahl an Leuten, denen ich vertraue und respektiere auf Twitter, mit denen ich in Kontakt bleibe.
  • Ich bewerte die Antworten, die ich finde, mit dem, was ich sehe. Ich gehe nicht davon aus, dass eine Lösung die richtige ist, bis ich genug über die Beweise, die ich gesehen habe, mit dem, was in der Lösung berichtet wird, machen kann.

6





Einstellungen, die ich versuche zu halten:

  • Absolutes Vertrauen, dass Ursache und Wirkung funktionieren und nichts magisch ist. Nichts passiert, das ist eigentlich komisch, nur Dinge, die ich nicht verstehe.
  • Absolutes Vertrauen, dass, wenn ich es weiter schiebe, ich es lösen werde (das kann beinhalten, es zu jemandem zu bringen, der wissenswerter ist, lernt, um Hilfe bittet, harte Arbeit, usw.).
  • Das Grummeln darüber, wie ein Setup, ein Programm oder ein Szenario schlecht gestaltet oder wirklich dumm ist, hilft einfach nicht, also tu es nicht. (Ich finde das schwer, Murren macht Spaß).

Das sind Verhaltensweisen, die für mich hilfreich sind - sie halten mich auf, meine Arme in die Luft zu werfen, etwas "Bizarres" zu erklären und dann aufzugeben oder unglücklich zu werden, weil es sich "unlösbar" anfühlt.

Ich denke über Fehlerbehebung nach:

  • Systeme haben viele Teile, wenn sie miteinander verbunden sind oder zufällig konfiguriert sind, funktionieren sie nicht wie gewünscht. Es gibt ein oder zwei sehr spezifische Konfigurationen, die funktionieren werden - von all den Millionen von Möglichkeiten, Ziegel und Metall zu stapeln, nur einige sind Brücken und nur eine oder zwei sind gut genug, um Brücken zu bauen. Die Ursache könnte ein Zeichen in einer Textdatei oder ein fehlgeschlagener Server sein, aber jeder Teil muss richtig sein, damit das Ganze richtig ist. Ich muss bereit sein, bei Bedarf gründlich und sorgfältig zu sein. Systeme können nicht "die Show muss weitergehen".
  • Sie beginnen mit einem ganzen System wie einer Karte, Sie stellen sich eine Wolke von Wahrscheinlichkeiten vor, die über der Karte schweben und darstellen, "wo das Problem liegt" und Ihre Aufgabe ist es, Erfahrung zu nutzen und Tests zu finden, um die Wahrscheinlichkeit von einigen Gebieten wegzudrängen um es auf Punkte zu reduzieren, die Problemstellen mit hoher Wahrscheinlichkeit sind, und diese dann anzugreifen. Das kommt auf den Ursache-Wirkungs-Punkt zurück - das Problem liegt im System, es ist keine Magie. Es ist ein Problem, das existiert, damit es irgendwo existieren muss.
  • Alles kann beliebig eingerichtet werden. Die einzige Möglichkeit, ein Verhalten als "OK" und ein anderes als "ein Problem" zu definieren, ist, dass das, was jemand bekommt, nicht das ist, was er will. Sie müssen verstehen, was sie wollen, was sie klar und gezielt bekommen.

Der Prozess der Fehlerbehebung:

  • Worin besteht das Problem. Stellen Sie sicher, dass Sie es sehen und reproduzieren können, so dass es keine Missverständnisse gibt. So oft sind Probleme durch mehrere Leute in unserem Helpdesk passiert, bis sie mich erreichen, aber niemand kann mir erklären, was das Problem wirklich ist.
  • Es ist wieder rekursive Bisektion - teile und herrsche, binäre Suche - Du kommst mit einem Test, der beweist, ob das Problem diese Seite des Tests ist, oder die Seite, und mache den Test so, dass so viel wie möglich eliminiert wird. Wiederholen bis gelöst.
  • Nicht lernen, wenn Sie es vermeiden können - besser, das Datenbankkonto zu sperren und zu beweisen, dass das Problem immer noch auftritt, wenn die Datenbank nicht beteiligt ist, als stundenlang zu lernen, wie die Datenbank verwendet wird.
  • Es ist viel zu einfach, mich selbst zu finden und zu denken "Ich weiß nicht, was ich als nächstes tun soll". Beachten Sie, wenn das passiert, und gehen Sie zurück zu Tests, die das Problem lokalisieren.

Das Internet funktioniert nicht? Überprüfen Sie das Problem und finden Sie heraus, dass es sich um eine Website handelt, zu der Sie nicht gelangen können. Schnelltests beziehen sich auf ihre Internetverbindung (funktioniert), lädt sie für mich (nein). Schnelltests zeigen auf die Website. Wenn ich sehe, dass das Problem für mich passiert, habe ich die Wahrscheinlichkeit schnell weg von ihrem PC, Browser, DNS, Benutzer-Account-Office-Firewall usw. geschoben.

Also lädt die Seite nicht, was nun? Das ist noch nicht fixierbar, also suchen Sie nach Stellen, um das Problem in ein kleineres zu zerlegen. Ist der Server eingeschaltet? Ruft es an? funktioniert DNS? Ja. Antwortet der Dienst auf Port 80? Nein. Läuft der Service? Nein. Fängt es an? Nein. Gibt es Fehler im Ereignisprotokoll / Logfiles? Ja! Was sagen Sie?

Dies ist eine effiziente und schnelle Fehlerbehebung, da es sich stets darauf konzentriert, den Umfang des Problems einzugrenzen. Wenn ich ihren Bericht akzeptiere, dass das Internet nicht funktioniert, würde ich irrtümlich denken, dass es ein Verbindungsfehler ist. Wenn ich meine erste Sichtung akzeptiere, dass sie nicht für sie belastet, verschwende ich Zeit auf ihrem Computer und denke, dass es Schuld ist.

Teile von "Dingen, die es nicht sein können" so groß wie möglich aus.

Verstehen Sie das System. Je mehr allgemeines Wissen ich über ein System habe, desto leichter wird es. Wo ich ein schwaches Verständnis habe, sind Probleme einschüchternder, schwieriger, langsamer und führen eher zu einer Problemumgehung als zu einer Behebung oder zu einer großen langweiligen langsamen Reparatur (Neuinstallation) als eine kleine, präzise chirurgische Lösung.


6





Generell frage ich "Was hat sich verändert, das könnte dieses Problem verursacht haben"? Die meisten Probleme werden durch Änderungen an bekannten guten Konfigurationen verursacht. Wenn Sie feststellen können, wer die Änderung vorgenommen hat, erhalten Sie normalerweise Ihre Antwort.


4





Ich denke, es ist eine Fähigkeit, keine Wissenschaft. Es gibt Zeiten, in denen Sie den falschen Weg gehen, aber zum größten Teil:

  • Haben Sie ein gutes Grundverständnis für alle damit verbundenen Technologien - Netzwerk, Hardware, Betriebssystem, Software, Entwicklung, etc. - wird Ihnen helfen, einige dieser "falschen Wege" zu beseitigen
  • denke basic - springe nicht zum kompliziertesten Szenario, weil es in deinem Kopf ist, führe deine grundlegende Fehlersuche durch und lass es dich führen.

Ich hatte einmal meinen Chef, der mich mit einem "leitenden" Ingenieur am Telefon anrief - er sagte mir, dass er es getan hat ein Server, der keine Verbindung herstellen konnte und er hatte versucht das Kabel doch noch keine Freude zu machen. Ich konnte im Hintergrund wie ein UPS mit Batterien piepen hören. Ich fragte ihn, ob er Aktivität auf dem Schalter sehen könnte, er sagte nein. Ich fragte ihn, ob das Piepen von der UPS käme, er sagte ja, ich fragte ihn, ob er überhaupt Lichter im Regal sehen könne, er sagte nein ... Schau über deine Nase hinaus - es hilft!


2