atop: Das top mit Rückblick

Atop

Das Paket „atop“ aus den Paketquellen Ubuntus sowie Debians, in jeder Version, ist relativ veraltet, wohl auch sehr selten benutzt, was sehr schade ist.

Für die Netzwerküberwachung arbeitete „atop“ bislang mit einem Kernel-Patch, der für neuere Kernel lange nicht mehr zur Verfügung steht.
Seit Versionen größer 2 hingegen, stellte der Entwickler als neues Konzept auf ein Kernel-Modul „netatop“ um. Daher installiere ich beide Komponenten aus dem Quellcode manuell.

Das Tool ist in seiner Funktion „top“ sehr ähnlich. Jedoch treten viele Probleme nicht genau zu dem Zeitpunkt auf, in dem der Admin den Task-Manager geöffnet hat.
An dieser Stelle kommt der besondere Vorteil des Tools „atop“ zu tragen, dessen Daemon das System in einem festgelegten Intervall überwacht.

Installation

Vorbereitend installiere ich die Abhängigkeiten:

apt-get install zlib1g-dev linux-headers-`uname -r` build-essential debhelper libncurses5-dev

Damit das Init-Script für Atop funktioniert, erstelle ich zuerst das Verzeichnis für den Lock-State:

sudo mkdir /var/lock/subsys

Anschließend wird „Bash“ zur Standard-Shell befördert, da „Dash“ nicht mit dem Befehl „let“ arbeiten kann.
Folgender Befehl fragt, ob „Dash“ als Standard-Shell benutzt werden soll, hier wähle ich „Nein“. „Bash“ wird fortan benutzt:

dpkg-reconfigure dash

Natürlich könnte auch einfach „/bin/sh“ im Script ersetzt werden, jedoch halte ich es für sinnvoll, „Dash“ nie als Standard-Shell zu benutzen.

sudo dpkg-reconfigure dash

Nun die Quell-Dateien nach ~/build herunterladen und entpacken:

mkdir ~/build && cd ~/build
wget -q -O - http://www.atoptool.nl/download/atop-2.0.2.tar.gz | tar xvzf -
wget -q -O - http://www.atoptool.nl/download/netatop-0.3.tar.gz | tar xvzf -

„Atop“ kompilieren und installieren:

cd ~/build/atop*
sudo make && sudo make install

„Netatop“ Kernel-Modul kompilieren, installieren und beide Dienste starten:

cd ~/build/netatop*
sudo make && sudo make install && sudo service netatop start && sudo service atop start

Das Modul sollte jetzt geladen sein, das kann schnell und einfach überprüft werden:

lsmod | grep netatop

Die Ausgabe darf nicht leer sein.

Alle Daten des „atop“-Dienstes werden nach „/var/log/atop“ geschrieben. Dateien älter als vier Wochen werden täglich gesucht und gelöscht.
Der Systemstatus wird in einem Intervall von 600 Sekunden geprüft und gespeichert.
Diese Zeit kann in der Kopfzeile der Datei „/etc/atop/atop.daily“ angepasst werden.
Ein „netatop“-Dienst ist notwendig, um die Schnittstelle für „atop“ zum Netzwerk dauerhaft zur Verfügung zu stellen.

Funktionsweise und Beispiele

Vorab die Echtzeit-Überwachung, ähnlich „top“.
Zu Beginn wird immer erst eine kurze Übersicht der Daten seit Systemstart angezeigt! Diese Übersicht schließt nach dem ersten Aktualisierungsintervall.
Im Abstand von 10 Sekunden wird die Ansicht zum Systemstatus aktualisiert, dies ist der Standardwert des Intervalls („t“ drücken, um sofort zu aktualisieren). Es werden nur aktive Prozesse angezeigt:

atop

Alle Prozesse anzeigen und die Ansicht alle 2 Sekunden aktualisieren:

atop -a 2

Netzwerkanalyse mit Aktualisierung alle 5 Sekunden:

atop -n 5

Netzwerkanalyse mit Startbefehl der Anwendung, aktualisiert jede Sekunde:

atop -nc 1

Das Auswerten der Logs ist, wie bereits angesprochen, die interessanteste Funktion. Um aufgezeichnete Aktivitäten zu untersuchen, hänge ich „-r Logfile.log“ an:

atop -r /var/log/atop/atop_2014XXXX

Gut: Mit Eingabe von „t“ sowie „T“, gehe ich zeitlich in der Aufzeichnung vor und zurück. Die Schritte entsprechen logischerweise dem Intervall der Konfiguration aus „/etc/atop/atop.daily“.
Besser: Mit „-b“ und -e“ steht es mir frei, einen Zeitraum des Tages auszuwählen.
Anzeigen der Aufnahme vom 1. März, begrenzt auf den Zeitraum 13:00 bis 15:00 Uhr:

atop -r /var/log/atop/atop_20140301 -b 13:00 -e 15:00

Obiges, jedoch zusätzlich Netzwerkaktivität und Startbefehl anzeigen:

atop -r /var/log/atop/atop_20140301 -b 13:00 -e 15:00 -nc

Alle Parameter finden sich selbstverständlich in der „man page“.
Jeder Paramter kann auch im Programm aktiviert werden. Beispielsweise die Taste „n“ für „-n“ (…).

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.