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:
- strace – Erkennen von Systemaufrufen und Signalen für einen Prozess.
- tcpdump – Überwachung des rohen Netzwerkverkehrs.
- netstat – Überwachung von Netzwerkverbindungen.
- HTOP – Prozessüberwachung in Echtzeit.
- IFTOP – Überwachung der Netzwerkbandbreite in Echtzeit.
- 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:
- BCC – Dynamische Tracing-Tools für Linux-Performance-Monitoring, Netzwerke und mehr
- pyDash – Ein webbasiertes Linux-Performance-Monitoring-Tool
- Perf - Ein Leistungsüberwachungs- und Analysetool für Linux
- Collectl: Ein fortschrittliches All-in-One-Performance-Monitoring-Tool für Linux
- 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.













