Teil 3.1 – Vorbereiten der Problembehandlung

Gilt für:   .NET Core 2.1, .NET Core 3.1, .NET 5

Dieser Artikel hilft Ihnen, die Problembehandlung als Ganzes zu berücksichtigen.

Voraussetzungen

Wie in den vorherigen Teilenist dieser Teil strukturiert, um den Schwerpunkt auf die Zu befolgende These und die Prinzipale zu legen, wenn Sie mit der Problembehandlung beginnen. Es gibt keine Voraussetzungen. Sie sollten jedoch bereits die folgenden Elemente eingerichtet haben, wenn Sie alle Schritte dieser Schulung bisher ausgeführt haben:

  • Nginx verfügt über zwei Websites:
    • Die erste Website lauscht mithilfe des Hostheaders "myfirstwebsite" ( ) auf Anforderungen http://myfirstwebsite und leitet die Anforderungen an die Demo ASP.NET Core Anwendung weiter, die an Port 5000 lauscht.
    • Die zweite Website lauscht mithilfe des Hostheaders "jsamb ( ) " auf Anforderungen http://buggyamb und leitet die Anforderungen an die zweite ASP.NET Core Beispielanwendung weiter, die an Port 5001 lauscht.
  • Beide ASP.NET Core Anwendungen werden als Dienste ausgeführt, die automatisch neu gestartet werden, wenn der Server neu gestartet wird oder die Anwendungen nicht mehr reagieren oder fehlschlagen.
  • Eine lokale Linux-Firewall ist aktiviert und konfiguriert, um SSH- und HTTP-Datenverkehr zuzulassen.

Ziel dieses Teils

Während Sie sich auf die Behandlung von Problemen vorbereiten, die auftreten können, wenn Sie über die zuvor beschriebene Konfiguration verfügen, bietet dieser Teil Anleitungen zum Abrufen von Informationen zum Ausführen von Prozessen unter Linux.

Ist alles in Linux eine Datei?

Möglicherweise haben Sie den Ausdruck "Alles in Linux ist Datei" gehört. Ist dieser Ausdruck wirklich der Fall? Obwohl sich diese Artikelreihe nicht auf Linux-Expertise konzentriert, ist das Linux-Betriebssystem stark darauf ausgelegt, alles über das Dateisystem verfügbar zu machen. In diesem Teil wird versucht, tiefer in die Gründe zu gehen.

Laut Wikipediabasiert Linux auf einem speziellen Dateisystem namens procfs.

Das Proc-Dateisystem (procfs) ist ein spezielles Dateisystem in Unix-ähnlichen Betriebssystemen, das Informationen zu Prozessen und anderen Systeminformationen in einer hierarchischen dateiähnlichen Struktur darstellt. Dies bietet eine bequemere und standardisiertere Methode als herkömmliche Ablaufverfolgungsmethoden oder direkten Zugriff auf den Kernelspeicher für den dynamischen Zugriff auf Prozessdaten, die im Kernel gespeichert sind. In der Regel werden Daten zum Startzeitpunkt einem Bereitstellungspunkt namens /proc zugeordnet. Das Proc-Dateisystem fungiert als Schnittstelle zu internen Datenstrukturen im Kernel. Sie können die Datei verwenden, um Informationen über das System abzurufen und bestimmte Kernelparameter zur Laufzeit (sysctl) zu ändern.

Wenn Sie also ein Superuser auf einem Linux-basierten Computer sind, können Sie über eine Dateisystemdatei auf Informationen zu jedem ausgeführten Prozess zugreifen. Wenn alles in Linux eine Datei ist,ist dies ein Prozess.

Sie erinnern sich vielleicht, dass wir dies in früheren Teilen dieser Reihe kurz erläutert haben: Ein Prozess wird als Datei unter dem Verzeichnis /proc/ betrachtet. Dieses Verzeichnis ist hierals spezielles Verzeichnis definiert:

"Dieses spezielle Verzeichnis enthält alle Details zu Ihrem Linux-System, einschließlich Kernel, Prozessen und Konfigurationsparametern."

Wenn Sie dieses Verzeichnis mithilfe des ll /proc/ Befehls untersuchen, werden mehrere "Dateien" und "Ordner" angezeigt. Beispielsweise wird eine "Datei" mit dem Namen /proc/meminfo angezeigt. dass, wenn Sie den cat /proc/meminfo Befehl ausführen, die folgenden detaillierten Informationen zur Speicherauslastungsstatistik des Servers liefert:

Screenshot des Befehls "cat meminfo".

Entsprechend werden beim Ausführen des cat /proc/cpuinfo Befehls die folgenden Serverprozessorinformationen angezeigt:

Screenshot des Befehls "cat cpuinfo".

Wenn Sie Informationen zur Version des Linux-Betriebssystems abrufen möchten, können Sie cat /proc/version Befehle verwenden:

Screenshot des Befehls "Cat-Version".

Und so weiter.

Ist ein Prozess wirklich eine Datei?

In Bezug auf Prozesse wird jeder ausgeführte Prozess auf Ihrem Linux-System als Unterverzeichnis unter dem /proc/ Ordner angezeigt, und jeder Ordner wird als Prozess-ID benannt:

Screenshot des Befehls "ll proc".

Wenn Sie eines der Prozess-ID-Verzeichnisse untersuchen, werden einige andere Dateien und Ordner angezeigt. Sie müssen dem Befehl mithilfe von "sudo" ein Präfix vorangestellt werden, um einige der folgenden Informationen abzurufen:

Screenshot des Befehls "sudo".

Überprüfen Sie den cmdline für einen der Prozesse. Führen Sie den Befehl sudo cat /proc/19933/cmdline aus. (Die PID für den Prozess, den Sie auswählen werden, unterscheidet sich). Die Ausgabe lautet wie folgt. (Hierbei handelt es sich um die in Teil 2 installierte und konfigurierte"- Und "WiesnAmb"-Anwendung.

Screenshot des Befehls "sudo cat".

Sehen wir uns abschließend die Umgebungsvariablen für den Prozess Desamb-Vorgangs an, indem wir den sudo cat /proc/19933/environ Befehl ausführen. In einem vorherigen Teil wurden Sie angewiesen, die ASPNETCORE_URLS Umgebungsvariable zu verwenden. Dies wurde erstellt, um die Webanwendung anzuweisen, Port 5001 zu überwachen:

Screenshot des Befehls "sudo cat environ".

Mithilfe dieser Dateisystemtechnik können Sie viele Informationen zu einem Prozess abrufen.

Der Befehl "ps"

In diesem Artikel werden keine Details zu diesem Befehl behandelt. Der Befehl sollte jedoch hier bei der Erläuterung von Prozessen erwähnt werden, da er eine der einfachsten Möglichkeiten zum Erstellen einer Momentaufnahme der aktuellen Prozesse ist. Es wird empfohlen, die "Man"-Seite mithilfe des Befehls zu öffnen man ps und sie selbst auszuprobieren.

Nächste Schritte

Teil 3.2 : Linux-Task-Manager, Top und Htop

Im nächsten Teil werden einige wichtige Tools und Befehle untersucht, die Sie zur Problembehandlung verwenden können.