Zum Inhalt springen
Startseite » Blog » Einfaches Server-Monitoring mit Historie

Einfaches Server-Monitoring mit Historie

    Für das Linux-Server Monitoring existieren viele populäre Tools, wie Nagios, Zabbix oder Icinga. Ihnen gemein ist die relativ aufwendige Einrichtung und Konfiguration. Wer sich diesen Aufwand sparen und trotzdem nicht auf Ressourcen-Graphen oder die Analyse historischer System-Ereignisse verzichten möchte, der hat noch eine weitere Möglichkeit.

    atop liefert extensives Monitoring und ist dabei konfigurationsfrei, ähnlich wie htop oder iotop. Zusätzlich beherrscht es, was nur die wenigsten Tools zur Ressourcenüberwachung beherrschen: Die Aufzeichnung der Ressourcen. So kann man beispielsweise nachverfolgen, welches Programm letzten Mittwoch um 14:10 Uhr das Netzwerk-Interface voll ausgelastet hat.

    Installation

    Die Installation folgt dem bekannten make – make install Schema. Außerdem besorgen wir noch das netatop Zusatzmodul, das es ermöglicht, die Netzwerkzugriffe einem bestimmten Prozess zuzuordnen und atopsar-plot, das aus den Ausgaben von atop hübsche Graphen bereitet und ins Terminal zeichnet.

    sudo apt install zlib1g-dev zlib1g libncurses5-dev
    wget https://www.atoptool.nl/download/netatop-3.1.tar.gz
    tar -xzf netatop*.gz
    cd netatop*/
    make -j4
    sudo make install
    sudo systemctl enable --now netatop
    cd ..
    wget https://www.atoptool.nl/download/atop-2.8.1.tar.gz
    tar -xzf atop*.gz
    cd atop*/
    make -j4
    sudo make install
    sudo systemctl enable --now atop
    sudo systemctl enable --now atop-rotate.timer
    pip install -U git+https://codeberg.org/mgellner/atopsar-plot

    Bedienung von atop

    Direkt nach der Installation von atop beginnt die Ressourcen-Aufzeichnung. Wenn atop genügend Daten aufgezeichnet hat, können wir in der Historie stöbern.

    CPU-Nutzung aller Prozesse seit dem Systemstart

    atop -cr

    Um die CPU-Auslastung über die Zeit hinweg nachzuverfolgen, nutzen wir obiges Kommando mit den Flags -c, um die komplette Kommandozeile der Prozesse zu sehen und -r, um zur Zeit des Systemstarts zurückzukehren. Es zeigt sich folgendes Bild:

    atop -cr

    Im oberen Bereich steht das Datum und die Uhrzeit, zu der wir uns in der Aufzeichnung befinden. Mit den Tasten t und T können wir uns vorwärts und rückwärts durch die Aufzeichnung bewegen. Die Schrittweite entspricht standardmäßig 10 Minuten, ist aber einstellbar. Sämtliche Werte sind über jeweils 10 Minuten gemittelt.

    Im unteren Bereich finden sich die Prozesse sortiert nach der CPU-Last. Der obere Bereich zeigt verschiedene Kennzahlen zur aktuellen Systemlast. Vergrößert man das Terminal-Fenster, werden die Messwerte immer zahlreicher. Alle Ansichten von atop sind interaktiv, d.h. wir können die Sortierung ändern, durch die Prozesse blättern, und so weiter. Weitere Details und Tastenkombinationen sind in der Dokumentation beschrieben.

    Analyse eines System-Ereignisses zu einem bestimmten Zeitpunkt

    Häufig möchte man ein Ereignis analysieren, das zu einem bestimmten Zeitpunkt aufgetreten ist. Hier kann atop seine Stärken ausspielen. Mit folgendem Kommando springen wir an einen bestimmten Tag zu einer Bestimmten Uhrzeit:

    atop -n -c -r /var/log/atop/atop_20220102 -b 04:00 -e 05:00

    Im Verzeichnis /var/log/atop/ legt atop üblicherweise seine Log-Dateien ab. Mit dem -r Parameter übergeben wir einen bestimmten Tag. Mit -b und -e legen wir Beginn und End-Zeit der Analyse fest. -n teilt atop mit, dass wir eine Netzwerk-Analyse durchführen wollen. Für Netzwerkanalysen wird zwingend das netatop-Modul benötigt, das wir im oberen Installations-Schritt mit installiert haben. Weitere mögliche Analyse-Parameter sind -m für den Arbeitsspeicher (memory) und -d für Festplattenaktivität (disk). So lässt sich häufig relativ einfach die Ursache eines bestimmten Problems finden.

    Hübsche Graphen!

    Wer etwas für’s Auge haben, oder den Zeitraum eingrenzen möchte, in dem ein bestimmtes Systemereignis aufgetreten ist, kann dafür atopsar-plot nutzen. Dieses hatten wir ebenfalls im oberen Installations-Schritt aufgespielt. Ohne Parameter und wenn atop genügend Daten aufgezeichnet hat, zeigt atopsar-plot nach dem Aufruf folgende Graphen:

     atopsar-plot mit allen Ressourcen

    Diese werden direkt im Terminal gezeichnet. Im Gegensatz zu anderen Tools muss also nicht erst ein kompletter Webserver aufgesetzt werden, sondern atopsar-plot liefert Ausgaben beispielsweise auch direkt über eine SSH-Session. Mit dem Parameter -d -1, -d -2 können die System-Graphen von gestern bzw. vorgestern gezeichnet werden. Alternativ nutzt man das Format YYYY-MM-DD. Weiterhin bietet atopsar-plot die Möglichkeit, Alarm-E-Mails zu senden, sobald eine Ressource einen bestimmten Grenzwert überschreitet. Dafür trägt man einfach folgendes in die crontab ein:

    # crontab -e
    */10 * * * * /path/to/atopsar-plot --alert-mail alert@example.com

    Ab sofort wird eine E-Mail versendet, sobald eine Ressource (CPU, Festplatte, Arbeitsspeicher oder Netzwerk) im Mittel über 10 Minuten mehr als 70% ihrerer Kapazität nutzt. Dafür muss allerdings das mailx-Paket für den Versand von Mails korrekt eingerichtet sein.