Verwendung von Top, Netstat, Du und anderen Tools zur Überwachung von Serverressourcen

Einführung

Jedes Computersystem profitiert von einer ordnungsgemäßen Verwaltung und Überwachung. Ein Blick darauf, wie Ihr System läuft, wird Ihnen helfen, Probleme zu entdecken und schnell zu lösen.

Es gibt zahlreiche Befehlszeilen-Dienstprogramme, die zu diesem Zweck erstellt wurden. Dieser Leitfaden wird Sie mit einigen der hilfreichsten Anwendungen vertraut machen, die Sie in Ihrem Werkzeugkasten haben sollten.

Voraussetzungen

Um diesem Leitfaden zu folgen, benötigen Sie Zugriff auf einen Computer, der ein auf Linux basierendes Betriebssystem ausführt. Dies kann entweder ein virtueller privater Server sein, auf den Sie über SSH zugegriffen haben, oder Ihr lokaler Computer. Beachten Sie, dass dieses Tutorial unter Verwendung eines Linux-Servers unter Ubuntu 20.04 validiert wurde, aber die gegebenen Beispiele auf einem Computer mit jeder Version einer beliebigen Linux-Distribution funktionieren sollten.

Wenn Sie planen, einen Remote-Server zu verwenden, um diesem Leitfaden zu folgen, empfehlen wir Ihnen, zuerst unseren Initial Server Setup-Leitfaden abzuschließen. Dadurch erhalten Sie eine sichere Serverumgebung – einschließlich eines nicht-Root-Benutzers mit sudo-Berechtigungen und einer mit UFW konfigurierten Firewall –, die Sie zur Verbesserung Ihrer Linux-Kenntnisse verwenden können.

Schritt 1 – So zeigen Sie laufende Prozesse in Linux an

Sie können alle auf Ihrem Server laufenden Prozesse mit dem Befehl top anzeigen:

  1. top
Output
top - 15:14:40 up 46 min, 1 user, load average: 0.00, 0.01, 0.05 Tasks: 56 total, 1 running, 55 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1019600k total, 316576k used, 703024k free, 7652k buffers Swap: 0k total, 0k used, 0k free, 258976k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 24188 2120 1300 S 0.0 0.2 0:00.56 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/0 6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 7 root RT 0 0 0 0 S 0.0 0.0 0:00.03 watchdog/0 8 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 cpuset 9 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs

Die ersten mehreren Zeilen der Ausgabe zeigen Systemstatistiken wie CPU-/Speicherauslastung und die Gesamtanzahl der laufenden Aufgaben an.

Sie sehen, dass es 1 laufenden Prozess gibt und 55 Prozesse, die als schlafend betrachtet werden, da sie CPU-Zyklen nicht aktiv nutzen.

Der Rest der angezeigten Ausgabe zeigt die laufenden Prozesse und ihre Nutzungsstatistiken. Standardmäßig sortiert top diese automatisch nach CPU-Auslastung, sodass Sie zuerst die am stärksten ausgelasteten Prozesse sehen können. top wird in Ihrer Shell weiterhin ausgeführt, bis Sie es mit der Standardtastenkombination Strg+C beenden, um einen laufenden Prozess zu beenden. Dies sendet ein kill-Signal, das den Prozess anweist, ordnungsgemäß anzuhalten, wenn er dazu in der Lage ist.

Eine verbesserte Version von top namens htop ist in den meisten Paket-Repositories verfügbar. Auf Ubuntu 20.04 können Sie es mit apt installieren:

  1. sudo apt install htop

Danach wird der Befehl htop verfügbar sein:

  1. htop
Output
Mem[||||||||||| 49/995MB] Load average: 0.00 0.03 0.05 CPU[ 0.0%] Tasks: 21, 3 thr; 1 running Swp[ 0/0MB] Uptime: 00:58:11 PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command 1259 root 20 0 25660 1880 1368 R 0.0 0.2 0:00.06 htop 1 root 20 0 24188 2120 1300 S 0.0 0.2 0:00.56 /sbin/init 311 root 20 0 17224 636 440 S 0.0 0.1 0:00.07 upstart-udev-brid 314 root 20 0 21592 1280 760 S 0.0 0.1 0:00.06 /sbin/udevd --dae 389 messagebu 20 0 23808 688 444 S 0.0 0.1 0:00.01 dbus-daemon --sys 407 syslog 20 0 243M 1404 1080 S 0.0 0.1 0:00.02 rsyslogd -c5 408 syslog 20 0 243M 1404 1080 S 0.0 0.1 0:00.00 rsyslogd -c5 409 syslog 20 0 243M 1404 1080 S 0.0 0.1 0:00.00 rsyslogd -c5 406 syslog 20 0 243M 1404 1080 S 0.0 0.1 0:00.04 rsyslogd -c5 553 root 20 0 15180 400 204 S 0.0 0.0 0:00.01 upstart-socket-br

htop bietet eine bessere Visualisierung mehrerer CPU-Threads, eine bessere Unterstützung von Farben in modernen Terminals und mehr Sortieroptionen sowie andere Funktionen. Im Gegensatz zu top ist es nicht immer standardmäßig installiert, kann jedoch als Ersatz verwendet werden. Sie können htop wie top durch Drücken von Strg+C beenden.

Hier sind einige Tastenkombinationen, die Ihnen helfen, htop effektiver zu verwenden:

  • M: Sort processes by memory usage
  • P: Sort processes by processor usage
  • ?: Hilfe aufrufen
  • k: Kill current/tagged process
  • F2: Konfigurieren von htop. Hier können Sie Anzeigeoptionen auswählen.
  • /: Prozesse durchsuchen

Es gibt viele weitere Optionen, auf die Sie über Hilfe oder Konfiguration zugreifen können. Dies sollten Ihre ersten Anlaufstellen sein, um die Funktionalität von htop zu erkunden. Im nächsten Schritt erfahren Sie, wie Sie die Netzwerkbandbreite überwachen können.

Schritt 2 – So überwachen Sie Ihre Netzwerkbandbreite

Wenn Ihre Netzwerkverbindung überlastet zu sein scheint und Sie unsicher sind, welche Anwendung dafür verantwortlich ist, ist ein Programm namens nethogs eine gute Wahl, um dies herauszufinden.

Auf Ubuntu können Sie nethogs mit folgendem Befehl installieren:

  1. sudo apt install nethogs

Nach der Installation steht Ihnen der Befehl nethogs zur Verfügung:

  1. nethogs
Output
NetHogs version 0.8.0 PID USER PROGRAM DEV SENT RECEIVED 3379 root /usr/sbin/sshd eth0 0.485 0.182 KB/sec 820 root sshd: root@pts/0 eth0 0.427 0.052 KB/sec ? root unknown TCP 0.000 0.000 KB/sec TOTAL 0.912 0.233 KB/sec

nethogs ordnet jeder Anwendung ihren Netzwerkverkehr zu.

Es gibt nur wenige Befehle, die Sie verwenden können, um nethogs zu steuern:

  • M: Change displays between “kb/s”, “kb”, “b”, and “mb”.
  • R: Sort by traffic received.
  • S: Sort by traffic sent.
  • Q: quit

iptraf-ng ist eine weitere Möglichkeit, den Netzwerkverkehr zu überwachen. Es bietet eine Reihe verschiedener interaktiver Überwachungsschnittstellen.

Hinweis: IPTraf erfordert eine Bildschirmgröße von mindestens 80 Spalten mal 24 Zeilen.

Auf Ubuntu können Sie iptraf-ng mit dem folgenden Befehl installieren:

  1. sudo apt install iptraf-ng

iptraf-ng muss mit Root-Rechten ausgeführt werden, daher sollten Sie es mit sudo voranstellen:

  1. sudo iptraf-ng

Sie werden mit einem Menü präsentiert, das eine beliebte Befehlszeilenschnittstellenframework namens ncurses verwendet.

Mit diesem Menü können Sie auswählen, auf welche Schnittstelle Sie zugreifen möchten.

Zum Beispiel können Sie eine Übersicht über alle Netzwerkverbindungen erhalten, indem Sie das erste Menü auswählen und dann „Alle Schnittstellen“ auswählen. Es wird Ihnen einen Bildschirm anzeigen, der so aussieht:

Hier sehen Sie, mit welchen IP-Adressen Sie auf allen Ihren Netzwerkschnittstellen kommunizieren.

Wenn Sie diese IP-Adressen in Domains auflösen möchten, können Sie die Rückwärtssuche nach DNS beenden, indem Sie den Verkehrsmonitor verlassen, Konfigurieren auswählen und dann die Rückwärtssuche nach DNS aktivieren.

Sie können auch die TCP/UDP-Dienstnamen aktivieren, um die Namen der ausgeführten Dienste anstelle der Portnummern zu sehen.

Mit beiden aktivierten Optionen kann die Anzeige so aussehen:

Der Befehl netstat ist ein weiteres vielseitiges Werkzeug zur Erfassung von Netzwerkinformationen.

netstat ist standardmäßig auf den meisten modernen Systemen installiert, aber Sie können es selbst installieren, indem Sie es aus den Standardpaketquellen Ihres Servers herunterladen. Auf den meisten Linux-Systemen, einschließlich Ubuntu, befindet sich das Paket, das netstat enthält, unter net-tools:

  1. sudo apt install net-tools

Standardmäßig gibt der Befehl netstat alle offenen Sockets aus:

  1. netstat
Output
Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 192.241.187.204:ssh ip223.hichina.com:50324 ESTABLISHED tcp 0 0 192.241.187.204:ssh rrcs-72-43-115-18:50615 ESTABLISHED Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 5 [ ] DGRAM 6559 /dev/log unix 3 [ ] STREAM CONNECTED 9386 unix 3 [ ] STREAM CONNECTED 9385 . . .

Wenn Sie die Option -a hinzufügen, werden alle Ports aufgelistet, die hören und nicht hören:

  1. netstat -a
Output
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:ssh *:* LISTEN tcp 0 0 192.241.187.204:ssh rrcs-72-43-115-18:50615 ESTABLISHED tcp6 0 0 [::]:ssh [::]:* LISTEN Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 6195 @/com/ubuntu/upstart unix 2 [ ACC ] STREAM LISTENING 7762 /var/run/acpid.socket unix 2 [ ACC ] STREAM LISTENING 6503 /var/run/dbus/system_bus_socket . . .

Wenn Sie nur TCP- oder UDP-Verbindungen anzeigen möchten, verwenden Sie die Flags -t oder -u entsprechend:

  1. netstat -at
Output
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:ssh *:* LISTEN tcp 0 0 192.241.187.204:ssh rrcs-72-43-115-18:50615 ESTABLISHED tcp6 0 0 [::]:ssh [::]:* LISTEN

Statistiken können durch Übergeben des Flags „-s“ angezeigt werden:

  1. netstat -s
Output
Ip: 13500 total packets received 0 forwarded 0 incoming packets discarded 13500 incoming packets delivered 3078 requests sent out 16 dropped because of missing route Icmp: 41 ICMP messages received 0 input ICMP message failed. ICMP input histogram: echo requests: 1 echo replies: 40 . . .

Wenn Sie die Ausgabe kontinuierlich aktualisieren möchten, können Sie das Flag -c verwenden. Es gibt viele weitere Optionen für netstat, die Sie durch Überprüfen seiner Handbuchseite erfahren können.

Im nächsten Schritt lernen Sie einige nützliche Methoden zur Überwachung Ihres Festplattenverbrauchs kennen.

Schritt 3 – Überwachen des Festplattenverbrauchs

Für einen schnellen Überblick darüber, wie viel Speicherplatz auf Ihren angeschlossenen Laufwerken verbleibt, können Sie das Programm df verwenden.

Ohne Optionen sieht die Ausgabe wie folgt aus:

  1. df
Output
Filesystem 1K-blocks Used Available Use% Mounted on /dev/vda 31383196 1228936 28581396 5% / udev 505152 4 505148 1% /dev tmpfs 203920 204 203716 1% /run none 5120 0 5120 0% /run/lock none 509800 0 509800 0% /run/shm

Dies gibt den Festplattenverbrauch in Bytes aus, was möglicherweise etwas schwer zu lesen ist.

Um dieses Problem zu beheben, können Sie die Ausgabe in einem für Menschen lesbaren Format angeben:

  1. df -h
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda 30G 1.2G 28G 5% / udev 494M 4.0K 494M 1% /dev tmpfs 200M 204K 199M 1% /run none 5.0M 0 5.0M 0% /run/lock none 498M 0 498M 0% /run/shm

Wenn Sie den Gesamtplatz auf allen Dateisystemen sehen möchten, können Sie die Option --total übergeben. Dadurch wird eine Zeile am Ende mit Zusammenfassungsinformationen hinzugefügt:

  1. df -h --total
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda 30G 1.2G 28G 5% / udev 494M 4.0K 494M 1% /dev tmpfs 200M 204K 199M 1% /run none 5.0M 0 5.0M 0% /run/lock none 498M 0 498M 0% /run/shm total 32G 1.2G 29G 4%

df kann einen nützlichen Überblick bieten. Ein weiterer Befehl, du, gibt eine Aufschlüsselung nach Verzeichnis.

du analysiert die Nutzung für das aktuelle Verzeichnis und alle Unterverzeichnisse. Die Standardausgabe von du in einem fast leeren Home-Verzeichnis sieht so aus:

  1. du
Output
4 ./.cache 8 ./.ssh 28 .

Sie können erneut eine menschenlesbare Ausgabe spezifizieren, indem Sie -h übergeben:

  1. du -h
Output
4.0K ./.cache 8.0K ./.ssh 28K .

Um auch Dateigrößen sowie Verzeichnisse zu sehen, geben Sie folgendes ein:

  1. du -a
Output
0 ./.cache/motd.legal-displayed 4 ./.cache 4 ./.ssh/authorized_keys 8 ./.ssh 4 ./.profile 4 ./.bashrc 4 ./.bash_history 28 .

Für eine Gesamtsumme am Ende können Sie die Option -c hinzufügen:

  1. du -c
Output
4 ./.cache 8 ./.ssh 28 . 28 total

Wenn Sie nur am Gesamtinteresse und nicht an den Details interessiert sind, können Sie ausgeben:

  1. du -s
Output
28 .

Es gibt auch eine ncurses-Schnittstelle für du, die passenderweise ncdu heißt, die Sie installieren können:

  1. sudo apt install ncdu

Dies wird Ihre Festplattennutzung grafisch darstellen:

  1. ncdu
Output
--- /root ---------------------------------------------------------------------- 8.0KiB [##########] /.ssh 4.0KiB [##### ] /.cache 4.0KiB [##### ] .bashrc 4.0KiB [##### ] .profile 4.0KiB [##### ] .bash_history

Sie können sich durch das Dateisystem bewegen, indem Sie die Pfeiltasten nach oben und unten verwenden und die Eingabetaste auf einem beliebigen Verzeichniseintrag drücken.

In der letzten Sektion erfahren Sie, wie Sie Ihren Speicherverbrauch überwachen können.

Schritt 4 – So überwachen Sie Ihren Speicherverbrauch

Sie können den aktuellen Speicherverbrauch auf Ihrem System mit dem Befehl free überprüfen.

Wenn ohne Optionen verwendet, sieht die Ausgabe so aus:

  1. free
Output
total used free shared buff/cache available Mem: 1004896 390988 123484 3124 490424 313744 Swap: 0 0 0

Um sie in einem lesbareren Format anzuzeigen, können Sie die Option -m übergeben, um die Ausgabe in Megabytes anzuzeigen:

  1. free -m
Output
total used free shared buff/cache available Mem: 981 382 120 3 478 306 Swap: 0 0 0

Die Mem-Zeile enthält den Speicher, der für Pufferung und Zwischenspeicherung verwendet wird, der freigegeben wird, sobald er für andere Zwecke benötigt wird. Swap ist Speicher, der in einer Swapdatei auf der Festplatte geschrieben wurde, um aktiven Speicher zu sparen.

Zuletzt kann der Befehl vmstat verschiedene Informationen über Ihr System ausgeben, einschließlich Speicher, Swap, Festplatten-E/A und CPU-Informationen.

Sie können den Befehl verwenden, um einen weiteren Einblick in die Speicherauslastung zu erhalten:

  1. vmstat
Output
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 0 99340 123712 248296 0 0 0 1 9 3 0 0 100 0

Sie können dies in Megabytes anzeigen, indem Sie Einheiten mit dem Flag -S angeben:

  1. vmstat -S M
Output
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 0 96 120 242 0 0 0 1 9 3 0 0 100 0

Um einige allgemeine Statistiken zur Speicherauslastung zu erhalten, geben Sie ein:

  1. vmstat -s -S M
Output
495 M total memory 398 M used memory 252 M active memory 119 M inactive memory 96 M free memory 120 M buffer memory 242 M swap cache 0 M total swap 0 M used swap 0 M free swap . . .

Um Informationen über die Cache-Nutzung einzelner Systemprozesse zu erhalten, geben Sie ein:

  1. vmstat -m -S M
Output
Cache Num Total Size Pages ext4_groupinfo_4k 195 195 104 39 UDPLITEv6 0 0 768 10 UDPv6 10 10 768 10 tw_sock_TCPv6 0 0 256 16 TCPv6 11 11 1408 11 kcopyd_job 0 0 2344 13 dm_uevent 0 0 2464 13 bsg_cmd 0 0 288 14 . . .

Dies gibt Ihnen Details darüber, welche Art von Informationen im Cache gespeichert sind.

Fazit

Mit diesen Tools sollten Sie beginnen können, Ihren Server von der Befehlszeile aus zu überwachen. Es gibt viele andere Überwachungsprogramme, die für verschiedene Zwecke verwendet werden, aber diese sind ein guter Ausgangspunkt.

Als nächstes könnten Sie sich mit der Linux-Prozessverwaltung mithilfe von ps, kill und nice vertraut machen.

Source:
https://www.digitalocean.com/community/tutorials/how-to-use-top-netstat-du-other-tools-to-monitor-server-resources