Sysdig ist ein Open-Source, plattformübergreifendes, leistungsstarkes und flexibles Systemüberwachungs- und Fehlerbehebungstool für Linux; es funktioniert auch auf Windows und Mac OSX, jedoch mit eingeschränkter Funktionalität und kann für die Systemanalyse, Inspektion und Fehlerbehebung verwendet werden.
Normalerweise verwendet man eine Mischung verschiedener Linux-Leistungsüberwachungs- und Fehlerbehebungstools, darunter die unten aufgeführten, um die Linux-Überwachungs- und Debugging-Aufgaben durchzuführen:
- strace – entdeckt Systemaufrufe und Signale an einen Prozess.
- tcpdump – Überwachung des Netzwerkverkehrs.
- netstat – Überwachung der Netzwerkverbindungen.
- htop – Echtzeit-Prozessüberwachung.
- iftop – Echtzeit-Überwachung der Netzwerkbandbreite.
- lsof – Anzeigen, welche Dateien von welchem Prozess geöffnet sind.
Jedoch integriert sysdig alles, was die oben genannten Tools und viele weitere bieten, in einem einzigen und einfachen Programm, vor allem mit erstaunlicher Container-Unterstützung. Es ermöglicht Ihnen, das tatsächliche Verhalten (Ereignisstrom) von Linux-Systemen sowie Containern zu erfassen, zu speichern, zu filtern und zu untersuchen.
Es wird mit einer Befehlszeilenschnittstelle und einer leistungsstarken interaktiven Benutzeroberfläche (csysdig) geliefert, die es Ihnen ermöglichen, die Systemaktivität in Echtzeit zu überwachen oder einen Tracedump durchzuführen und für spätere Analysen zu speichern. Sie können sich ansehen, wie csysdig in dem untenstehenden Video funktioniert.
Sysdig-Funktionen:
- Es ist schnell, stabil und benutzerfreundlich und umfassend dokumentiert.
- Kommt mit nativer Unterstützung für Containertechnologien, einschließlich Docker, LXC.
- Es ist mittels Lua skriptbar; bietet Meißel (leichte Lua-Skripte) zur Verarbeitung erfasster Systemereignisse.
- Unterstützt nützliches Filtern der Ausgabe.
- Unterstützt System- und Anwendungstracing.
- Es kann mit Ansible, Puppet und Logstash integriert werden.
- Ermöglicht fortgeschrittene Protokollanalysen.
- Es bietet auch Funktionen zur Analyse von Linux-Serverangriffen (Forensik) für ethische Hacker und vieles mehr.
In diesem Artikel zeigen wir, wie man sysdig auf einem Linux-System installiert und es mit grundlegenden Beispielen zur Systemanalyse, Überwachung und Fehlerbehebung verwendet.
Wie man Sysdig in Linux installiert
Die Installation des sysdig-Pakets ist so einfach wie das Ausführen des folgenden Befehls, der alle Anforderungen überprüft; wenn alles vorhanden ist, wird es das Paket aus dem Draios APT/YUM-Repository herunterladen und installieren.
# 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, /dev/sysdig*-Geräte benötigt und das sysdig-Probe-Kernelmodul automatisch laden muss (falls nicht vorhanden); andernfalls verwenden Sie den sudo-Befehl.
Das einfachste Beispiel besteht darin, es ohne Argumente auszuführen, dies ermöglicht es Ihnen, den Ereignisstrom Ihres Linux-Systems in Echtzeit zu sehen:
$ 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 volle Potenzial dieses Tools zu nutzen, müssen Sie sysdig verwenden, das wie zuvor Rohdaten aus einem laufenden Linux-System erzeugt: Dies erfordert, dass Sie verstehen, wie Sie Filter und Meißel verwenden.
Aber wenn Sie eine schmerzlose Möglichkeit benötigen, sysdig zu verwenden – fahren Sie mit csysdig fort.
Verständnis von Sysdig Meißeln und Filtern
Sysdig Meißel sind minimale Lua-Skripte zum Untersuchen des sysdig-Ereignisstroms, um nützliche Systemdiagnoseaktionen und mehr durchzuführen. Der folgende Befehl hilft Ihnen, alle verfügbaren Meißel anzuzeigen:
$ sudo sysdig -cl
Der Screenshot zeigt eine Beispielliste von Stechbeiteln unter verschiedenen Kategorien.

Wenn Sie mehr Informationen über einen bestimmten Stechbeitel erhalten möchten, verwenden Sie das -i
Flag:
$ sudo sysdig -i topprocs_cpu

Sysdig-Filter fügen mehr Leistung zu der Art von Ausgabe hinzu, die Sie aus Ereignisströmen erhalten können. Sie ermöglichen es Ihnen, die Ausgabe anzupassen. Sie sollten sie am Ende einer Befehlszeile angeben.
A straightforward and commonest filter is a basic “class.field=value” check, you can also combine chisels with filters for even more powerful customizations.
Um eine Liste der verfügbaren Feldklassen, Felder und deren Beschreibungen anzuzeigen, geben Sie ein:
$ sudo sysdig -l

Erstellen einer Linux-Systemtrace-Datei
Um die Sysdig-Ausgabe in einer Datei für spätere Analysen abzulegen, verwenden Sie das -w
Flag wie folgt.
Sie können die Trace-Dump-Datei mit dem -r Flag lesen:
$ sudo sysdig -r trace.scap
Die Option -s
wird verwendet, um die Anzahl der Bytes an Daten festzulegen, 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
Um Systemprozesse aufzulisten, geben Sie ein:
$ sudo sysdig -c ps

Prozesse nach CPU-Auslastung überwachen
Um die Top-Prozesse nach CPU-Auslastungsprozentsatz anzuzeigen, führen Sie diesen Befehl aus:
$ sudo sysdig -c topprocs_cpu

Überwachung von Netzwerkverbindungen und I/O
Um Systemnetzwerkverbindungen anzuzeigen, führen Sie aus:
$ sudo sysdig -c netstat

Der folgende Befehl hilft Ihnen, die Top-Netzwerkverbindungen nach Gesamtbytes aufzulisten:
$ sudo sysdig -c topconns
Anschließend können Sie auch die Top-Prozesse nach Netzwerk-I/O wie folgt auflisten:
$ sudo sysdig -c topprocs_net
Überwachung des Systemdatei-I/O
Sie können die von Prozessen auf dem System gelesenen und geschriebenen Daten wie folgt ausgeben:
$ sudo sysdig -c echo_fds

Um die Top-Prozesse nach (Lese- + Schreib-) Festplattenbytes aufzulisten, verwenden Sie:
$ sudo sysdig -c topprocs_file
Fehlerbehebung der Leistung eines Linux-Systems
Um die Engpässe des Systems (langsame Systemaufrufe) im Auge zu behalten, führen Sie diesen Befehl aus:
$ sudo sysdig -c bottlenecks

Ausführungszeit eines Prozesses verfolgen
Um die Ausführungszeit eines Prozesses zu verfolgen, können Sie diesen Befehl ausführen und das Protokoll in eine Datei schreiben:
$ sudo sysdig -w extime.scap -c proc_exec_time

Verwenden Sie dann einen Filter, um Details eines bestimmten Prozesses (postgres in diesem Beispiel) wie folgt einzugrenzen:
$ sudo sysdig -r extime.scap proc.name=postgres
Langsames Netzwerk-I/O entdecken
Dieser einfache Befehl hilft Ihnen, langsames Netzwerk-I/O zu erkennen:
$ sudo sysdig -c netlower
Protokolleinträge beobachten
Der folgende Befehl hilft Ihnen, jede Nachricht anzuzeigen, die in das Syslog geschrieben wurde. Wenn Sie an Protokolleinträgen für einen bestimmten Prozess interessiert sind, erstellen Sie eine Protokolldatei und filtern Sie sie entsprechend wie zuvor gezeigt:
$ sudo sysdig -c spy_syslog
Sie können Daten, die von einem beliebigen Prozess geschrieben wurden, wie folgt in eine Protokolldatei drucken:
$ sudo sysdig -c spy_logs
Überwachung von HTTP-Serveranfragen
Wenn Sie einen HTTP-Server wie Apache oder Nginx auf Ihrem System ausführen, durchsuchen Sie das Anforderungsprotokoll des Servers mit diesem Befehl:
$ sudo sysdig -c httplog $ sudo sysdig -c httptop [Print Top HTTP Requests]

Anzeige von Anmelde-Shells und interaktiver Benutzeraktivität
Der folgende Befehl ermöglicht es Ihnen, alle Anmelde-Shell-IDs anzuzeigen:
$ sudo sysdig -c list_login_shells
Zuletzt können Sie die interaktive Aktivität der Systembenutzer wie folgt anzeigen:
$ sudo sysdig -c spy_users

Für weitere Informationen und Beispiele lesen Sie die Handbuchseiten von sysdig und csysdig:
$ man sysdig $ man csysdig
Referenz: https://www.sysdig.org/
Überprüfen Sie auch diese nützlichen Linux-Leistungsüberwachungstools:
- BCC – Dynamische Tracing-Tools für die Leistungsüberwachung, das Netzwerken und mehr unter Linux
- pyDash – Ein webbasiertes Linux-Leistungsüberwachungstool
- Perf – Ein Leistungsüberwachungs- und Analysetool für Linux
- Collectl: Ein fortschrittliches All-in-One-Leistungsüberwachungstool für Linux
- Netdata – Ein Echtzeit-Leistungsüberwachungstool für Linux-Systeme
Conclusion
Sysdig bringt Funktionalitäten zahlreicher Befehlszeilentools in eine bemerkenswerte Schnittstelle zusammen, die es Ihnen ermöglicht, tief in die Ereignisse Ihres Linux-Systems einzutauchen, Daten zu sammeln, für spätere Analysen zu speichern und es bietet eine unglaubliche Containerunterstützung.
Um Fragen zu stellen oder Gedanken zu diesem Tool zu teilen, verwenden Sie das untenstehende Feedback-Formular.
Source:
https://www.tecmint.com/sysdig-system-monitoring-and-troubleshooting-tool-for-linux/