Website-Suche

Sysdig - ein leistungsstarkes Tool zur Systemüberwachung und Fehlerbehebung für Linux


Sysdig ist ein plattformübergreifendes, leistungsstarkes und flexibles Open-Source-Tool zur Systemüberwachung und Fehlerbehebung für Linux. Es funktioniert auch unter Windows und Mac OSX, jedoch mit eingeschränkter Funktionalität, und kann für Systemanalysen, -inspektionen und -debugging verwendet werden.

Normalerweise würden Sie eine Mischung aus verschiedenen Tools zur Überwachung und Fehlerbehebung der Linux-Leistung verwenden, einschließlich der unten aufgeführten, um die Linux-Überwachungs- und Debugaufgaben auszuführen:

  1. strace – Erkennen von Systemaufrufen und Signalen für einen Prozess.
  2. tcpdump – Überwachung des rohen Netzwerkverkehrs.
  3. netstat – Überwachung von Netzwerkverbindungen.
  4. HTOP – Prozessüberwachung in Echtzeit.
  5. IFTOP – Überwachung der Netzwerkbandbreite in Echtzeit.
  6. LSOF – Zeigt an, welche Dateien von welchem Prozess geöffnet werden.

sysdig integriert jedoch das, was alle oben genannten Tools und viele mehr bieten, in einem einzigen und einfachen Programm, vor allem mit erstaunlicher Container-Unterstützung. Es ermöglicht Ihnen, das reale Verhalten (Stream of Events) von Linux-Systemen und Containern zu erfassen, zu speichern, zu filtern und zu untersuchen.

Es verfügt über eine Befehlszeilenschnittstelle und eine leistungsstarke interaktive Benutzeroberfläche (csysdig), die es Ihnen ermöglicht, die Systemaktivität in Echtzeit zu beobachten oder einen Trace-Dump durchzuführen und für eine spätere Analyse zu speichern. Im folgenden Video können Sie sich ansehen, wie csysdig funktioniert.

Sysdig-Funktionen:

  • Es ist schnell, stabil und einfach zu bedienen und umfassend gut dokumentiert.
  • Kommt mit nativer Unterstützung für Containertechnologien, einschließlich Docker, LXC.
  • Es ist in Lua skriptfähig; bietet Meißel (leichtgewichtige Lua-Skripte) zur Verarbeitung erfasster Systemereignisse an.
  • Unterstützt eine nützliche Filterung der Ausgabe.
  • Unterstützt die System- und Anwendungsverfolgung.
  • Es kann in Ansible, Puppet und Logstash integriert werden.
  • Aktivieren Sie die erweiterte Protokollanalyse.
  • Es bietet auch Linux-Serverangriffe (Forensik), Analysefunktionen für ethische Hacker und vieles mehr.

In diesem Artikel zeigen wir, wie Sie sysdig auf einem Linux-System installieren und es mit grundlegenden Beispielen für die Systemanalyse, Überwachung und Fehlerbehebung verwenden.

So installieren Sie Sysdig unter Linux

Die Installation des sysdig-Pakets ist so einfach wie das Ausführen des folgenden Befehls, der alle Anforderungen überprüft. Wenn alles an seinem Platz ist, wird das Paket aus dem Draios APT/YUM-Repository heruntergeladen und installiert.

# curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash 
OR
curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash

Nach der Installation müssen Sie sysdig als root ausführen, da es Zugriff auf kritische Bereiche wie das /proc-Dateisystem und /dev/sysdig*-Geräte benötigt und das sysdig-probe-Kernel-Modul automatisch laden muss (falls dies nicht der Fall ist); Andernfalls verwenden Sie den Befehl sudo.

Das einfachste Beispiel ist das Ausführen ohne Argumente, dies ermöglicht es Ihnen, den Ereignisstrom Ihres Linux-Systems in Echtzeit anzuzeigen:

$ sudo sysdig

Die obige Ausgabe (Rohdaten) ergibt für Sie vielleicht nicht viel Sinn, für eine nützlichere Ausgabe führen Sie csysdig aus:

$ sudo csysdig 

Hinweis: Um das wirkliche Gefühl dieses Werkzeugs zu bekommen, müssen Sie sysdig verwenden, das Rohdaten, wie wir zuvor gesehen haben, von einem laufenden Linux-System erzeugt: Dies erfordert, dass Sie verstehen, wie man Filter und Meißel verwendet.

Wenn Sie jedoch eine schmerzlose Möglichkeit zur Verwendung von sysdig benötigen, fahren Sie mit csysdig fort.

Sysdig Meißel und Filter verstehen

Sysdig-Meißel sind minimale Lua-Skripte zum Untersuchen des Sysdig-Ereignisstroms, um nützliche Maßnahmen zur Systemfehlerbehebung durchzuführen und vieles mehr. Mit dem folgenden Befehl können Sie alle verfügbaren Meißel anzeigen:

$ sudo sysdig -cl

Der Screenshot zeigt eine Beispielliste von Meißeln in verschiedenen Kategorien.

Wenn Sie mehr Informationen über einen bestimmten Meißel erfahren möchten, verwenden Sie das Flag -i:

$ sudo sysdig -i topprocs_cpu

Sysdig-Filter verleihen der Art der Ausgabe, die Sie aus Ereignisströmen erhalten können, mehr Leistung, sie ermöglichen es Ihnen, die Ausgabe anzupassen. Sie sollten sie am Ende einer Befehlszeile angeben.

Ein einfacher und gebräuchlichster Filter ist eine grundlegende "class.field=value"-Prüfung, Sie können Meißel auch mit Filtern kombinieren, um noch leistungsfähigere Anpassungen vorzunehmen.

Geben Sie Folgendes ein, um eine Liste der verfügbaren Feldklassen, Felder und deren Beschreibungen anzuzeigen:


sudo sysdig -l

Erstellen einer Linux-Systemablaufverfolgungsdatei

Um die sysdig-Ausgabe für eine spätere Analyse in einer Datei auszugeben, verwenden Sie das Flag -w wie folgt.

Sie können die Ablaufverfolgungsabbilddatei mit dem Flag -r lesen:


sudo sysdig -r trace.scap

Die Option -s wird verwendet, um die Menge an Bytes an Daten anzugeben, die für jedes Systemereignis erfasst werden sollen. In diesem Beispiel filtern wir Ereignisse für den mongod-Prozess.

$ sudo sysdig -s 3000 -w trace.scap
sudo sysdig -r trace.scap proc.name=mongod

Überwachen von Linux-Prozessen

Geben Sie Folgendes ein, um Systemprozesse aufzulisten:

$ sudo sysdig -c ps

Überwachen von Prozessen nach CPU-Auslastung

Führen Sie den folgenden Befehl aus, um die wichtigsten Prozesse nach Prozentsatz der CPU-Auslastung zu überwachen:

$ sudo sysdig -c topprocs_cpu

Überwachen von Netzwerkverbindungen und I/O

Führen Sie Folgendes aus, um Systemnetzwerkverbindungen anzuzeigen:

$ sudo sysdig -c netstat

Mit dem folgenden Befehl können Sie die wichtigsten Netzwerkverbindungen nach Gesamtbytes auflisten:

$ sudo sysdig -c topconns

Als Nächstes können Sie die wichtigsten Prozesse auch wie folgt nach Netzwerk-I/O auflisten:

$ sudo sysdig -c topprocs_net    

Überwachen von Systemdatei-I/O

Die Daten, die von Prozessen auf dem System gelesen und geschrieben werden, können Sie wie folgt ausgeben:

$ sudo sysdig -c echo_fds

Um die wichtigsten Prozesse nach Festplattenbytes (Lesen + Schreiben) aufzulisten, verwenden Sie:

$ sudo sysdig -c topprocs_file   

Fehlerbehebung bei der Leistung eines Linux-Systems

Um Systemengpässe (langsame Systemaufrufe) im Auge zu behalten, führen Sie diesen Befehl aus:

$ sudo sysdig -c bottlenecks

Verfolgen der Ausführungszeit eines Prozesses

Um die Ausführungszeit eines Prozesses nachzuverfolgen, können Sie diesen Befehl ausführen und die Ablaufverfolgung in einer Datei speichern:

$ sudo sysdig -w extime.scap -c proc_exec_time 

Verwenden Sie dann einen Filter, um Details eines bestimmten Prozesses (in diesem Beispiel postgres) wie folgt auf Null zu setzen:

$ sudo sysdig -r extime.scap proc.name=postgres

Langsame Netzwerk-I/0 entdecken

Dieser einfache Befehl hilft Ihnen, langsame Netzwerk-I/0 zu erkennen:

$ sudo sysdig -c netlower     

Überwachen von Protokolldateieinträgen

Der folgende Befehl hilft Ihnen, jede Meldung anzuzeigen, die in syslog geschrieben wurde. Wenn Sie an Protokolleinträgen für einen bestimmten Prozess interessiert sind, erstellen Sie einen Trace-Dump und filtern Sie ihn entsprechend heraus, wie zuvor gezeigt:

$ sudo sysdig -c spy_syslog      

Sie können alle Daten, die von einem beliebigen Prozess in eine Protokolldatei geschrieben werden, wie folgt drucken:

$ sudo sysdig -c spy_logs   

Überwachen von HTTP-Serveranforderungen

Wenn Sie einen HTTP-Server wie Apache oder Nginx auf unserem System laufen haben, sehen Sie sich das Anforderungsprotokoll des Servers mit diesem Befehl an:

$ sudo sysdig -c httplog    
sudo sysdig -c httptop   [Print Top HTTP Requests] 

Anzeige von Login-Shells und interaktiven Benutzeraktivitäten

Mit dem folgenden Befehl können Sie alle IDs der Anmelde-Shell anzeigen:

$ sudo sysdig -c list_login_shells

Zu guter Letzt können Sie die interaktive Aktivität der Systembenutzer wie folgt anzeigen:

$ sudo sysdig -c spy_users

Weitere Informationen und Beispiele zur Verwendung finden Sie in den Manpages sysdig und csysdig:

$ man sysdig 
man csysdig

Artikel-Nr.: https://www.sysdig.org/

Überprüfen Sie auch diese nützlichen Tools zur Überwachung der Linux-Leistung:

  1. BCC – Dynamische Tracing-Tools für Linux-Performance-Monitoring, Netzwerke und mehr
  2. pyDash – Ein webbasiertes Linux-Performance-Monitoring-Tool
  3. Perf - Ein Leistungsüberwachungs- und Analysetool für Linux
  4. Collectl: Ein fortschrittliches All-in-One-Performance-Monitoring-Tool für Linux
  5. Netdata – Ein Echtzeit-Performance-Monitoring-Tool für Linux-Systeme
Schlussfolgerung

Sysdig vereint Funktionen aus zahlreichen Befehlszeilentools in einer bemerkenswerten Schnittstelle, die es Ihnen ermöglicht, tief in Ihre Linux-Systemereignisse einzutauchen, um Daten zu sammeln, für eine spätere Analyse zu speichern, und es bietet eine unglaubliche Container-Unterstützung.

Wenn Sie Fragen stellen oder Gedanken zu diesem Tool äußern möchten, verwenden Sie das untenstehende Feedback-Formular.

Verwandte Artikel: