Linux-Prozesse systemweit protokollieren
Linux bringt mit dem Process Accounting ein oft übersehenes Bordmittel mit, um abgeschlossene Prozesse systemweit zu protokollieren. Admins erhalten damit nachvollziehbare Informationen darüber, welche Kommandos wann und von wem ausgeführt wurden. Richtig eingesetzt, eignet sich Process Accounting für Forensik, Abrechnung und Kapazitätsanalysen, ohne zusätzliche Monitoringtools installieren zu müssen.
Um unter Linux einzelne Prozesse systemweit zu erfassen, steht mit Process Accounting eine seit Langem verfügbare Kernel-Funktion zur Verfügung. Sie protokolliert alle beendeten Prozesse eines Systems in einer zentralen Accounting-Datei – unabhängig davon, ob diese interaktiv oder durch Skripte gestartet wurden. Um die Funktion zu nutzen, muss zunächst das entsprechende Paket installiert sein. Je nach Distribution trägt es unterschiedliche Namen:
- Debian/Ubuntu: acct
- RHEL/CentOS/AlmaLinux/Rocky: psacct oder acct
Nach der Installation lässt sich Process Accounting mit folgendem Befehl aktivieren:
/usr/sbin/accton /var/account/pacct
Accton aktiviert die Prozessabrechnung und legt die Binärlogdatei "pacct" an, sofern sie noch nicht existiert – typischerweise unter "/var/account/". Beachten Sie, dass der Pfad distributionsabhängig variieren kann.
Ist Process Accounting aktiv, schreibt das System für jeden abgeschlossenen Prozess einen Datensatz inklusive Laufzeiten und Ressourcenverbrauch. Der Dienst lässt sich dauerhaft aktivieren, etwa über systemd (acct.service), sofern vorhanden. Die Accounting-Dateien, typischerweise unter "/var/account/", liegen in binärem Format vor und müssen mit speziellen Werkzeugen ausgewertet werden. Für eine rohe Darstellung eignet sich etwa:
dump-acct /var/account/pacct
Der Output ist spaltenbasiert und enthält unter anderem:
- Prozessname
- User- und System-CPU-Zeit
- Gesamtlaufzeit
- UID und GID
- Speicherverbrauch
- Start- beziehungsweise Endzeitpunkt
Wichtig: Process Accounting erfasst keine laufenden Prozesse und speichert keine Kommandozeilenparameter. Für den administrativen Alltag sind deshalb oft höher abstrahierte Auswertungskommandos wie lastcomm (Anzeige zuletzt ausgeführter Kommandos) oder sa (statistische Auswertungen) praktikabler. Process Accounting eignet sich aber hervorragend zur nachträglichen Analyse von Systemaktivitäten. Gerade in sicherheitsrelevanten oder regulierten Umgebungen liefert es eine wertvolle Ergänzung zu klassischen Monitoring- und Audit-Mechanismen.