KeyHelp: Webserver-Protokolle und Webstatistik auswerten, IP-Adressen kürzen
So finden Sie in KeyHelp die Zugriffs- und Fehlerprotokolle jeder Domain, öffnen die Webstatistik AWStats und prüfen, wann und wie KeyHelp die IP-Adressen in Protokollen und Statistik tatsächlich kürzt.
Geprüft am 01.10.2026 · für KeyHelp 26.1.1
WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Wer eine Website betreibt, braucht die Webserver-Protokolle: Sie zeigen fehlende Seiten, Angriffsversuche und welche Inhalte gefragt sind. Gleichzeitig steht in jeder Zeile die IP-Adresse des Besuchers. KeyHelp bietet dafür drei Bausteine: eine Protokollansicht pro Domain, die Webstatistik AWStats und eine IP-Anonymisierung, die ab Werk eingeschaltet ist. Diese Anleitung zeigt, wo Sie Protokolle und Statistik finden, wann und wie KeyHelp die IP-Adressen kürzt und was dabei im Test tatsächlich in den Dateien stand. Die Zugriffe haben wir mit Adressen aus den Dokumentationsnetzen selbst erzeugt und die Rotation erzwungen. Rechtliche Fragen behandelt diese Anleitung nicht, nur die Technik. Grundlage ist ein KeyHelp-Server wie in KeyHelp installieren und absichern.
Voraussetzungen
- KeyHelp-Server, getestet mit KeyHelp 26.1.1 (Build 3698) auf Debian 12.15.
- Admin-Zugang für „Konfiguration“, „Datenschutz“ und „Webstatistik (AWStats)“.
- Ein Kunde mit Domain, im Beispiel
kunde1(Max Mustermann) mitkunde1.example.de. - SSH-Zugang als root, wenn Sie die Protokolldateien wie hier direkt prüfen wollen.
Schritt 1: Wo KeyHelp protokolliert
KeyHelp legt für jede Domain und Subdomain eines Kunden ein eigenes Verzeichnis an, im Test kunde1.example.de, www.kunde1.example.de und kunde1.server.example.de unter /home/users/kunde1/logs/. Die Apache-Konfiguration des Kunden verweist darauf:
60: CustomLog "/home/users/kunde1/logs/kunde1.example.de/access.log" keyhelp_log
61: ErrorLog "/home/users/kunde1/logs/kunde1.example.de/error.log"
Das Format keyhelp_log ist in /etc/apache2/keyhelp/keyhelp.conf definiert. Es entspricht dem bekannten Combined-Format mit Client-IP (%h), Zeit, Anfrage, Status, Referer und User-Agent, ergänzt um die empfangenen und gesendeten Bytes:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" keyhelp_log
Für den Test haben wir in der VM zusätzliche Adressen aus den Dokumentationsnetzen eingerichtet und die Startseite von dort aufgerufen. So sieht ein frischer Eintrag aus:
198.51.100.77 - - [01/Oct/2026:18:36:04 +0000] "GET / HTTP/1.1" 200 1914 "-" "curl/7.88.1" 81 2185
2001:db8:1234:5678:9abc::77 - - [01/Oct/2026:18:36:04 +0000] "GET / HTTP/1.1" 200 1914 "-" "curl/7.88.1" 81 2185
Die Zeiten stehen in UTC, weil der Testserver auf UTC lief. Das Panel selbst protokolliert getrennt nach /var/log/apache2/keyhelp/.
Verifizieren: Rufen Sie Ihre Domain einmal auf und prüfen Sie mit tail -n 3 /home/users/kunde1/logs/kunde1.example.de/access.log, ob der Zugriff mit Ihrer IP-Adresse erscheint.
Schritt 2: Protokolle im Panel ansehen
Als Admin öffnen Sie „Domains“ und klicken in der Zeile der Domain auf das Symbol „Protokolle anzeigen“. Die Seite „Webserver-Protokolle“ zeigt die neuesten Einträge aus Zugriffs- und Fehlerprotokoll in einer Tabelle mit „Datum“, „Client-IP“, „User-Agent“, „HTTP-Code“ und „Nachricht“. Fehlercodes wie 404 waren im Test rot markiert. Über der Tabelle stehen die Schaltflächen „Echtzeit-Überwachung starten“, „Aktualisieren“ und „Ansicht anpassen“. Die Echtzeit-Überwachung liest laut KeyHelp-Dokumentation die Protokolle in regelmäßigen Abständen neu ein.

Darunter listet KeyHelp unter „Zugriffs-Protokolle“ und „Fehler-Protokolle“ alle vorhandenen Dateien zum Herunterladen, im Test access.log bis access.log.4.gz. Die Tabelle oben zeigte im Test nur Einträge des laufenden Protokolls. Darin stehen die IP-Adressen ungekürzt, auch bei eingeschalteter Anonymisierung. Das ist so vorgesehen, wie Schritt 3 zeigt.
Verifizieren: Die Einträge in der Tabelle stimmen mit dem Ende von access.log überein. Im Test zeigte die Tabelle die drei Aufrufe von 18:42:02 einschließlich GET /fehlt.php mit Code 404.
Schritt 3: IP-Anonymisierung einstellen und prüfen
Die Einstellung finden Sie als Admin unter „Konfiguration“, „Datenschutz“. Ab Werk waren im Test alle drei Haken gesetzt. KeyHelp erklärt den Ansatz selbst: Die Anonymisierung soll greifen „nach der für die technische Analyse erforderlichen Zeitspanne (in der Regel 7 Tage)“, und „Die Anonymisierung erfolgt im Anschluss an die automatische Rotation der Protokolldateien.“

Technisch hängt das an /etc/logrotate.d/keyhelp. Die Kundenprotokolle werden wöchentlich rotiert, vier alte Dateien bleiben erhalten. Nach der Rotation ruft KeyHelp ein eigenes Skript auf:
/home/users/*/logs/*/access.log
/home/users/*/logs/*/error.log
/var/log/apache2/keyhelp/*.log
{
weekly
rotate 4
php /home/keyhelp/www/keyhelp/bin/anonymize_ips_after_rotation.php
Das Skript ist mit ionCube kodiert und nicht lesbar. Wir haben deshalb die Wirkung gemessen und die Rotation mit logrotate -f /etc/logrotate.d/keyhelp sofort ausgelöst. Die beiden Einträge aus Schritt 1 standen danach so in access.log.1:
198.51.0.0 - - [01/Oct/2026:18:36:04 +0000] "GET / HTTP/1.1" 200 1914 "-" "curl/7.88.1" 81 2185
2001:db8:1234:: - - [01/Oct/2026:18:36:04 +0000] "GET / HTTP/1.1" 200 1914 "-" "curl/7.88.1" 81 2185
Bei IPv4 setzt KeyHelp also die letzten beiden Blöcke auf 0, bei IPv6 bleiben die ersten 48 Bit stehen. Das Fehlerprotokoll wird ebenso behandelt:
[Thu Oct 01 18:36:14.671201 2026] [authz_core:error] [pid 2050:tid 2081] [client 198.51.0.0:53874] AH01630: client denied by server configuration: /home/users/kunde1/www/
Referer und User-Agent bleiben vollständig erhalten. Auch das Panel-Protokoll unter /var/log/apache2/keyhelp/ war nach der Rotation gekürzt.
Kunden entscheiden lassen: Entfernen Sie den Haken „Anonymisiert die Protokolle der Kunden“, gilt laut Hinweis: „Wenn deaktiviert, können Benutzer individuell bestimmen, ob eine Anonymisierung erfolgen soll.“ Im Test erschien dann im Kunden-Dashboard unter „Konto-Optionen“ ein eigener Schalter. Er stand zunächst auf „Deaktiviert“, und die rotierte Datei behielt die volle Adresse:
198.51.100.77 - - [01/Oct/2026:18:37:04 +0000] "GET /kunde-aus.html HTTP/1.1" 404 236 "-" "curl/7.88.1" 95 381

Nach einem Klick des Kunden auf den Schalter („Aktiviert“) war die nächste Rotation wieder gekürzt. Wer die Anonymisierung für alle Kunden sicherstellen will, lässt den Admin-Haken also gesetzt.
Verifizieren: Prüfen Sie nach der nächsten regulären Rotation, ob in access.log.1 nur gekürzte Adressen stehen, etwa mit head -n 3 /home/users/kunde1/logs/kunde1.example.de/access.log.1. Der nächste Lauf des logrotate.timer war im Test für 00:00 UTC geplant, die Kundenprotokolle selbst rotieren wöchentlich.
Schritt 4: Webstatistik mit AWStats
Die Statistik erzeugt KeyHelp mit AWStats, einstellbar als Admin unter „Konfiguration“, „Webstatistik (AWStats)“. Dort lässt sich die Statistik ganz abschalten und die DNS-Auflösung zuschalten, die im Test ab Werk aus war. Der Kunde öffnet „Statistiken“, legt beim ersten Mal ein eigenes Passwort fest, wählt unter „Domain-Statistiken“ die Domain und klickt „Statistik anzeigen“. Die Anmeldung erfolgt laut Panel mit „denselben Benutzernamen, mit dem Sie sich in diesem Control Panel anmelden“, im Test also kunde1 mit dem Statistik-Passwort.

Die Statistik läuft über den KeyHelp-Wartungsjob, zusätzlich vor jeder Rotation. Direkt nach den Testaufrufen meldete das Kunden-Dashboard: „Derzeit sind keine Statistiken verfügbar. Bitte versuchen Sie es später noch einmal.“ Wir haben den Lauf deshalb von Hand angestoßen:
php /home/keyhelp/www/keyhelp/cronjob/mastercronjob.php --force="statistic" --wait-until-ready
[2026-10-01 18:38:08] INFO | Build statistics for 2026-9...
[2026-10-01 18:38:10] INFO | Build statistic for 2026-10...
Mit aktivierter „IP-Anonymisierung innerhalb der Webstatistik (AWStats)“ schreibt KeyHelp in die AWStats-Konfiguration der Domain ShowHostsStats=0, die Liste der Rechner fehlt dann im Bericht. In den erzeugten HTML-Seiten fanden wir keine Test-IP. Die AWStats-Datendatei, aus der die Berichte entstehen, enthielt sie aber trotzdem im Klartext:
BEGIN_VISITOR 1
192.0.2.50 3 3 5742 20261001183542 20261001183542 /
END_VISITOR
Die Datei liegt im per /webstats/ ausgelieferten Verzeichnis. Ein Abruf ihrer URL mit den Statistik-Zugangsdaten des Kunden lieferte Status 200. Gemessen haben wir das mit curl auf dem Server selbst, nicht von außen, und zu einem Zeitpunkt, als die AWStats-Option bereits abgeschaltet war (siehe unten). Der Zugangsschutz per .htaccess hängt nicht an dieser Option:
AWStats-Datenbank per Browser: 200
Die Keyweb-Ankündigung zu KeyHelp 23.0 sagt dagegen: „Ab KeyHelp 23.0 werden bei aktivierter Option generell keine Besucher-IP-Adressen mehr erfasst.“ Auch der Hinweis im Panel lautet: „Wenn aktiviert, werden die IP-Adressen der Besucher nicht in den Webstatistiken erfasst.“ In KeyHelp 26.1.1 traf das im Test nur auf die Anzeige zu, nicht auf die Datendatei. Eine Abhilfe, die die IP-Adresse aus der Datendatei fernhält, haben wir nicht getestet. Laut Panel-Hinweis verarbeitet AWStats keine Protokolle mehr, wenn Sie unter „Konfiguration“, „Webstatistik (AWStats)“ die Statistik deaktivieren; ob bereits gespeicherte Datendateien dabei entfernt werden, haben wir nicht geprüft. Schalten Sie die Option ab, setzt KeyHelp ShowHostsStats=PHBL und die volle Adresse erscheint auch in den Berichten, etwa in allhosts.html und lasthosts.html.
Verifizieren: Suchen Sie nach einem Statistiklauf in der Datendatei unter /home/keyhelp/www/keyhelp.webstats/KUNDE/DOMAIN/database/ nach Ihrer eigenen IP-Adresse, zum Beispiel mit grep -c. Ein Treffer heißt: Die Adresse ist gespeichert.
Typische Fehler
Volle IP-Adressen trotz Anonymisierung. Das laufende access.log und die Protokollansicht im Panel enthalten immer die volle Adresse. Gekürzt wird erst nach der Rotation. Prüfen Sie access.log.1, nicht das laufende Protokoll.
Kunde hat ungekürzte Protokolle. Ist der Admin-Haken „Anonymisiert die Protokolle der Kunden“ entfernt, entscheidet jeder Kunde selbst, im Test war sein Schalter danach aus. Setzen Sie den Haken wieder, wenn alle Kunden gleich behandelt werden sollen.
„Derzeit sind keine Statistiken verfügbar. Bitte versuchen Sie es später noch einmal.“ Für die Domain lief noch kein Statistikjob. Warten Sie den nächsten Lauf ab oder starten Sie ihn wie in Schritt 4.
Statistik verlangt ein Passwort, das der Kunde nicht kennt. Das Statistik-Passwort ist getrennt vom Panel-Passwort. Ohne Anmeldung antwortete /webstats/kunde1/ im Test mit 401. Der Kunde setzt es unter „Statistiken“, „Passwort für Webstatistik Zugang“.
Häufige Fragen
Wie lange bewahrt KeyHelp die Protokolle auf?
Laut /etc/logrotate.d/keyhelp wöchentlich rotiert mit rotate 4: das laufende Protokoll plus vier ältere Dateien.
Wo liegt der Zugangsschutz der Statistik?
Das Verzeichnis /home/keyhelp/www/keyhelp.webstats/kunde1/ enthält eine .htaccess mit AuthType Basic und einer eigenen .htpasswd. Die Apache-Konfiguration des Panels sperrt den Statistikbereich mit Require all denied und erlaubt per AllowOverride AuthConfig nur diese Anmeldung.
Welche Kürzung ist die richtige?
Das ist eine rechtliche Frage, die diese Anleitung nicht beantwortet. Technisch können Sie nur das von KeyHelp vorgegebene Verfahren ein- oder ausschalten, die Kürzungstiefe selbst ist im Panel nicht einstellbar.
Testumfang
Protokolle, Rotation mit Anonymisierung für IPv4 und IPv6, den Kundenschalter und AWStats haben wir in KeyHelp 26.1.1 mit selbst erzeugten Zugriffen und erzwungener Rotation geprüft. Alle Zugriffe kamen vom Server selbst über zusätzliche Testadressen, auch der Abruf der AWStats-Datendatei, nicht von außen. Auffällig: Die AWStats-Datendatei speicherte die volle IP trotz aktivierter Option. Nicht geprüft wurden eine reguläre Rotation über mehrere Wochen, die Protokollansicht aus dem Kundenbereich und eine Abhilfe für die Datendatei. Prüfen Sie die Datendateien auf Ihrem Server.
Fazit
KeyHelp liefert brauchbare Werkzeuge für die Auswertung: getrennte Protokolle pro Domain, eine Live-Ansicht im Panel und AWStats pro Domain. Die IP-Anonymisierung ist ab Werk aktiv und kürzt Adressen bei der Rotation, im Test, bei IPv4 auf die ersten zwei Blöcke. Wer sich auf die Statistik-Option verlässt, sollte wissen, dass sie im Test nur die Anzeige betraf und die Datendatei die volle Adresse behielt. Lassen Sie den Admin-Haken für Kundenprotokolle gesetzt und kontrollieren Sie stichprobenartig die rotierten Dateien.
Weiterführende Anleitungen und Quellen
- KeyHelp installieren und absichern
- KeyHelp: Zusätzliche Apache-Anweisungen für Header, Rewrite und Caching
- KeyHelp-Backups extern einrichten
- Keyweb: Umstellung der Domainprotokolle und Webstatistiken (KeyHelp 23.0)
- KeyHelp Knowledge Base: Webserver Protokolle
- AWStats-Dokumentation: Konfigurationsparameter


