Website-Suche

Sysdig – Ein leistungsstarkes Systemüberwachungs- und Fehlerbehebungstool für Linux


Sysdig ist ein Open-Source-, plattformübergreifendes, leistungsstarkes und flexibles Systemüberwachungs- und Fehlerbehebungstool für Linux. Es funktioniert auch unter Windows und Mac OSX, allerdings mit eingeschränkter Funktionalität, und kann zur Systemanalyse, Inspektion und Fehlerbehebung verwendet werden.

Normalerweise würden Sie eine Mischung aus verschiedenen Linux-Leistungsüberwachungs- und Fehlerbehebungstools verwenden, einschließlich der unten aufgeführten, um die Linux-Überwachungs- und Debugging-Aufgaben durchzuführen:

  1. strace – Systemaufrufe und Signale für einen Prozess entdecken.
  2. tcpdump – Überwachung des rohen Netzwerkverkehrs.
  3. netstat – Überwachung von Netzwerkverbindungen.
  4. htop – Prozessüberwachung in Echtzeit.
  5. iftop – Netzwerkbandbreitenüberwachung 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 weitere bieten, in einem einzigen und einfachen Programm, noch dazu mit erstaunlicher Container-Unterstützung. Es ermöglicht Ihnen, das tatsächliche Verhalten (Ereignisstrom) 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), mit der Sie die Systemaktivität in Echtzeit beobachten oder einen Trace-Dump erstellen und für eine spätere Analyse speichern können. Im folgenden Video können Sie sehen, wie csysdig funktioniert.

Sysdig-Funktionen:

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

In diesem Artikel zeigen wir, wie man sysdig auf einem Linux-System installiert und es anhand grundlegender Beispiele für Systemanalyse, Überwachung und Fehlerbehebung verwendet.

So installieren Sie Sysdig unter Linux

Die Installation des sysdig-Pakets ist so einfach wie die Ausführung des folgenden Befehls, der alle Anforderungen überprüft; Wenn alles vorhanden 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 Dateisystem /proc und /dev/sysdig* erfordert Geräte und muss das Sysdig-Probe-Kernelmodul automatisch laden (falls dies nicht der Fall ist); Andernfalls verwenden Sie den Befehl sudo.

Das einfachste Beispiel ist die Ausführung ohne Argumente. Dadurch können Sie den in Echtzeit aktualisierten Ereignisstrom Ihres Linux-Systems anzeigen:

sudo sysdig

Die obige Ausgabe (Rohdaten) macht für Sie möglicherweise keinen großen Sinn. Für eine nützlichere Ausgabe führen Sie csysdig aus:

sudo csysdig 

Hinweis: Um ein wirkliches Gefühl für dieses Tool zu bekommen, müssen Sie sysdig verwenden, das, wie wir zuvor gesehen haben, Rohdaten aus einem laufenden Betrieb erzeugt Linux-System: Hierfür müssen Sie den Umgang mit Filtern und Meißeln verstehen.

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

Sysdig-Meißel und -Filter verstehen

Sysdig-Chisels sind minimale Lua-Skripte zur Untersuchung des Sysdig-Ereignisstroms, um nützliche Aktionen zur Systemfehlerbehebung und mehr durchzuführen. 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 weitere Informationen zu einem 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 von Ereignisströmen erhalten können, mehr Leistung und ermöglichen Ihnen, die Ausgabe anzupassen. Sie sollten sie am Ende einer Befehlszeile angeben.

Ein einfacher und gebräuchlichster Filter ist eine einfache „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 ihrer Beschreibungen anzuzeigen:


sudo sysdig -l

Erstellen einer Linux-System-Trace-Datei

Um die Sysdig-Ausgabe zur späteren Analyse in eine Datei zu sichern, verwenden Sie das Flag -w wie folgt.

Sie können die Trace-Dump-Datei mit dem Flag -r lesen:


sudo sysdig -r trace.scap

Die Option -s wird verwendet, um die Menge der Datenbytes 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

Überwachung von Linux-Prozessen

Geben Sie Folgendes ein, um Systemprozesse aufzulisten:

sudo sysdig -c ps

Überwachen Sie Prozesse nach CPU-Auslastung

Führen Sie diesen Befehl aus, um die Top-Prozesse nach Prozentsatz der CPU-Auslastung zu überwachen:

sudo sysdig -c topprocs_cpu

Überwachung von Netzwerkverbindungen und E/A

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 Top-Prozesse auch wie folgt nach Netzwerk-E/A auflisten:

sudo sysdig -c topprocs_net    

Überwachung der Systemdatei-E/A

Sie können die von Prozessen auf dem System gelesenen und geschriebenen Daten wie folgt ausgeben:

sudo sysdig -c echo_fds

Um Top-Prozesse nach (Lese- und Schreib-)Festplattenbytes 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 Sie die Ausführungszeit eines Prozesses

Um die Ausführungszeit eines Prozesses zu verfolgen, können Sie diesen Befehl ausführen und den Trace in einer Datei speichern:

sudo sysdig -w extime.scap -c proc_exec_time 

Verwenden Sie dann einen Filter, um die Details eines bestimmten Prozesses (in diesem Beispiel postgres) wie folgt einzuschränken:

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

Entdecken Sie langsame Netzwerk-E/A

Dieser einfache Befehl hilft Ihnen, langsame Netzwerk-E/A zu erkennen:

sudo sysdig -c netlower     

Protokolldateieinträge ansehen

Mit dem folgenden Befehl können Sie jede in Syslog geschriebene Nachricht anzeigen. Wenn Sie an Protokolleinträgen für einen bestimmten Prozess interessiert sind, erstellen Sie einen Trace-Dump und filtern Sie ihn wie zuvor gezeigt entsprechend heraus:

sudo sysdig -c spy_syslog      

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

sudo sysdig -c spy_logs   

Überwachen von HTTP-Serveranfragen

Wenn auf unserem System ein HTTP-Server wie Apache oder Nginx läuft, durchsuchen Sie das Anforderungsprotokoll des Servers mit diesem Befehl:

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

Anmelde-Shells und interaktive Benutzeraktivität anzeigen

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

sudo sysdig -c list_login_shells

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

sudo sysdig -c spy_users

Weitere Nutzungsinformationen und Beispiele finden Sie auf den Manpages sysdig und csysdig:

man sysdig 
man csysdig

Referenz: https://www.sysdig.org/

Sehen Sie sich auch diese nützlichen Tools zur Linux-Leistungsüberwachung an:

  1. BCC – Dynamische Tracing-Tools für Linux-Leistungsüberwachung, Netzwerk und mehr
  2. pyDash – Ein webbasiertes Linux-Leistungsüberwachungstool
  3. Perf – Ein Leistungsüberwachungs- und Analysetool für Linux
  4. Collectl: Ein fortschrittliches All-in-One-Leistungsüberwachungstool für Linux
  5. Netdata – Ein Echtzeit-Leistungsüberwachungstool für Linux-Systeme
Abschluss

Sysdig vereint Funktionalitäten zahlreicher Befehlszeilentools in einer bemerkenswerten Oberfläche und ermöglicht Ihnen so, tief in Ihre Linux-Systemereignisse einzudringen, um Daten zu sammeln und für eine spätere Analyse zu speichern, und es bietet eine unglaubliche Containerunterstützung.

Wenn Sie Fragen stellen oder Gedanken zu diesem Tool mitteilen möchten, verwenden Sie das unten stehende Feedback-Formular.