Website-Suche

So erstellen und liefern Sie Systemaktivitätsberichte mit Linux-Toolsets – Teil 3


Als Systemingenieur müssen Sie häufig Berichte erstellen, die die Auslastung der Ressourcen Ihres Systems zeigen, um unter anderem sicherzustellen, dass: 1) sie optimal genutzt werden, 2) Engpässe vermieden werden und 3) die Skalierbarkeit sichergestellt wird.

Neben den bekannten nativen Linux-Tools, die zur Überprüfung der Festplatten-, Speicher- und CPU-Auslastung verwendet werden – um nur einige Beispiele zu nennen – bietet Red Hat Enterprise Linux 7 zwei zusätzliche Toolsets zur Verbesserung der Daten, die Sie für Ihre Berichte sammeln können: sysstat und dstat.

In diesem Artikel werden wir beide beschreiben, aber beginnen wir zunächst mit einem Überblick über die Verwendung der klassischen Tools.

Native Linux-Tools

Mit df können Sie den Speicherplatz und die Inode-Nutzung nach Dateisystem melden. Sie müssen beides überwachen, da ein Platzmangel Sie daran hindert, weitere Dateien zu speichern (und möglicherweise sogar zum Systemabsturz führt), genauso wie ein Mangel an Inodes dazu führt, dass Sie keine weiteren Dateien mit den entsprechenden Daten verknüpfen können Strukturen, was den gleichen Effekt erzeugt: Sie können diese Dateien nicht auf der Festplatte speichern.


df -h 		[Display output in human-readable form]
df -h --total         [Produce a grand total]


df -i 		[Show inode count by filesystem]
df -i --total 	[Produce a grand total]

Mit du können Sie die Speicherplatznutzung nach Datei, Verzeichnis oder Dateisystem schätzen.

Sehen wir uns zum Beispiel an, wie viel Speicherplatz vom Verzeichnis /home belegt wird, das alle persönlichen Dateien des Benutzers enthält. Der erste Befehl gibt den Gesamtspeicherplatz zurück, der derzeit vom gesamten Verzeichnis /home verwendet wird, während der zweite Befehl auch eine aufgeschlüsselte Liste nach Unterverzeichnis anzeigt:


du -sch /home
du -sch /home/*

Nicht verpassen:

  1. 12 „df“-Befehlsbeispiele zum Überprüfen der Linux-Festplattenspeichernutzung
  2. 10 „du“-Befehlsbeispiele zum Ermitteln der Festplattennutzung von Dateien/Verzeichnissen

Ein weiteres Dienstprogramm, das in Ihrem Toolset nicht fehlen darf, ist vmstat. Damit können Sie auf einen Blick Informationen zu Prozessen, CPU- und Speicherauslastung, Festplattenaktivität und mehr sehen.

Bei Ausführung ohne Argumente gibt vmstat Durchschnittswerte seit dem letzten Neustart zurück. Auch wenn Sie diese Form des Befehls ab und zu verwenden können, ist es hilfreicher, nacheinander eine bestimmte Anzahl von Systemauslastungsproben mit einem definierten zeitlichen Abstand zwischen den Proben zu nehmen.

Zum Beispiel,


vmstat 5 10

gibt alle 5 Sekunden 10 entnommene Proben zurück:

Wie Sie im obigen Bild sehen können, ist die Ausgabe von vmstat in folgende Spalten unterteilt: procs (Prozesse), memory, swap, io, system und cpu. Die Bedeutung der einzelnen Felder finden Sie in den Abschnitten FELDBESCHREIBUNG in der Manpage von vmstat.

Wo kann vmstat nützlich sein? Lassen Sie uns das Verhalten des Systems vor und während eines yum-Updates untersuchen:


vmstat -a 1 5

Bitte beachten Sie, dass mit der Änderung von Dateien auf der Festplatte die Menge des aktiven Speichers zunimmt und damit auch die Anzahl der auf die Festplatte geschriebenen Blöcke (bo) und damit die CPU-Zeit gewidmet Benutzerprozessen (uns).

Oder während des Speichervorgangs einer großen Datei direkt auf der Festplatte (verursacht durch dsync):


vmstat -a 1 5
dd if=/dev/zero of=dummy.out bs=1M count=1000 oflag=dsync

In diesem Fall können wir eine noch größere Anzahl von Blöcken beobachten, die auf die Festplatte (bo) geschrieben werden, was zu erwarten war, aber auch einen Anstieg der CPU-Zeit, auf die gewartet werden muss E/A-Vorgänge, die vor der Verarbeitung von Aufgaben abgeschlossen werden müssen (wa).

Nicht verpassen: Vmstat – Linux-Leistungsüberwachung

Andere Linux-Tools

Wie in der Einleitung dieses Kapitels erwähnt, gibt es weitere Tools, mit denen Sie den Systemstatus und die Auslastung überprüfen können (diese werden nicht nur von Red Hat bereitgestellt, sondern auch von anderen großen Distributionen, die offiziell unterstützt werden). Repositories).

Das sysstat-Paket enthält die folgenden Dienstprogramme:

  1. sar (Systemaktivitätsinformationen sammeln, melden oder speichern).
  2. sadf (von sar gesammelte Daten in mehreren Formaten anzeigen).
  3. mpstat (Berichtsprozessoren-bezogene Statistiken).
  4. iostat (CPU-Statistiken und E/A-Statistiken für Geräte und Partitionen melden).
  5. pidstat (Berichtsstatistiken für Linux-Aufgaben).
  6. nfsiostat (Eingabe-/Ausgabestatistiken für NFS melden).
  7. cifsiostat (CIFS-Statistiken melden) und
  8. sa1 (Binärdaten sammeln und in der täglichen Datendatei der Systemaktivität speichern).
  9. sa2 (Schreiben Sie einen täglichen Bericht im Verzeichnis /var/log/sa).

wohingegen dstat der von diesen Tools bereitgestellten Funktionalität einige zusätzliche Funktionen hinzufügt, zusammen mit mehr Zählern und Flexibilität. Eine Gesamtbeschreibung jedes Tools finden Sie, indem Sie yum info sysstat bzw. yum info dstat ausführen oder nach der Installation die einzelnen Manpages überprüfen.

So installieren Sie beide Pakete:


yum update && yum install sysstat dstat

Die Hauptkonfigurationsdatei für sysstat ist /etc/sysconfig/sysstat. In dieser Datei finden Sie die folgenden Parameter:


How long to keep log files (in days).
If value is greater than 28, then log files are kept in
multiple directories, one for each month.
HISTORY=28
Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=31
Parameters for the system activity data collector (see sadc manual page)
which are used for the generation of log files.
SADC_OPTIONS="-S DISK"
Compression program to use.
ZIP="bzip2"

Wenn sysstat installiert ist, werden zwei Cron-Jobs hinzugefügt und in /etc/cron.d/sysstat aktiviert. Der erste Job führt das Systemaktivitätsabrechnungstool alle 10 Minuten aus und speichert die Berichte in /var/log/sa/saXX, wobei XX für die Datei steht Tag des Monats.

Somit enthält /var/log/sa/sa05 alle Systemaktivitätsberichte ab dem 5. des Monats. Dies setzt voraus, dass wir den Standardwert in der Variablen HISTORY in der Konfigurationsdatei oben verwenden:


*/10 * * * * root /usr/lib64/sa/sa1 1 1

Der zweite Job generiert täglich um 23:53 eine Zusammenfassung der Prozessabrechnung und speichert diese in /var/log/sa/sarXX-Dateien, wobei XX hat die gleiche Bedeutung wie im vorherigen Beispiel:


53 23 * * * root /usr/lib64/sa/sa2 -A

Beispielsweise möchten Sie möglicherweise Systemstatistiken von 9:30 Uhr bis 17:30 Uhr des sechsten Monats in einer .csv-Datei ausgeben > Datei, die problemlos mit LibreOffice Calc oder Microsoft Excel angezeigt werden kann (mit diesem Ansatz können Sie auch Diagramme oder Grafiken erstellen):


sadf -s 09:30:00 -e 17:30:00 -dh /var/log/sa/sa06 -- | sed 's/;/,/g' > system_stats20150806.csv

Sie können alternativ das Flag -j anstelle von -d im obigen Befehl sadf verwenden, um die Systemstatistiken in JSON auszugeben. -Format, das beispielsweise nützlich sein kann, wenn Sie die Daten in einer Webanwendung nutzen müssen.

Schauen wir uns abschließend an, was dstat zu bieten hat. Bitte beachten Sie, dass dstat bei der Ausführung ohne Argumente standardmäßig -cdngy annimmt (kurz für CPU, Festplatte, Netzwerk, Speicherseiten bzw. Systemstatistiken) und eines hinzufügt Zeile jede Sekunde (Ausführung kann jederzeit mit Strg + C unterbrochen werden):


dstat

Um die Statistiken in eine .csv-Datei auszugeben, verwenden Sie das Flag –output gefolgt von einem Dateinamen. Mal sehen, wie das in LibreOffice Calc aussieht:

Zur besseren Lektüre empfehle ich Ihnen dringend, sich die Manpage von dstat zusammen mit der Manpage von sysstat im PDF-Format anzusehen. Sie finden mehrere weitere Optionen, die Ihnen beim Erstellen benutzerdefinierter und detaillierter Systemaktivitätsberichte helfen.

Nicht verpassen: Sysstat – Tool zur Überwachung der Linux-Nutzungsaktivität

Zusammenfassung

In diesem Handbuch haben wir erklärt, wie Sie sowohl native Linux-Tools als auch bestimmte mit RHEL 7 bereitgestellte Dienstprogramme verwenden, um Berichte über die Systemauslastung zu erstellen. Irgendwann werden Sie sich als beste Freunde auf diese Berichte verlassen.

Sie haben wahrscheinlich andere Tools verwendet, die wir in diesem Tutorial nicht behandelt haben. Wenn ja, können Sie diese gerne zusammen mit anderen Vorschlägen/Fragen/Kommentaren, die Sie haben, mit dem Rest der Community teilen – über das untenstehende Formular.

Wir freuen uns von Ihnen zu hören.