- Veröffentlicht am
- • How2-Tipps
Logging & Monitoring – was in den Apache-Logs steht
- Autor
-
-
- Benutzer
- tmueller
- Beiträge dieses Autors
- Beiträge dieses Autors
-
Analyse der access- und error.log-Dateien, Logformate und Monitoring mit Tools wie GoAccess oder Netdata
Wer einen Apache-Webserver betreibt, sollte nicht nur seine Website im Blick behalten, sondern auch die Logdateien. Denn hier steckt ein Schatz an Informationen – über Besucher, Fehler, Sicherheitsvorfälle und Performance.
In diesem Artikel erfährst du, wo du die Logs findest, wie du sie richtig liest und auswertest, und welche Tools wie GoAccess oder Netdata dein Monitoring auf das nächste Level bringen.
Warum Logging so wichtig ist
Logs sind das Gedächtnis deines Webservers. Sie dokumentieren:
- Zugriffe auf deine Website
- Serverfehler und Fehlkonfigurationen
- Angriffsversuche oder verdächtige Requests
- Performance-Statistiken (Antwortzeiten, Statuscodes)
Kurz gesagt: Wer seine Apache-Logs regelmäßig auswertet, entdeckt Probleme, bevor sie zum Ausfall werden.
Die wichtigsten Apache-Logdateien
Apache legt standardmäßig zwei zentrale Logdateien an:
1. Access Log (access.log)
Hier werden alle Anfragen protokolliert, die an den Server gestellt werden. Jede Zeile beschreibt wer wann was angefordert hat – und wie der Server reagiert hat.
Standardpfad:
/var/log/apache2/access.log
2. Error Log (error.log)
Protokolliert alle Fehler – von Syntaxproblemen in der Konfiguration bis hin zu PHP- oder Berechtigungsfehlern.
Standardpfad:
/var/log/apache2/error.log
Tipp: In der VirtualHost-Konfiguration kannst du eigene Logdateien pro Domain definieren:
<VirtualHost *:80>
ServerName example.com
DocumentRoot /var/www/example
ErrorLog ${APACHE_LOG_DIR}/example_error.log
CustomLog ${APACHE_LOG_DIR}/example_access.log combined
</VirtualHost>
Logformate verstehen
Apache bietet verschiedene Logformate, die über die Direktive LogFormat gesteuert werden.
Standardformat „Combined“:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
Beispielzeile:
192.168.1.10 - - [03/Nov/2025:12:34:56 +0100] "GET /index.html HTTP/1.1" 200 5321 "https://google.com" "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
Erklärung:
| Feld | Bedeutung |
|---|---|
| 192.168.1.10 | IP-Adresse des Clients |
| - - | Benutzername (optional, meist leer) |
| [03/Nov/2025:12:34:56 +0100] | Zeitpunkt des Requests |
| "GET /index.html HTTP/1.1" | Methode, Pfad und Protokoll |
| 200 | HTTP-Statuscode |
| 5321 | Antwortgröße in Bytes |
| "https://google.com" | Referrer |
| "Mozilla/5.0..." | Browser/User-Agent |
Statuscodes kurz erklärt:
- 200 – OK
- 301/302 – Weiterleitung
- 404 – Seite nicht gefunden
- 500 – Serverfehler
Logging individuell anpassen
Beispiel: Eigenes Logformat für Debugging
LogFormat "%h %u %t \"%r\" %>s %b %{Referer}i %{User-Agent}i %{Host}i" debug
CustomLog ${APACHE_LOG_DIR}/debug_access.log debug
So kannst du genau steuern, welche Informationen Apache mitschreibt – z. B. zusätzliche Header, Hostnamen oder Antwortzeiten.
Fehleranalyse mit dem Error-Log
Die error.log ist deine erste Anlaufstelle bei Problemen.
Hier findest du Hinweise auf:
- Syntaxfehler in der Apache-Konfiguration
- Berechtigungsfehler (z. B. „Permission denied“)
- fehlende Dateien („File not found“)
- PHP- oder CGI-Fehler
Beispiel:
[Sun Nov 03 13:42:18.001234 2025] [php:error] [pid 1234] [client 192.168.1.10:51432] PHP Warning: Undefined variable $user in /var/www/html/login.php on line 12
Tipp: Filtere die letzten 20 Fehler mit:
sudo tail -n 20 /var/log/apache2/error.log
Oder verfolge sie live:
sudo tail -f /var/log/apache2/error.log
Monitoring mit GoAccess
GoAccess ist ein Open-Source-Tool zur Echtzeitanalyse von Apache-Logs – direkt im Terminal oder als Web-Dashboard.
Installation (Debian/Ubuntu):
sudo apt install goaccess -y
Analyse starten:
sudo goaccess /var/log/apache2/access.log --log-format=COMBINED
Ergebnis: Du bekommst eine übersichtliche Darstellung mit:
- Besucherzahlen
- Antwortzeiten
- Top-Seiten
- Browserstatistiken
- Fehlerraten
Oder du generierst ein HTML-Dashboard:
sudo goaccess /var/log/apache2/access.log -o /var/www/html/report.html --log-format=COMBINED
Dann kannst du deine Statistiken im Browser unter http://deinserver/report.html abrufen.
Monitoring mit Netdata
Netdata ist ein leistungsstarkes, visuelles Monitoring-Tool für Server. Es bietet in Echtzeit Einblicke in:
- CPU- und RAM-Auslastung
- Netzwerk- und Festplattenaktivität
- Apache-Traffic und aktive Verbindungen
Installation:
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
Nach der Installation kannst du das Dashboard aufrufen unter:
http://<dein-server>:19999
Tipp: Kombiniere Netdata mit Logrotation (logrotate), um alte Logs automatisch zu archivieren.
Best Practices für Logging
| Maßnahme | Zweck |
|---|---|
| Logrotation aktivieren | Alte Logs automatisch archivieren (/etc/logrotate.d/apache2) |
| Eigene Logs pro Domain | Übersicht bei Multi-Domain-Hosting |
| Logformate dokumentieren | Einheitlich für Auswertungen |
| Regelmäßige Auswertung | Frühzeitige Erkennung von Angriffen oder Lastspitzen |
| Automatische Alarme | z. B. mit Fail2Ban bei verdächtigen Einträgen |
Apache-Logs sind mehr als nur Textzeilen – sie sind der direkte Draht zu deinem Server. Wer regelmäßig hineinblickt, entdeckt Fehler, Trends und Sicherheitsrisiken, bevor sie Schaden anrichten.
Mit Tools wie GoAccess und Netdata verwandelst du rohe Logdaten in klare Erkenntnisse. So wird dein Apache-Server nicht nur stabiler, sondern auch smarter.
💡 Merke: Logging ist kein Selbstzweck – es ist dein Frühwarnsystem im digitalen Alltag.