Hier sehen wir die Schritte zum Installieren von Sysdig, einem Linux-System- oder Serverüberwachungstool auf CentOS, Redhat, Debian Ubuntu 20.04/18.04/16.04 zusammen mit anderen Nicht-LTS-Versionen, einschließlich Linux Mint und Elementary OS.
Was ist das Sysdig-Linux-Überwachungstool?
Sysdig ist ein alternatives Open-Source-Tool zu top, iotop, iftop, strace, tcpdump, htop, iftop, lsof und Transaktionsverfolgung. Es bietet einen vollständigen Überblick über die Nutzung von CPU, Speicher, IO, Benutzern und mehr direkt auf dem Befehlsterminal in einer gut strukturierten Oberfläche. Sysdig kann auf fast allen Betriebssystemen installiert werden, sogar auf Windows und OS X.
Anforderungen
- Ubuntu-Server oder -Desktop
- Um alle Befehle in diesem Tutorial auszuführen, sollte man Root-Benutzerzugriff haben oder mit einem Nicht-Root-Benutzer mit sudo-Rechten .
Schritt 1:Aktualisieren Sie das System
Führen Sie den Systemaktualisierungsbefehl aus, um sicherzustellen, dass alle Repository- und anderen installierten Pakete auf dem neuesten Stand sind.
sudo apt update
Schritt 2:Installieren Sie Sysdig auf verschiedenen Linux-Systemen
Ubuntu 20.04/18.04 oder früher
In den neuesten Betriebssystemen von Ubuntu und Linux Mint müssen wir kein Repository hinzufügen und können Sysdig mit nur einem einzigen Befehl installieren, z. B.
sudo apt install sysdig
Führen Sie jedoch in Debian und anderen darauf basierenden Linux-Distributionen das folgende Skript aus, das nicht nur sein Repo hinzufügt, sondern auch Sysdig installiert.
Führen Sie vor dem Skript den Befehl zum Installieren von curl und anderen Software-Common-Properties aus, die dem APT helfen, Software aus verschiedenen Quellen effizient zu verwalten.
sudo apt -y install software-properties-common curl
curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash
Die Installation erfolgt vollautomatisch und erfordert kein weiteres Eingreifen.
Sysdig-Installation auf CentOS, RHEL, Fedora, Amazon Linux
Fügen Sie das yum-Repository hinzu
sudo rpm --import https://s3.amazonaws.com/download.draios.com/DRAIOS-GPG-KEY.public
sudo curl -s -o /etc/yum.repos.d/draios.repo https://s3.amazonaws.com/download.draios.com/stable/rpm/draios.repo
sudo yum -y install sysdig
oder
sudo dnf -y install sysdig
Sysdig-Installation auf CentOS
Docker Sysdig-Installation
docker pull sysdig/sysdig
docker run -i -t --name sysdig --privileged -v /var/run/docker.sock:/host/var/run/docker.sock -v /dev:/host/dev -v /proc:/host/proc:ro -v /boot:/host/boot:ro -v /lib/modules:/host/lib/modules:ro -v /usr:/host/usr:ro sysdig/sysdig
Schritt 3:Verwendung von Sysdig-Befehlen
Der erste einfache Befehl von Sysdig, um den laufenden Prozess, den Speicherverbrauch durch sie und mehr anzuzeigen; Geben Sie einfach ein:
sudo csysdig
Wir führen es mit sudo aus, da Sysdig auf einige entscheidende Bereiche des Systems zugreifen muss, wie z. B. das /proc-Dateisystem, /dev/sysdig*-Geräte und mehr, um Ihnen die aktuelle Auslastung und andere Informationen bereitzustellen.
Etwas wie die folgende Ausgabe, die Sie sehen werden …
PID :PID verarbeiten.
CPU :Menge der vom Prozess verwendeten CPU.
TH :Anzahl der Threads, die der Prozess enthält.
VIRT :Gesamter virtueller Speicher für den Prozess.
RES :Residenter, nicht ausgelagerter Speicher für den Prozess.
DATEI :Gesamte (Eingabe+Ausgabe) Datei-E/A-Bandbreite, die vom Prozess generiert wird, in Byte pro Sekunde.
NET :Gesamte (Ein- und Ausgabe) Netzwerk-E/A-Bandbreite, die vom Prozess generiert wird, in Bytes pro Sekunde.
Befehl :Die vollständige Befehlszeile des Prozesses
Sysdig-Befehl zum Anzeigen des Systemprozesses
Im Screenshot oben , sehen Sie die aktuell laufenden Prozesse, Befehle und deren Auswirkungen auf die Systemauslastung (CPU- und Speicherauslastung). Unten befindet sich das Menü bzw. die Tastenbelegung. Drücken Sie F2 öffnet ein weiteres Menü, hier können Sie auswählen, was Sie sich ansehen möchten.
Schneller Sysdig-Befehl zur Überwachung des Linux-Systems
Sie können im obigen Screenshot die wichtigsten Dinge sehen die wir überwachen müssen, werden auf der linken Seite im Befehlsterminal angezeigt. Mit den Pfeiltasten können Sie auswählen, was Sie interessiert, und dann Enter drücken Taste, die die Schnittstelle auf den entsprechenden Filter umschaltet.
Zum Beispiel, um die Verbindungen zu testen wir haben das ausgewählt und folgendes gezeigt.
Überwachung von Verbindungen mit Sysdig
Dies zeigt Ihnen, welche Verbindungen derzeit mit dem Server verbunden sind, z. B. aktive SSH-Sitzungen zusammen mit Plex Media Server. Wenn Sie mehr zu tief graben möchten, um mehr darüber zu erfahren, drücken Sie F6 .
Tiefenanalyse von Netzwerkverbindungen
Wählen Sie auf die gleiche Weise Fehler aus Option zeigt alle Prozesse, die fehlgeschlagen sind. Sie sind nach der Häufigkeit ihres Auftretens sortiert.
Um mehr über den Prozess und die von ihnen verwendete Gesamt-CPU zu erfahren, wählen Sie „Prozess-CPU “ und drücken Sie die Enter-Taste Schlüssel.
PID :PID verarbeiten.
TOT :Gesamtmenge der vom Prozess verwendeten CPU (Benutzer + System).
USER :Menge der Benutzer-CPU, die vom Prozess verwendet wird.
SYS :Menge der vom Prozess verwendeten System-CPU.
SYSCALLS :Anzahl der vom Prozess getätigten Systemaufrufe pro Sekunde.
Befehl :Die vollständige Befehlszeile des Prozesses.
Prozess und Gesamt-CPU
Unter Liste der geöffneten Dateien , Beispielsweise finden Sie eine Liste aller Dateien, auf die gerade zugegriffen wird, und wer oder welches Programm darauf zugreift.
E/A nach Typ: zeigt Ihnen welcher Prozess bzw. welcher Trigger gerade wie viel auf den Datenträger schreibt und liest. Hier geht es um die Übertragungsrate, die Gesamtzahl der verschobenen Daten kann hier nicht eingesehen werden.
BPS EIN: Bytes pro Sekunde, die von den FDs des spezifischen Typs gelesen werden.
BPS OUT :Bytes pro Sekunde, die auf die FDs des spezifischen Typs geschrieben werden.
IOPS :Anzahl der E/A-Vorgänge für die angegebene E/A-Kategorie. Dies zählt alle Operationen auf der Datei, einschließlich Öffnen, Schließen, Lesen, Schreiben, Status und so weiter. Folglich kann dieser Wert Null sein, auch wenn die I/O-Bytes für die Datei Null sind.
TIME :Zeit, die von Prozessen für E/A-Vorgänge (einschließlich Warten) dieses Typs aufgewendet wird.
E/A-Typ :E/A-Typ. Kann eine der folgenden sein:file, directory, ipv4, ipv6, pipe, Unix, signal, event, inotifMesos Frameworks y
I O nach Typ
Unter Benutzer ausspionieren , Sie finden eine Liste aller Prozesse, die von Benutzern aufgerufen wurden – nicht das System oder andere Prozesse. Hier sehen Sie die Listen aller Befehle, die interaktiv ausgeführt werden, also eine Shell als übergeordneten Prozess haben. Das Ergebnis Dateien ist die Anzeige aller Benutzeraktivitäten, sortiert nach Zeit.
ZEIT :Zeitpunkt, zu dem der Befehl ausgeführt wurde.
USER :Name des Benutzers, der den Befehl ausführt.
SHELL :Pid der Shell, in der dieser Befehl ausgeführt wurde. Dies entspricht im Wesentlichen einer „Session-ID“. Sie können nach dieser Spalte filtern oder sortieren, um eine bestimmte interaktive Benutzersitzung zu isolieren.
Befehl :Der ausgeführte Befehl, einschließlich Argumente.
Ähnlich , können wir andere Optionen zur Überwachung unserer Linux-Systeme erkunden.
Wenn Sie bestimmte Details des Systems wie CPU, Netzwerk und mehr erhalten möchten, können Sie auch den entsprechenden Direktbefehl verwenden. Wie in der reinen Commandline-Version gibt es so viele Einstellungen, Variablen und Filter, dass ich sie hier nicht alle aufzählen möchte. Eine vollständige Liste aller Funktionen finden Sie im offiziellen Sysdig-Wiki.
Hier sind einige davon:
Um den Prozess direkt anhand der CPU-Auslastung zu überwachen, lautet der Befehl:
sudo sysdig -c topprocs_cpu
sysdig CPU-Prozessüberwachungsbefehl
Der Befehl zum Überwachen beider Netzwerkverbindungen
sudo sysdig -c netstat
Alle Linux-Netzwerkverbindungen
Um die wichtigsten Netzwerkverbindungen anzuzeigen und nach Netzwerk-Input/Output zu verarbeiten
sudo sysdig -c topconns
sudo sysdig -c topprocs_net
Andere Schnellbefehle können mit dem Befehl:
angezeigt werdensudo sysdig -cl
Im Folgenden sind die Befehle nach Kategorie aufgeführt:
Zum Beispiel möchte ich das HTTP-Anforderungsprotokoll sehen, den ersten Befehl in der folgenden Liste. Geben Sie dazu einfach
einsudo sysdig -c httplog
Der fettgedruckte ist der Befehl…
Category: Application --------------------- httplog HTTP requests log httptop Top HTTP requests memcachelog memcached requests log Category: CPU Usage ------------------- spectrogram Visualize OS latency in real time. subsecoffset Visualize subsecond offset execution time. topcontainers_cpu Top containers by CPU usage topprocs_cpu Top processes by CPU usage Category: Errors ---------------- topcontainers_error Top containers by number of errors topfiles_errors Top files by number of errors topprocs_errors top processes by number of errors Category: I/O ------------- echo_fds Print the data read and written by processes. fdbytes_by I/O bytes, aggregated by an arbitrary filter field fdcount_by FD count, aggregated by an arbitrary filter field fdtime_by FD time group by iobytes Sum of I/O bytes on any type of FD iobytes_file Sum of file I/O bytes spy_file Echo any read/write made by any process to all files. Optionally, you can provide the name of one file to only intercept reads /writes to that file. stderr Print stderr of processes stdin Print stdin of processes stdout Print stdout of processes topcontainers_file Top containers by R+W disk bytes topfiles_bytes Top files by R+W bytes topfiles_time Top files by time topprocs_file Top processes by R+W disk bytes udp_extract extract data from UDP streams to files. Category: Logs -------------- spy_logs Echo any write made by any process to a log file. Optionally, export the events around each log message to file. spy_syslog Print every message written to syslog. Optionally, export the events around each syslog message to file. Category: Misc -------------- around Export to file the events around the time range where the given filter matches. Category: Net ------------- iobytes_net Show total network I/O bytes spy_ip Show the data exchanged with the given IP address spy_port Show the data exchanged using the given IP port number topconns Top network connections by total bytes topcontainers_net Top containers by network I/O topports_server Top TCP/UDP server ports by R+W bytes topprocs_net Top processes by network I/O Category: Performance --------------------- bottlenecks Slowest system calls fileslower Trace slow file I/O netlower Trace slow network I/0 proc_exec_time Show process execution time scallslower Trace slow syscalls topscalls Top system calls by number of calls topscalls_time Top system calls by time Category: Security ------------------ list_login_shells List the login shell IDs shellshock_detect print shellshock attacks spy_users Display interactive user activity Category: System State ---------------------- lscontainers List the running containers lsof List (and optionally filter) the open file descriptors. netstat List (and optionally filter) network connections. ps List (and optionally filter) the machine processes. Category: Tracers ----------------- tracers_2_statsd Export spans duration as statds metrics. Use the -i flag to get detailed information about a specific chisel
Um alle zugehörigen Befehle und andere Informationen zu kennen, mit einem Beispiel für sysdig
und csysdig
Tools finden Sie auf der Manpage:
man sysdig
man csysdig
Endnotizen für Sysdig
Sysdig ist ein sehr umfangreiches Tool, um den aktuellen Status und die Auslastung Ihres Systems im Auge zu behalten. Während mit Csysdig Es bietet Ihnen eine komfortable kommandozeilenbasierte interaktive Schnittstelle innerhalb der Konsole, um effektiv zu arbeiten. Mit dem Befehlszeilentool selbst können Sie effektive Skripte erstellen und Ihre eigenen benutzerdefinierten Protokolldateien erstellen.
Andere Linux-Tutorials:
- Wie ändere ich das GRUB-Menü-Timeout beim Booten?
- Tutorial zur Installation des OpenSSH-Servers auf Ubuntu 20.04 LTS