Sysstat

  • Urspruenglicher Autor: Dirk Deimeke
  • Urspruengliches Datum: 30.12.2011

Monitoring ist eine der Kernaufgaben in der Administration. Warum und wie viel man ueberwachen sollte, ist in dem - meiner Meinung nach - besten Artikel zum Thema beschrieben: The Philosophy of Monitoring. Wir werden das sicherlich hier auch noch einmal ausfuehrlich thematisieren.

Es gibt eine grosse Menge an Open Source Monitoring-Loesungen, die verschiedene Anwendungszwecke abdecken. Nur um einmal ein paar Namen zu nennen, fuehre ich hier Cacti, Munin, Nagios, Icinga, Zabbix, Smokeping, Centreon und viele andere mehr (die fett gedruckten setzen Ramon und ich fuer unsere Server ein).

In die gleiche Richtung, wenn auch nicht ganz, stossen die SYSSTAT-Utilities. Die Utilities gibt es für nahezu jedes Unix-artige Betriebssystem und sind vermutlich bei allen Linux-Systemen in den Standard-Paketquellen enthalten. Es gibt einen guten Übersichtsartikel zu Sysstat im Linux-Magazin.

Fuer mich besonders wichtig ist das „System Activity Reporting“, bei Sysstat uebernimmt die Aufgabe das Programm sar. Es bereitet die Daten, die durch den „System Activity Data Collector“ (sadc) gesammelten Daten für Menschen lesbar auf. Der Datensammler sadc liest eine „lange“ Reihe von aktuellen Systemwerten aus dem virtuellen proc-Dateisystem und schreibt sie in eine Binaerdatei. Da das nur sehr wenig Last erzeugt (nahezu gar keine), gibt es keinen Grund, den Datensammler nicht auf jedem installierten Linux oder Unix mitlaufen zu lassen. Die gesammelten Werte sind bei der Fehleranalyse oder der nachtraeglichen Untersuchung von Performance-Problemen enorm hilfreich.

Doch jetzt einmal „Schritt fuer Schritt“.

Installiert wird Sysstat ueber das Paketmanagement oder man uebersetzt es sich durch den „klassischen Dreisatz“ - ./configure ; make ; make install - selber.

Unter Debian-Systemen (und Ubuntu) muss in der Datei /etc/default/sysstat der Parameter ENABLED auf true gesetzt werden, sonst werden die Daten nicht gesammelt.

Die Datensammlung selber passiert via cron. In der Datei /etc/cron.d/sysstat finden sich die folgenden Zeilen:

# The first element of the path is a directory where the debian-sa1
# script is located
PATH=/usr/lib/sysstat:/usr/sbin:/usr/sbin:/usr/bin:/sbin:/bin
 
# Activity reports every 10 minutes everyday
5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1
 
# Additional run at 23:59 to rotate the statistics file
59 23 * * * root command -v debian-sa1 > /dev/null && debian-sa1 60 2

Dass debian-sa1 benutzt wird, ist eine Besonderheit von Debian, ansonsten heisst das Programm einfach sa1.

Der erste Cron-Eintrag sorgt dafuer, dass alle 10 Minuten ein Satz von Werten aufgezeichet wird. Das reicht, um einen Ueberblick ueber das System zu haben. Wenn man eine hoehere Aufloesung moechte, ist das zu aendern.

Der zweite Eintrag rotiert die Logdateien, bei Debian liegen sie unter /var/log/sysstat.

Welche Werte alle aufgezeichnet werden, zeigt ein sar -A, fuer einen Ueberblick, empfehle ich aber das Java-Programm kSar, das die Daten grafisch aufbereitet. Das oben im Artikel angezeigte Bild ist damit entstanden. Den kompletten Report fuer den gestrigen Tag von unserem Webserver findet Ihr in der PDF-Datei bar.pdf (3.5 MB).

Zurück zur Uebersicht