Nigels Monitor (nmon
) ist ein Tool zur Überwachung der Systemleistung, das ursprünglich von IBM für das Betriebssystem AIX entwickelt und später für Linux auf mehrere CPU-Architekturen portiert wurde.
Der Hauptvorteil von nmon
ist, dass Sie verschiedene Aspekte Ihres Systems, wie CPU-Auslastung, Speicher, belegte Festplatte, Netzwerkauslastung und mehr, in einer einzigen, übersichtlichen Ansicht überwachen können. Ohne nmon
, müssen Sie spezialisierte Überwachungstools wie top
verwenden für Prozesse iostat
für Festplatten und ifstat
für das Netzwerk, um verschiedene Ressourcen zu überwachen. Jeder von ihnen präsentiert die Daten anders.
Ich habe nmon
verwendet zum ersten Mal vor etwa 10 Jahren als AIX-Systemadministrator. Durch die Verwendung von nmon
, konnte ich einige schwer zu erkennende Probleme beheben, darunter eines, das zunächst wie ein Netzwerkengpass aussah. Durch gleichzeitiges Untersuchen mehrerer Ressourcen mit nmon
, habe ich festgestellt, dass es sich um ein Anwendungsproblem handelt, das durch das Öffnen zu vieler Dateien verursacht wurde.
Zusätzlich zur interaktiven Überwachung Ihres Systems können Sie auch nmon
verwenden im Stapelmodus zum Sammeln und Speichern von Leistungsdaten zur Analyse. Weitere Informationen zu nmon
für Linux konsultieren Sie die offizielle Seite des Projekts.
Dieser Artikel befasst sich mit diesem leistungsstarken Überwachungstool. Beginnen Sie mit der Installation.
nmon installieren
nmon
ist im Standard-Repository vieler Linux-Distributionen verfügbar. Verwenden Sie beispielsweise DNF, um es auf Fedora 35 zu installieren:
$ sudo dnf -y install nmon
Für Red Hat Enterprise Linux oder CentOS, nmon
ist im EPEL-Repository (Extra Packages for Enterprise Linux) verfügbar.
So installieren Sie nmon
, aktivieren Sie zuerst EPEL:
$ sudo dnf -y install \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
$ sudo dnf repolist
Installieren Sie dann nmon
mit dnf
:
$ sudo dnf -y install nmon
Nun, da Sie nmon
installiert haben , verwenden Sie es, um Ihr System zu überwachen.
Nmon interaktiv verwenden
Wenn die Anwendungen installiert sind, können Sie Ihr System interaktiv überwachen, indem Sie nmon
ausführen . Sie sehen einen Anfangsbildschirm mit Systeminformationen und einem kleinen Hilfemenü, das anzeigt, welche Tasten Sie drücken können, um zwischen verschiedenen Metriken umzuschalten:
$ nmon
┌─16k──[H for help]──Hostname=f35ks01─Refresh= 2secs ─18:04:27────┐
│ │
│------------------------------ │
│ _ __ _ __ ___ ___ _ __ For help type H or ... │
│| '_ \| '_ ` _ \ / _ \| '_ \ nmon -? - hint │
│| | | | | | | | | (_) | | | | nmon -h - full details │
│|_| |_|_| |_| |_|\___/|_| |_| │
│ To stop nmon type q to Quit │
│------------------------------ │
│ │
│Fedora release 35 (Thirty Five) VERSION="35 (Thirty Five)" │
│Vendor=AuthenticAMD Model=AMD EPYC-Milan Processor │
│MHz=1911.004 bogomips=3822.00 lscpu:CPU=4 Little Endian │
│ProcessorChips=4 PhysicalCores=1 Sockets=4 Cores=1 Thrds=1│
│ VirtualCPUs =4 MHz=0 max=0 min=0 │
│ │
│Use these keys to toggle statistics on/off: │
│ c = CPU l = CPU Long-term - = Faster screen updates│
│ C = " WideView U = Utilisation + = Slower screen updates│
│ m = Memory V = Virtual memory j = File Systems │
│ d = Disks n = Network . = only busy disks/procs│
│ r = Resource N = NFS h = more options │
│ k = Kernel t = Top-processes q = Quit │
│─────────────────────────────────────────────────────────────────│
Drücken Sie zum Beispiel C schaltet die Anzeige der CPU-Auslastung um:
┌─16k──[H for help]──Hostname=f35ks01─Refresh= 2secs ─18:05:58─┐
│ CPU Utilisation ─────────────────────────────────────────────│
│---------------------------+---------------------------------+│
│CPU User% Sys% Wait% Idle|0 |25 |50 |75 100| │
│ 1 3.6 17.2 0.0 79.2|Ussssssss> | │
│ 2 2.1 6.2 0.0 91.7|Usss > | │
│ 3 0.0 1.1 0.0 98.9| > | │
│ 4 6.1 17.2 0.0 0.5|UUUssssssss> | │
│---------------------------+---------------------------------+│
│Avg 3.0 10.3 0.0 86.7|Usssss> | │
│---------------------------+---------------------------------+│
│──────────────────────────────────────────────────────────────│
Drücken Sie N schaltet die Netzwerkanzeige um und stapelt sie automatisch unter der CPU-Anzeige:
┌─16k──[H for help]──Hostname=f35ks01─Refresh= 2secs ─18:17:01─┐
│ CPU Utilisation ─────────────────────────────────────────────│
│---------------------------+---------------------------------+│
│CPU User% Sys% Wait% Idle|0 |25 |50 |75 100| │
│ 1 2.6 10.3 0.0 87.1|Usssss > | │
│ 2 0.0 2.2 0.0 97.8|s > | │
│ 3 6.5 11.0 0.0 82.5|UUUsssss> | │
│ 4 0.0 0.5 0.0 99.5| > | │
│---------------------------+---------------------------------+│
│Avg 2.4 5.9 0.0 91.6|Uss > | │
│---------------------------+---------------------------------+│
│ Network I/O ─────────────────────────────────────────────────│
│I/F Name Recv=KB/s Trans=KB/s p_in p_out in_sz out_sz Peak->..│
│ lo 0.0 0.0 0.0 0.0 0.0 0.0...│
│ enp1s0 0.0 0.0 0.5 0.0 52.0 0.0...│
│ enp7s0 218.6 5923.4 3335.5 9989.68 67.1 607.2...│
│ Network Error Counters ──────────────────────────────────────│
│I/F Name iErrors iDrop iOverrun iFrame oErrors oDrop oOver..│
│ lo 0 0 0 0 0 0 ...│
│ enp1s0 0 34419 0 0 0 0 ...│
│ enp7s0 0 34419 0 0 0 0 ...│
│──────────────────────────────────────────────────────────────│
Drücken Sie weiterhin andere Tasten, um weitere Metriken in derselben Ansicht zu stapeln. Verwenden Sie beispielsweise D für Platten-E/A M für Speicher und T für Top-Prozesse.
Zusätzlich zum Stapeln neuer Monitore können Sie auch die Punkt- oder Punkttaste (.) drücken, um nur ausgelastete CPUs und Festplatten sowie + anzuzeigen und - um die Bildschirmaktualisierungszeit zu erhöhen oder zu verringern. Verwenden Sie H um Hilfe anzuzeigen.
Da Sie jederzeit verschiedene Monitore und Metriken aktivieren und deaktivieren können, nmon
ist ein hochflexibles Werkzeug, das Ihnen hilft, das Verhalten Ihres Systems zu verstehen. Es hilft auch bei der Fehlerbehebung, indem es verschiedene Metriken gleichzeitig anzeigt, eine ganzheitliche Sicht auf das System bietet und Ihre Fähigkeit verbessert, Probleme zu verstehen.
Wenn Sie fertig sind, drücken Sie Q um die Überwachungssitzung zu beenden und zu beenden.
Leistungsdaten sammeln
Sie können nicht nur eine ganzheitliche, interaktive Ansicht Ihres Systems bereitstellen, sondern auch nmon
ausführen im Batch-Modus, um Langzeit-Leistungsdaten von Ihrem System für spätere Analysen zu sammeln.
Mit dieser Funktion können Sie zusätzlich zu den vom interaktiven Modus bereitgestellten Echtzeitmetriken nachvollziehen, wie sich Ihr System über einen längeren Zeitraum verhält. Es ist eine leistungsstarke Funktion, die die Kapazitätsplanung ermöglicht und die Möglichkeit bietet, sporadische Probleme zu beheben, die live schwer zu erkennen sind.
Um nmon
auszuführen Verwenden Sie im Batch das Flag -f
beim Starten der Anwendung. Es muss der erste Parameter sein, der bereitgestellt wird. Standardmäßig nmon
sammelt einen Tag lang alle fünf Minuten Daten. Sie können diese Standardwerte ändern, indem Sie die Parameter -s
angeben für Erfassungsintervall und -c
für die Anzahl der Schnappschüsse.
Zum Beispiel, um nmon
zu aktivieren im Batch-Modus eine Stunde lang jede Minute Daten sammeln, einschließlich der Erfassung der wichtigsten Prozesse -t
, führen Sie diesen Befehl aus:
$ nmon -f -s60 -c60 -t
Ihre Terminal-Eingabeaufforderung kehrt sofort zurück, da die Anwendung im Hintergrund ausgeführt wird, wenn Sie diesen Befehl ausführen. Sie können sehen, wie es läuft, indem Sie ps
verwenden :
$ ps -ef | grep nmon
ricardo 1849 1 0 12:27 pts/0 00:00:00 nmon -f -s60 -c60 -t
Im Stapelmodus nmon
speichert die gesammelten Daten im CSV-Format (Comma Separated Value) mit der Erweiterung .nmon
im aktuellen Verzeichnis:
$ ls -l
total 36
-rw-r--r--. 1 ricardo ricardo 36395 Feb 13 12:28 f35ks01_220213_1227.nmon
Da es sich um eine CSV-Datei handelt, können Sie sie mit anderen Linux-Befehlszeilentools zur Textbearbeitung verarbeiten oder zur weiteren Analyse mit Tabellenkalkulationssoftware öffnen.
$ head f35ks01_220213_1227.nmon
AAA,progname,nmon
AAA,command,nmon -f -s60 -c60 -t
AAA,version,16k
AAA,disks_per_line,150
AAA,max_disks,256,set by -d option
AAA,disks,10,
AAA,host,f35ks01
AAA,user,ricardo
AAA,OS,Linux,5.16.8-200.fc35.x86_64,#1 SMP PREEMPT Tue Feb 8 20:58:59 UTC 2022,x86_64
AAA,runname,f35ks01
Zusätzlich zu diesen Methoden ist der nmon
Das Entwicklungsteam stellt ein Skript zur Verfügung, um diese Daten in Diagramme umzuwandeln, die Sie mit Ihrem Webbrowser anzeigen können. Ich schaue mir als nächstes an, wie das geht.
[ Es wäre nicht Linux, wenn es nicht ein Dutzend Möglichkeiten gäbe, jede Aufgabe auszuführen. Laden Sie diese Anleitung zur Installation von Anwendungen unter Linux herunter, um Informationen zu den verschiedenen Methoden zum Installieren von Software zu erhalten. ]
Diagramme erstellen
CSV ist ein flexibles Format, mit dem Sie diese Daten mit verschiedenen Anwendungen wie Tabellenkalkulationssoftware exportieren, analysieren und anzeigen können. Der nmon
Entwickler haben nmonchart
erstellt um es etwas einfacher zu machen. Dieses Shell-Skript konvertiert diese Daten mithilfe von Google Charts JavaScript in HTML, um die Daten in einer grafischen Umgebung zu visualisieren und mit ihnen zu interagieren.
Um nmoncart
zu verwenden , laden Sie es von nmon
herunter Homepage:
$ curl -LO http://sourceforge.net/projects/nmon/files/nmonchart40.tar
Extrahieren Sie dann den Inhalt des Pakets mit tar
:
$ mkdir nmonchart
$ tar xvf nmonchart40.tar -C nmonchart
nmonchart
verwendet die Korn-Shell (ksh), also installieren Sie zum Erstellen von Diagrammen zuerst ksh
in Ihrem System mit dnf
:
$ sudo dnf install -y ksh
Als nächstes konvertieren Sie die .nmon
Datei, die erstellt wurde, als Sie nmon
ausgeführt haben im Stapelmodus mit diesem Befehl:
$ ./nmonchart/nmonchart f35ks01_220213_1227.nmon
Das Skript erstellt eine HTML-Datei mit demselben Namen wie die Quelle .nmon
Datei. Optional können Sie den Namen der Zieldatei als zweiten Parameter für nmonchart
angeben . Hier ist ein Beispiel:
$ ls -lg
total 4164
-rw-r--r--. 1 ricardo 113822 Feb 14 18:52 f35ks01_220213_1227.html
-rw-r--r--. 1 ricardo 93436 Feb 13 13:26 f35ks01_220213_1227.nmon
drwx------. 2 ricardo 4096 Aug 28 2020 nmonchart
Ihre Systemdiagramme sind jetzt bereit. Ihr nächster Schritt ist, sie anzusehen.
[ Holen Sie sich den Bash-Shell-Scripting-Spickzettel. ]
Leistungsdiagramme visualisieren
nmonchart
erstellt eine einzelne HTML-Datei für jede .nmon
Quelldatei, die Sie mit den erforderlichen Diagramm-JavaScript-Bibliotheken eingebettet bereitstellen. Wenn Sie die HTML-Datei auf Ihrem lokalen Computer haben, können Sie sie direkt in Ihrem Webbrowser anzeigen.
Sie können diese Dateien auch über einen Webserver bereitstellen. Eine meiner Lieblingsmethoden hierfür ist die Verwendung von Nginx in einem Podman-Container, wie ich in 20 einzeiligen Linux-Befehlen zum Hinzufügen zu Ihrer Toolbox vorgeschlagen habe.
Erstellen Sie zunächst ein Verzeichnis und verschieben Sie die HTML-Dateien dorthin:
$ mkdir html
$ mv f35ks01_220213_1227.html html/
Verwenden Sie dann Podman, um Inhalte aus html
bereitzustellen Verzeichnis mit Nginx auf Port 8080:
$ podman run --rm -v ./html:/usr/share/nginx/html:ro,Z -p 8080:80 -d nginx
Öffnen Sie bei Bedarf Port 8080 auf der Firewall Ihres Servers, um Datenverkehr zuzulassen:
$ sudo firewall-cmd --add-port 8080/tcp
Zeigen Sie dann in Ihrem Browser auf Ihre URL http://<YOUR_SERVER_IP_ADDR>:8080/f35ks01_220213_1227.html
So zeigen Sie die Diagramme an:
Klicken Sie auf eine der Schaltflächen oben auf dem Bildschirm, um das entsprechende Diagramm anzuzeigen. Die Diagramme sind interaktiv. Sie können hinein- und herauszoomen, um detailliertere Daten anzuzeigen, oder mit der Maus über das Diagramm fahren, um detaillierte Daten für einen bestimmten Zeitraum anzuzeigen.
Abschluss
nmon
ist eine flexible und leistungsstarke Systemüberwachungsanwendung, die Ihnen hilft, Ihr System besser zu verstehen und bei Problemen Fehler zu beheben. Seine kombinierten Fähigkeiten zur Überwachung und Konsolidierung von Echtzeitdaten aus verschiedenen Systemressourcen mit langfristiger Erfassung und Analyse von Leistungsdaten machen es zu einem fantastischen Tool, das Sie in Ihrem Sysadmin-Gürtel haben sollten.