cPanel & WHM Log-Dateien: Die vollständige technische Referenz für Server-Administratoren
cPanel & WHM pflegt eine umfassende, mehrschichtige Protokollierungsarchitektur, die alle wichtigen Ereignisse in Webdiensten, E-Mail-Zustellung, Authentifizierung, Datenbanken und Systemoperationen aufzeichnet. Jede Protokolldatei hat einen eigenen Speicherort, ein eigenes Format und einen eigenen Diagnosezweck – zu wissen, welches Protokoll man konsultieren und wie man es effizient analysieren soll, ist der Unterschied zwischen einer fünfminütigen Lösung und einer mehrstündigen Untersuchung eines Ausfalls.
Dieser Leitfaden behandelt alle kritischen Protokolldateien in einer cPanel & WHM-Produktionsumgebung, einschließlich Dateipfade, Protokollformate, reale Diagnoseanwendungsfälle und Befehlszeilentechniken, die erfahrene Systemadministratoren tatsächlich verwenden.
Warum cPanel & WHM-Protokolldateien Ihre Aufmerksamkeit erfordern
Protokolldateien sind nicht nur ein Prüfpfad – sie sind das primäre Diagnoseinstrument für jeden Linux-basierten Hosting-Stack. In einer cPanel-Umgebung erstreckt sich die Protokollierungsoberfläche speziell auf Apache/LiteSpeed, Exim, MySQL/MariaDB, PHP-FPM, ProFTPd, Pure-FTPd, cPHulk und die cPanel/WHM-Anwendungsschicht selbst.
Administratoren, die Protokolle reaktiv behandeln – sie nur nach einem Ausfall prüfen – verpassen konsequent frühe Warnsignale: allmähliche Speichererschöpfung, schrittweise Brute-Force-Kampagnen, langsame Abfrageakkumulation und zertifikatsbezogene Zustellungsfehler. Proaktive Protokollanalyse erkennt diese Muster, bevor sie zu Vorfällen werden.
Drei grundlegende operative Ziele treiben die Protokollanalyse in cPanel-Umgebungen an:
- Ursachendiagnose: Korrelation von Zeitstempeln über Apache-, PHP- und MySQL-Protokolle hinweg, um den genauen Fehlerpunkt in einer Anfragekette zu identifizieren.
- Performance-Basislinie: Identifizierung langsamer Abfragen, HTTP-Antworten mit hoher Latenz und ressourcenhungriger Prozesse, bevor sie die Serverkapazität sättigen.
- Sicherheitsforensik: Rekonstruktion von Angriffszeitlinien aus SSH-Authentifizierungsprotokollen, cPHulk-Einträgen und Exim-Ablehnungsprotokollen, um Umfang und Abhilfemaßnahmen zu bestimmen.
Apache-Protokolldateien
Apache ist der Standard-Webserver in cPanel-Umgebungen, obwohl LiteSpeed zunehmend als direkter Ersatz verbreitet ist. Beide schreiben Protokolle in kompatiblen Formaten an dieselben konventionellen Pfade.
Apache-Fehlerprotokoll
Speicherort: /usr/local/apache/logs/error_log
Dies ist das am häufigsten konsultierte Protokoll in jeder cPanel-Fehlerbehebungssitzung. Es erfasst jeden Fehler, den Apache generiert: PHP-Fehler (wenn PHP als Modul läuft), .htaccess-Syntaxfehler, mod_rewrite-Regelkonflikte, Berechtigungsverweigerungen, SSL-Handshake-Fehler und vorgelagerte Proxy-Fehler.
Ein kritisches Detail, das viele Leitfäden auslassen: Domainspezifische Fehlerprotokolle existieren ebenfalls und sind oft unmittelbar nützlicher als das globale Fehlerprotokoll. Sie befinden sich unter:
/home/username/logs/domain.com-ssl_error_log
/home/username/logs/domain.com-error_logDiese VirtualHost-spezifischen Protokolle isolieren Fehler auf ein einzelnes Konto und reduzieren das Rauschen erheblich, wenn Sie eine bestimmte Website auf einem gemeinsam genutzten Server diagnostizieren.
Häufiges Diagnosemuster — .htaccess-Umleitungsschleife:
grep "RewriteRule" /usr/local/apache/logs/error_log | tail -50Häufiges Diagnosemuster — PHP-Fehler nach Domain:
grep "PHP Fatal" /home/username/logs/domain.com-error_log | tail -30Apache-Zugriffsprotokoll
Speicherort: /usr/local/apache/logs/access_log
Das globale Zugriffsprotokoll zeichnet standardmäßig jede HTTP/HTTPS-Anfrage im Combined Log Format auf:
IP - username [timestamp] "METHOD /path HTTP/version" status_code bytes_sent "referer" "user_agent"Domainspezifische Zugriffsprotokolle werden unter /home/username/logs/domain.com-access_log gespeichert und sind die richtige Quelle für die Verkehrsanalyse einzelner Konten.
Praktische Anwendungsfälle:
- Identifizierung einer DDoS- oder Scraping-Kampagne anhand der IP-Häufigkeit:
awk '{print $1}' /usr/local/apache/logs/access_log | sort | uniq -c | sort -rn | head -20- Alle 500er-Fehler der letzten Stunde finden (erfordert aktuelle Protokollzeitstempel):
grep " 5[0-9][0-9] " /usr/local/apache/logs/access_log | tail -200- Erkennung von Schwachstellen-Scannern anhand der User-Agent-Zeichenkette:
grep -i "sqlmap|nikto|masscan|nmap" /usr/local/apache/logs/access_logSonderfall: Auf Servern mit aktiviertem piped logging in WHM kann das Zugriffsprotokoll leer oder minimal sein, da Protokolle direkt an einen Protokollverarbeitungs-Daemon weitergeleitet werden. Überprüfen Sie WHM > Apache-Konfiguration > Globale Konfiguration auf die CustomLog-Direktive, wenn Sie ein unerwartet leeres Zugriffsprotokoll finden.
Apache SSL/TLS-Protokoll
Speicherort: /usr/local/apache/logs/ssl_error_log
Dieses Protokoll erfasst TLS-Aushandlungsfehler, Zertifikatsvalidierungsfehler und Cipher-Suite-Konflikte. Es ist unerlässlich beim Debuggen von HTTPS-Verbindungsproblemen, die nicht im Hauptfehlerprotokoll erscheinen. Schauen Sie hier zuerst nach, wenn Benutzer Browser-SSL-Warnungen melden oder wenn die automatische Zertifikatserneuerung über AutoSSL lautlos fehlschlägt.
cPanel- und WHM-Anwendungsprotokolle
cPanel-Zugriffsprotokoll
Speicherort: /usr/local/cpanel/logs/access_log
Zeichnet jede HTTP-Anfrage an die cPanel-Oberfläche (Port 2082/2083) auf. Jeder Eintrag enthält den authentifizierten Benutzernamen, die durchgeführte Aktion und die Ursprungs-IP. Dieses Protokoll ist die primäre Quelle für die Prüfung, was ein bestimmter Benutzer in seinem cPanel-Konto getan hat.
Alle von einem bestimmten Benutzer durchgeführten Aktionen finden:
grep "username" /usr/local/cpanel/logs/access_log | grep -v "GET /favicon"cPanel-Fehlerprotokoll
Speicherort: /usr/local/cpanel/logs/error_log
Erfasst interne Fehler der cPanel-Anwendungsschicht – fehlgeschlagene API-Aufrufe, fehlerhafte cPanel-Plugins, Perl-Skriptfehler im cPanel-Backend und Template-Rendering-Fehler. Wenn die cPanel-Oberfläche 500-Fehler wirft oder bestimmte Funktionen nicht funktionieren, ist dies das erste Protokoll, das überprüft werden sollte.
WHM-Anmeldeprotokoll
Speicherort: /usr/local/cpanel/logs/login_log
Zeichnet alle WHM-Authentifizierungsereignisse auf – erfolgreiche Anmeldungen, fehlgeschlagene Versuche, Zwei-Faktor-Authentifizierungsanforderungen und API-Token-Nutzung. Dieses Protokoll ist entscheidend für die Erkennung unbefugter administrativer Zugriffe.
Alle fehlgeschlagenen WHM-Anmeldeversuche finden:
grep "FAILED" /usr/local/cpanel/logs/login_log | awk '{print $NF}' | sort | uniq -c | sort -rncPHulk-Brute-Force-Schutzprotokoll
Speicherort: /usr/local/cpanel/logs/cphulkd.log
Dies ist ein Protokoll, das die meisten Leitfäden vollständig überspringen, obwohl es eines der operativ wichtigsten ist. cPHulk ist cPanels integrierter Brute-Force-Schutz-Daemon. Er überwacht SSH-, FTP-, cPanel- und WHM-Anmeldeversuche und blockiert automatisch IPs, die Schwellenwertgrenzen überschreiten.
Wenn ein legitimer Administrator aus WHM oder SSH ausgesperrt ist, liegt die Antwort fast immer in diesem Protokoll. Sie können auch die cPHulk-Datenbank direkt abfragen:
mysql -u root cphulkd -e "SELECT ip, user, type, timestamp FROM brutes ORDER BY timestamp DESC LIMIT 20;"Um eine bestimmte IP über die Befehlszeile zu entsperren:
/usr/local/cpanel/bin/cphulk_pam_ctl --unblock=192.168.1.1cPanel-Update- und Installationsprotokoll
Speicherort: /var/cpanel/updatelogs/
Jeder cPanel-Update-Lauf generiert eine zeitgestempelte Protokolldatei in diesem Verzeichnis. Wenn ein cPanel-Upgrade einen Dienst beschädigt oder eine Funktion nach einem Update verschwindet, enthält dieses Verzeichnis die vollständige Ausgabe des Update-Prozesses, einschließlich aller Fehler, die während der Paketinstallation oder Konfigurationsmigration aufgetreten sind.
ls -lt /var/cpanel/updatelogs/ | head -5E-Mail-Protokolldateien
E-Mail ist konsistent das komplexeste Subsystem zur Fehlerbehebung in cPanel. Exim, cPanels Standard-MTA, generiert drei separate Protokollströme, von denen jeder einem eigenen Diagnosezweck dient.
Exim-Hauptprotokoll
Speicherort: /var/log/exim_mainlog
Dies ist das primäre E-Mail-Transaktionsprotokoll. Jede Nachricht, die Exim verarbeitet – eingehend oder ausgehend – generiert hier Einträge, die Annahme, Routing-Entscheidungen, Zustellversuche und endgültige Disposition (zugestellt, zurückgestellt oder zurückgewiesen) abdecken.
Anatomie eines Protokolleintrags:
2024-01-15 14:23:01 1rPqXY-0003aB-Kc <= sender@example.com H=mail.example.com [203.0.113.10] P=esmtps S=4821 id=<abc123@example.com>
2024-01-15 14:23:02 1rPqXY-0003aB-Kc => recipient@domain.com R=virtual_user_delivery T=virtual_userdelivery_pipe
2024-01-15 14:23:02 1rPqXY-0003aB-Kc CompletedDie Nachrichten-ID (1rPqXY-0003aB-Kc) ist der Schlüssel zur Verfolgung einer einzelnen Nachricht durch das gesamte Protokoll:
grep "1rPqXY-0003aB-Kc" /var/log/exim_mainlogAlle ausgehenden E-Mails von einem bestimmten Konto verfolgen (kritisch für Spam-Untersuchungen):
grep "U=username" /var/log/exim_mainlog | grep "<=" | awk '{print $7}' | sort | uniq -c | sort -rn | head -20Realer Sonderfall: Wenn eine kompromittierte WordPress-Installation Spam versendet, zeigt das Exim-Hauptprotokoll den sendenden Benutzer als nobody (den Apache-Prozessbenutzer) anstatt eines cPanel-Kontobenutzernamens an. Filtern Sie speziell danach:
grep "U=nobody" /var/log/exim_mainlog | grep "<=" | tail -50Exim-Ablehnungsprotokoll
Speicherort: /var/log/exim_rejectlog
Zeichnet alle Nachrichten auf, die Exim auf der SMTP-Verbindungsebene abgelehnt hat – bevor sie überhaupt in die Warteschlange gestellt wurden. Ablehnungen erfolgen aufgrund von RBL-Blacklist-Treffern, SPF/DKIM/DMARC-Fehlern, ungültigen HELO-Zeichenketten, Relay-Verweigerung oder Ratenbegrenzung.
Dieses Protokoll ist für zwei Szenarien unerlässlich: Diagnose, warum legitime eingehende E-Mails abgelehnt werden, und Prüfung der Wirksamkeit Ihrer Spam-Filterregeln.
Die häufigsten Ablehnungsgründe finden:
grep "rejected" /var/log/exim_rejectlog | grep -oP "(?<=: ).*" | sort | uniq -c | sort -rn | head -10Exim-Panikprotokoll
Speicherort: /var/log/exim_paniclog
Das Panikprotokoll erfasst schwerwiegende Exim-Fehler – Konfigurationsdatei-Analysefehler, Unfähigkeit, an Port 25 zu binden, Datenbankverbindungsfehler und TLS-Bibliotheksfehler. Wenn diese Datei nicht leer ist, hat Exim einen kritischen Fehler erlebt. In vielen Fällen bedeutet ein nicht leeres Panikprotokoll, dass die E-Mail-Warteschlange die Verarbeitung vollständig eingestellt hat.
# Check if the panic log has content — a non-zero exit means there are critical errors
[ -s /var/log/exim_paniclog ] && echo "CRITICAL: Exim panic log has entries" && tail -20 /var/log/exim_paniclogDovecot-Protokoll
Speicherort: /var/log/dovecot.log (und /var/log/dovecot-info.log für Informationsereignisse)
Dovecot verwaltet IMAP- und POP3-Verbindungen in cPanel-Umgebungen. Authentifizierungsfehler, Verbindungslimits, Postfach-Sperr-Probleme und Kontingentdurchsetzungsereignisse erscheinen alle hier. Wenn Benutzer keine Verbindung zu ihrem E-Mail-Client herstellen können, ist Dovecots Protokoll der richtige Ort zum Nachschauen – nicht Exim.
grep "auth failed" /var/log/dovecot.log | awk '{print $NF}' | sort | uniq -c | sort -rn | head -10Datenbankprotokolldateien
MySQL/MariaDB-Fehlerprotokoll
Speicherort: /var/lib/mysql/$(hostname).err
Dieses Protokoll zeichnet MySQL/MariaDB-Start- und Herunterfahrereignisse, InnoDB-Wiederherstellungsoperationen, Replikationsfehler, Tabellenbeschädigungswarnungen und alle Abfragen auf, die einen Fehler auf Serverebene verursachen. Es ist die maßgebliche Quelle für die Diagnose von Datenbankabstürzen und unerwarteten Neustarts.
Den tatsächlichen Pfad dynamisch abrufen:
mysql -u root -e "SHOW VARIABLES LIKE 'log_error';"Auf InnoDB-Beschädigung oder Absturzwiederherstellungsereignisse prüfen:
grep -i "crash|corrupt|recovery|innodb" /var/lib/mysql/$(hostname).err | tail -30MySQL-Protokoll für langsame Abfragen
Speicherort: /var/lib/mysql/slowquery.log (wenn aktiviert)
Das Protokoll für langsame Abfragen ist in den meisten cPanel-Installationen standardmäßig deaktiviert. Es zu aktivieren ist eine der wertvollsten Performance-Tuning-Maßnahmen, die Sie auf einem datenbankintensiven Server durchführen können.
Das Protokoll für langsame Abfragen zur Laufzeit aktivieren (kein Neustart erforderlich):
mysql -u root -e "SET GLOBAL slow_query_log = 'ON'; SET GLOBAL long_query_time = 1; SET GLOBAL slow_query_log_file = '/var/lib/mysql/slowquery.log';"Nach der Aktivierung verwenden Sie mysqldumpslow, um die schlimmsten Verursacher zu aggregieren und zu bewerten:
mysqldumpslow -s t -t 10 /var/lib/mysql/slowquery.logDies gibt die Top-10-Abfragen nach Gesamtausführungszeit aus – der umsetzbarste Ausgangspunkt für die Abfrageoptimierung.
Kritische Nuance: Ein long_query_time von 1 Sekunde ist ein vernünftiger Ausgangsschwellenwert für die meisten Anwendungen, aber stark frequentierte Websites sollten 0,5 Sekunden oder sogar 0,25 Sekunden in Betracht ziehen, um Abfragen zu erfassen, die einzeln schnell sind, aber unter Last kumulativ teuer werden.
MySQL-Allgemeines-Abfrageprotokoll
Speicherort: Konfigurierbar, typischerweise /var/lib/mysql/general.log
Das allgemeine Abfrageprotokoll zeichnet jede einzelne SQL-Anweisung auf, die an den Server gesendet wird. Aktivieren Sie dies nicht in der Produktion ohne einen spezifischen, zeitlich begrenzten Diagnosegrund. Auf einem stark ausgelasteten Server kann dieses Protokoll gigabyteweise pro Stunde wachsen und selbst zu Leistungseinbußen führen. Aktivieren Sie es kurz, reproduzieren Sie das Problem und deaktivieren Sie es dann sofort.
mysql -u root -e "SET GLOBAL general_log = 'ON'; SET GLOBAL general_log_file = '/var/lib/mysql/general.log';"
# ... reproduce the issue ...
mysql -u root -e "SET GLOBAL general_log = 'OFF';"Systemprotokolldateien
Systemmeldungsprotokoll
Speicherort: /var/log/messages
Das Kernel- und Systemdaemon-Meldungsprotokoll. Hardwarefehler (Festplatten-E/A-Fehler, Speicher-ECC-Fehler), OOM-Killer-Ereignisse (Out of Memory), Netzwerkschnittstellenstatusänderungen und Kernel-Modul-Ladeereignisse erscheinen alle hier. Dies ist das erste Protokoll, das überprüft werden sollte, wenn ein Server nicht reagiert oder unerwartet neu startet.
Auf OOM-Killer-Ereignisse prüfen (ein Server, der Prozesse aufgrund von Speichererschöpfung lautlos beendet):
grep -i "oom|killed process|out of memory" /var/log/messages | tail -20Auf Festplatten-E/A-Fehler prüfen, die auf einen Laufwerksausfall hinweisen könnten:
grep -i "I/O error|blk_update_request|ata.*error" /var/log/messages | tail -20Sicheres Authentifizierungsprotokoll
Speicherort: /var/log/secure
Zeichnet alle PAM-basierten Authentifizierungsereignisse auf: SSH-Anmeldungen (erfolgreich und fehlgeschlagen), sudo-Befehlsausführung, su-Versuche und cron-initiierte Authentifizierung. Dies ist das primäre Protokoll für SSH-Sicherheitsforensik.
Die wichtigsten angreifenden IPs nach Anzahl fehlgeschlagener SSH-Anmeldungen identifizieren:
grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head -20Alle auf dem Server ausgeführten sudo-Befehle prüfen:
grep "sudo:" /var/log/secure | grep "COMMAND" | tail -50Realer Sonderfall: Auf Servern mit UseDNS yes in sshd_config können fehlgeschlagene Anmeldeeinträge Hostnamen anstelle von IP-Adressen anzeigen, was das oben genannte awk-Muster zur IP-Extraktion unterbricht. Überprüfen Sie Ihre sshd_config-Einstellung und passen Sie den Feldindex entsprechend an.
Kernel-Ringpuffer
Speicherort: Nur zur Laufzeit – zugänglich über dmesg
Der Kernel-Ringpuffer ist keine persistente Datei, ist aber unerlässlich für die Diagnose von Hardware-Ereignissen, die beim oder kurz nach dem Start auftreten, bevor syslog initialisiert wird. Auf systemd-basierten Systemen (CentOS 7+, CloudLinux 7+) sind persistente Kernel-Protokolle verfügbar über:
journalctl -k --since "1 hour ago"FTP-Protokolldateien
ProFTPd-Protokoll
Speicherort: /var/log/proftpd/proftpd.log
ProFTPd ist der Standard-FTP-Daemon in cPanel-Umgebungen. Dieses Protokoll zeichnet alle FTP-Sitzungsereignisse auf: Authentifizierungsversuche, Verzeichnisdurchquerung, Datei-Uploads, Downloads und Verbindungsabbrüche.
Alle fehlgeschlagenen FTP-Anmeldeversuche finden:
grep "USER|PASS" /var/log/proftpd/proftpd.log | grep -i "failed|incorrect" | tail -30Große Datei-Uploads identifizieren (potenzielle Malware-Bereitstellung):
grep "STOR" /var/log/proftpd/proftpd.log | awk '{print $NF, $0}' | sort -rn | head -20Pure-FTPd-Protokoll
Speicherort: /var/log/pureftpd.log
Pure-FTPd-Protokolle werden in einigen Konfigurationen standardmäßig in syslog geschrieben, was bedeutet, dass Einträge in /var/log/messages anstatt in einer dedizierten Datei erscheinen können. Überprüfen Sie das aktive Protokollierungsziel:
grep "VerboseLog|AltLog" /etc/pure-ftpd.confPHP- und Anwendungsebenen-Protokolle
PHP-Fehlerprotokoll
PHP-Fehler in cPanel-Umgebungen können je nach verwendetem PHP-Handler an mehreren Speicherorten protokolliert werden:
| PHP-Handler | Fehlerprotokoll-Speicherort |
|---|
| — | — |
|---|
| DSO (mod_php) | Apache-Fehlerprotokoll (`/usr/local/apache/logs/error_log`) |
|---|
| CGI / suPHP | Kontospezifisches Fehlerprotokoll (`/home/user/logs/`) |
|---|
| PHP-FPM | `/opt/cpanel/ea-phpXX/root/usr/var/log/php-fpm/error.log` |
|---|
| LSAPI | Domainspezifisches Fehlerprotokoll im `logs/`-Verzeichnis des Kontos |
|---|
Der PHP-FPM-Pool-Protokollpfad enthält die PHP-Versionsnummer. Für PHP 8.2, verwaltet von EasyApache 4:
tail -f /opt/cpanel/ea-php82/root/usr/var/log/php-fpm/error.logKontospezifische PHP-Fehlerprotokollierung kann durch Hinzufügen des Folgenden zur php.ini– oder .htaccess-Datei des Kontos aktiviert werden:
log_errors = On
error_log = /home/username/logs/php_errors.logcPanel-spezifische Dienst- und Sicherheitsprotokolle
cPanel-Dienstverwaltungsprotokoll
Speicherort: /usr/local/cpanel/logs/safeapacherestart_log
Zeichnet jedes Apache-Neustartereignis auf, das vom cPanel-Dienstverwaltungssystem ausgelöst wird, einschließlich des Grundes für den Neustart und ob er erfolgreich war. Nützlich zur Korrelation von Apache-Ausfallzeiten mit Konfigurationsänderungen.
cPanel-Sicherungsprotokoll
Speicherort: /usr/local/cpanel/logs/cpbackup/
Jeder Sicherungslauf generiert eine kontospezifische Protokolldatei in diesem Verzeichnis. Wenn eine Sicherung lautlos fehlschlägt, enthält dieses Verzeichnis den spezifischen Fehler – ob es sich um ein Festplattenplatzproblem, einen Datenbankdump-Fehler oder ein Berechtigungsproblem handelte.
ls -lt /usr/local/cpanel/logs/cpbackup/ | head -10
grep -i "error|fail" /usr/local/cpanel/logs/cpbackup/username.logcPanel-AutoSSL-Protokoll
Speicherort: /var/cpanel/logs/autossl/
AutoSSL ist cPanels automatisiertes Let’s Encrypt / Sectigo-Zertifikatsbereitstellungssystem. Wenn die SSL-Zertifikatserneuerung fehlschlägt, wird der detaillierte Grund – DCV-Fehler, Ratenbegrenzung, Domain-Validierungskonflikt – hier aufgezeichnet. Dieses Protokoll ist entscheidend für die Diagnose von HTTPS-Zertifikatsablaufproblemen, bevor sie Browser-Warnungen verursachen.
ls -lt /var/cpanel/logs/autossl/ | head -5
tail -100 /var/cpanel/logs/autossl/$(ls -t /var/cpanel/logs/autossl/ | head -1)Wenn Sie SSL-Zertifikate über mehrere Domains hinweg verwalten oder Zertifikate benötigen, die über das hinausgehen, was AutoSSL bietet, bieten SSL-Zertifikate von einem dedizierten Anbieter erweiterte Validierungs- und Wildcard-Optionen, die Let’s Encrypt nicht bietet.
Protokolldatei-Vergleichsreferenz
| Protokolldatei | Pfad | Dienst | Primärer Anwendungsfall |
|---|
| — | — | — | — |
|---|
| Apache-Fehlerprotokoll | `/usr/local/apache/logs/error_log` | Apache/LiteSpeed | PHP-Fehler, `.htaccess`-Fehler, 500-Fehler |
|---|
| Apache-Zugriffsprotokoll | `/usr/local/apache/logs/access_log` | Apache/LiteSpeed | Verkehrsanalyse, DDoS-Erkennung, 4xx/5xx-Prüfung |
|---|
| cPanel-Zugriffsprotokoll | `/usr/local/cpanel/logs/access_log` | cPanel-Oberfläche | Benutzeraktionsprüfung, unbefugter Zugriff |
|---|
| WHM-Anmeldeprotokoll | `/usr/local/cpanel/logs/login_log` | WHM | Admin-Authentifizierungsereignisse, API-Token-Nutzung |
|---|
| cPHulk-Protokoll | `/usr/local/cpanel/logs/cphulkd.log` | cPHulk | Brute-Force-Erkennung, IP-Sperr-Prüfung |
|---|
| Exim-Hauptprotokoll | `/var/log/exim_mainlog` | Exim MTA | E-Mail-Zustellungsverfolgung, Spam-Untersuchung |
|---|
| Exim-Ablehnungsprotokoll | `/var/log/exim_rejectlog` | Exim MTA | Eingehende Ablehnungsanalyse, SPF/DKIM-Fehler |
|---|
| Exim-Panikprotokoll | `/var/log/exim_paniclog` | Exim MTA | Kritische MTA-Fehler, Warteschlangenstopps |
|---|
| Dovecot-Protokoll | `/var/log/dovecot.log` | Dovecot | IMAP/POP3-Authentifizierungsfehler, Postfachprobleme |
|---|
| MySQL-Fehlerprotokoll | `/var/lib/mysql/hostname.err` | MySQL/MariaDB | DB-Abstürze, InnoDB-Wiederherstellung, Beschädigung |
|---|
| MySQL-Protokoll für langsame Abfragen | `/var/lib/mysql/slowquery.log` | MySQL/MariaDB | Abfrage-Performance, Engpassidentifizierung |
|---|
| Systemmeldungen | `/var/log/messages` | Kernel/syslog | OOM-Ereignisse, Hardwarefehler, Dienstabstürze |
|---|
| Sicheres Authentifizierungsprotokoll | `/var/log/secure` | PAM/SSH | SSH-Brute-Force, sudo-Prüfung, Authentifizierungsforensik |
|---|
| ProFTPd-Protokoll | `/var/log/proftpd/proftpd.log` | ProFTPd | FTP-Sitzungsprüfung, unbefugter Zugriff |
|---|
| AutoSSL-Protokoll | `/var/cpanel/logs/autossl/` | AutoSSL | Zertifikatserneuerungsfehler, DCV-Fehler |
|---|
| PHP-FPM-Protokoll | `/opt/cpanel/ea-phpXX/root/usr/var/log/php-fpm/error.log` | PHP-FPM | PHP-Prozessmanager-Fehler, Pool-Ausfälle |
|---|
Befehlszeilen-Protokollanalysetechniken
Wesentliche Befehle für Echtzeit- und historische Analyse
Ein Protokoll in Echtzeit verfolgen (der häufigste Sysadmin-Workflow):
tail -f /var/log/exim_mainlogMehrere Protokolle gleichzeitig mit multitail verfolgen (installieren über yum install multitail):
multitail /usr/local/apache/logs/error_log /var/log/exim_mainlogEindeutige Werte aus einem bestimmten Feld extrahieren und zählen:
awk '{print $1}' /usr/local/apache/logs/access_log | sort | uniq -c | sort -rn | head -20Komprimierte rotierte Protokollarchive durchsuchen:
zgrep "keyword" /var/log/exim_mainlog.*.gzProtokolleinträge innerhalb eines bestimmten Zeitfensters filtern:
awk '/15/Jan/2024:14:00/,/15/Jan/2024:15:00/' /usr/local/apache/logs/access_logHTTP-Statuscodeverteilung zählen:
awk '{print $9}' /usr/local/apache/logs/access_log | sort | uniq -c | sort -rnProtokollrotation in cPanel
cPanel verwendet logrotate zur Verwaltung der Protokolldateigrößen. Die Rotationskonfiguration für cPanel-verwaltete Protokolle befindet sich in /etc/logrotate.d/. Apache-Protokolle werden durch cPanels eigenen splitlogs-Mechanismus rotiert, der auch das globale Zugriffsprotokoll in domainspezifische Dateien aufteilt.
Die aktuelle logrotate-Konfiguration für einen bestimmten Dienst prüfen:
cat /etc/logrotate.d/syslogProtokollrotation manuell zum Testen auslösen:
logrotate -f /etc/logrotate.d/syslogKritische Falle: Wenn die Protokollrotation falsch konfiguriert ist oder der Festplattenplatz erschöpft ist, können Protokolldateien wachsen, bis sie die gesamte Partition füllen, was dazu führt, dass alle Dienste gleichzeitig ohne Warnung ausfallen. Überwachen Sie die Festplattennutzung auf der Partition, die /var/log und /usr/local/apache/logs enthält, als standardmäßige operative Praxis.
Zentralisiertes Protokollmanagement und Alarmierung
Für Produktionsumgebungen – insbesondere auf einem VPS-Hosting oder Dedizierten Server – ist die manuelle Protokollinspektion im großen Maßstab unzureichend. Implementieren Sie einen der folgenden Ansätze:
Protokollaggregation mit rsyslog-Weiterleitung: Konfigurieren Sie /etc/rsyslog.conf, um Protokolle an einen zentralisierten Syslog-Server oder eine SIEM-Plattform weiterzuleiten. Dies bewahrt Protokolle auch dann, wenn der Server selbst kompromittiert ist.
ELK-Stack (Elasticsearch, Logstash, Kibana): Nehmen Sie cPanel-Protokolle über Filebeat-Agenten auf, analysieren Sie sie mit Logstash-Pipelines und visualisieren Sie Muster in Kibana. Dieser Ansatz ermöglicht die Volltextsuche über Monate von Protokollhistorie in Sekunden.
Fail2ban-Integration: Fail2ban liest /var/log/secure und /var/log/exim_mainlog und erstellt automatisch iptables-Regeln, um angreifende IPs zu blockieren. Es arbeitet unabhängig von cPHulk und bietet eine zusätzliche Verteidigungsschicht.
GoAccess für Apache-Protokollanalyse: GoAccess ist ein Echtzeit-Terminal-basierter Protokollanalysator, der HTML-Berichte aus Apache-Zugriffsprotokollen erstellt, ohne eine vollständige ELK-Bereitstellung zu erfordern:
goaccess /usr/local/apache/logs/access_log --log-format=COMBINED -o /var/www/html/report.htmlAdministratoren, die mehrere cPanel-Konten oder Reseller-Setups auf einem VPS mit cPanel verwalten, profitieren erheblich von zentralisierter Protokollsichtbarkeit, da einzelne Kontoprotokolle sonst unter jedem Home-Verzeichnis isoliert sind.
E-Mail-Infrastruktur-Protokollkorrelation
Eine der am meisten unterschätzten Diagnosetechniken in cPanel-Umgebungen ist die Querverweisierung von Exim-Protokollen mit Dovecot-Protokollen und dem System-Authentifizierungsprotokoll, um den vollständigen Lebenszyklus eines E-Mail-Sicherheitsvorfalls zu verfolgen.
Szenario: Ein Benutzer meldet, dass sein Konto Spam versendet, den er nicht verfasst hat.
Schritt 1 – Die mit dem Konto verknüpften Exim-Nachrichten-IDs identifizieren:
grep "U=username|from=<.*@userdomain.com>" /var/log/exim_mainlog | grep "<=" | head -20Schritt 2 – Prüfen, ob der Versand von einer Webanwendung (PHP mail()) oder authentifiziertem SMTP stammt:
grep "1rPqXY-0003aB-Kc" /var/log/exim_mainlog | grep -E "P=esmtpa|P=local"P=esmtpa zeigt authentifizierte SMTP-Einreichung an. P=local oder P=pipe zeigt ein lokales Skript an (wahrscheinlich eine kompromittierte Webanwendung).
Schritt 3 – Wenn P=esmtpa, die Ursprungs-IP aus dem Dovecot- oder Exim-Authentifizierungsprotokoll finden:
grep "username" /var/log/dovecot.log | grep "Login" | tail -20Schritt 4 – Diese IP gegen /var/log/secure auf SSH-Aktivität und gegen das cPanel-Zugriffsprotokoll auf Control-Panel-Anmeldungen querverweisen.
Diese vierstufige Korrelationstechnik beantwortet definitiv, ob die Kompromittierung ein Anmeldedatendiebstahl, eine anfällige Webanwendung oder ein per Brute-Force angegriffenes SMTP-Konto war – und diese Unterscheidung bestimmt den Abhilfepfad vollständig.
Für Organisationen, die ihre eigene E-Mail-Infrastruktur betreiben, bietet eine ordnungsgemäß konfigurierte E-Mail-Hosting-Umgebung mit dedizierter Protokollüberwachung die erforderliche Isolation, um kontoübergreifende E-Mail-Reputationsschäden zu verhindern.
Domain- und DNS-bezogene Protokollüberlegungen
DNS-Auflösungsfehler manifestieren sich oft als Fehler in Anwendungsprotokollen anstatt in einem dedizierten DNS-Protokoll. Named (BIND), das cPanel für DNS verwendet, protokolliert standardmäßig in /var/log/messages.
Auf BIND-Fehler prüfen:
grep "named" /var/log/messages | grep -i "error|failed|refused" | tail -20Wenn DNS-Propagierungsprobleme neu registrierte oder übertragene Domains betreffen, hilft die Korrelation des BIND-Protokolls mit der cPanel-Domain-Konfiguration dabei, zu isolieren, ob das Problem ein Zonendateifehler oder eine Propagierungsverzögerung auf Registrar-Ebene ist. Wenn Sie Domain-Registrierung und DNS über dieselbe Plattform verwalten, vereinfacht die Domain-Registrierung mit integriertem DNS-Management diese Diagnosekette.
Praktische Entscheidungsmatrix: Welches Protokoll zuerst prüfen
| Symptom | Erstes zu prüfendes Protokoll | Sekundäres Protokoll |
|---|
| — | — | — |
|---|
| Website gibt 500-Fehler zurück | `/home/user/logs/domain.com-error_log` | `/usr/local/apache/logs/error_log` |
|---|
| E-Mail wird ausgehend nicht zugestellt | `/var/log/exim_mainlog` | `/var/log/exim_paniclog` |
|---|
| Eingehende E-Mail wird abgelehnt | `/var/log/exim_rejectlog` | `/var/log/messages` (DNS/BIND) |
|---|
| Benutzer können sich nicht über IMAP/POP3 verbinden | `/var/log/dovecot.log` | `/var/log/secure` |
|---|
| Langsame Datenbankabfragen | `/var/lib/mysql/slowquery.log` | `/var/lib/mysql/hostname.err` |
|---|
| Server unerwartet neu gestartet | `/var/log/messages` | `journalctl -k` |
|---|
| SSH-Anmeldung blockiert / Aussperrung | `/usr/local/cpanel/logs/cphulkd.log` | `/var/log/secure` |
|---|
| WHM-Anmeldung schlägt fehl | `/usr/local/cpanel/logs/login_log` | `/usr/local/cpanel/logs/cphulkd.log` |
|---|
| FTP-Uploads schlagen fehl | `/var/log/proftpd/proftpd.log` | `/var/log/secure` |
|---|
| SSL-Zertifikat wird nicht erneuert | `/var/cpanel/logs/autossl/` | `/usr/local/apache/logs/ssl_error_log` |
|---|
| Verdächtiger Spam vom Server | `/var/log/exim_mainlog` (Filter `U=nobody`) | `/usr/local/apache/logs/error_log` |
|---|
| cPanel-Funktion defekt oder wirft Fehler | `/usr/local/cpanel/logs/error_log` | `/usr/local/cpanel/logs/access_log` |
|---|
Wichtige technische Erkenntnisse
- Prüfen Sie immer zuerst domainspezifische Protokolle (
/home/username/logs/) vor den globalen Apache-Protokollen – sie enthalten dieselben Daten mit deutlich weniger Rauschen. - Ein nicht leeres
/var/log/exim_paniclogist ein P1-Vorfall – Exim hat möglicherweise die Verarbeitung der E-Mail-Warteschlange vollständig eingestellt. - Das cPHulk-Protokoll unter
/usr/local/cpanel/logs/cphulkd.logist die richtige erste Anlaufstelle für jedes Aussperrungsszenario, nicht/var/log/secure. - Aktivieren Sie das MySQL-Protokoll für langsame Abfragen (
long_query_time = 1) auf jedem Produktionsdatenbankserver – die Performance-Informationen, die es liefert, sind den minimalen Overhead wert. - Querverweisen Sie Exims
P=-Feld mit Dovecot-Authentifizierungsprotokollen, um definitiv zu bestimmen, ob ein Spam-Vorfall aus Anmeldedatendiebstahl oder einer kompromittierten Webanwendung stammt. - Fehlkonfiguration der Protokollrotation ist ein stiller Ausfallmodus – eine volle
/var/log-Partition wird alle Dienste gleichzeitig ohne Warnung zum Absturz bringen. zgrepfunktioniert auf rotierten.gz-Archiven – historische Protokollanalyse erfordert keine manuelle Dekomprimierung von Dateien.- Zentralisierte Protokollweiterleitung über
rsyslogist die minimal tragfähige Sicherheitshaltung für jeden Server, der sensible Daten verarbeitet – lokale Protokolle können von einem Angreifer gelöscht werden, der Root-Zugriff erlangt.
Häufig gestellte Fragen
Wo befinden sich cPanel-Fehlerprotokolle?
Das primäre cPanel-Anwendungsfehlerprotokoll befindet sich unter /usr/local/cpanel/logs/error_log. Apache-Webserverfehler befinden sich unter /usr/local/apache/logs/error_log, und kontospezifische PHP-Fehler befinden sich in /home/username/logs/domain.com-error_log. Jeder Dienst pflegt seine eigene Protokolldatei an einem eigenen Pfad.
Wie verfolge ich eine bestimmte E-Mail-Nachricht durch Exim-Protokolle?
Jede Nachricht, die Exim verarbeitet, erhält eine eindeutige Nachrichten-ID, die in /var/log/exim_mainlog sichtbar ist. Führen Sie grep "MESSAGE_ID" /var/log/exim_mainlog aus, um jeden Protokolleintrag abzurufen, der mit dieser Nachricht verknüpft ist, von der Annahme bis zur endgültigen Zustellung oder Rücksendung.
Warum ist mein Exim-Panikprotokoll nicht leer und was soll ich tun?
Ein nicht leeres /var/log/exim_paniclog zeigt an, dass Exim auf einen schwerwiegenden Fehler gestoßen ist – typischerweise einen Konfigurationsanalysefehler, ein TLS-Bibliotheksproblem oder die Unfähigkeit, an Port 25 zu binden. Lesen Sie die Panikprotokolleinträge, prüfen Sie dann die Exim-Konfigurationssyntax mit exim -bV und überprüfen Sie, ob Port 25 nicht von einem anderen Prozess blockiert wird, indem Sie ss -tlnp | grep :25 verwenden.
Wie finde ich heraus, welches PHP-Skript Spam über Apache versendet?
Filtern Sie das Exim-Hauptprotokoll nach Nachrichten, die vom Apache-Benutzer gesendet wurden: grep "U=nobody" /var/log/exim_mainlog. Querverweisen Sie dann die Zeitstempel mit Apache-Zugriffsprotokolleinträgen, um die URL zu identifizieren, die die Mail-Funktion ausgelöst hat. Der X-PHP-Originating-Script-Header (wenn in php.ini aktiviert) identifiziert auch die genaue Skriptdatei.
Was ist der schnellste Weg zu prüfen, ob ein Server unter einem SSH-Brute-Force-Angriff steht?
Führen Sie grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn | head -10 aus, um die wichtigsten angreifenden IP-Adressen nach Anzahl der Versuche zu sehen. Überprüfen Sie dann, ob cPHulk sie bereits blockiert hat, indem Sie /usr/local/cpanel/logs/cphulkd.log prüfen oder die cPHulk-Datenbank direkt abfragen.
