Apache2 Workshop Logging: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „= Apache2 Logging = * Apache2 bietet umfassende Logging-Funktionen zur Überwachung und Fehleranalyse. * Die wichtigsten Log-Dateien sind ''access.log'' (Zugri…“)
 
 
Zeile 14: Zeile 14:
 
* Ein angepasstes Log-Format kann mit ''LogFormat'' definiert werden.
 
* Ein angepasstes Log-Format kann mit ''LogFormat'' definiert werden.
  
== Beispiel für LogFormat ==
+
== Erklärung der LogFormat-Direktiven ==
 +
* Die LogFormat-Direktive definiert das Ausgabeformat der Log-Dateien.
 +
* Beispiel für die Standarddefinitionen in ''/etc/apache2/apache2.conf'':
 
*cat /etc/apache2/apache2.conf*
 
*cat /etc/apache2/apache2.conf*
 
<pre>
 
<pre>
Zeile 20: Zeile 22:
 
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
 
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
 
</pre>
 
</pre>
 +
* Bedeutung der Platzhalter:
 +
  * ''%h'' – Hostname oder IP-Adresse des Clients.
 +
  * ''%l'' – Identität des Clients (wird meist mit ''-'' geloggt, da selten verwendet).
 +
  * ''%u'' – Benutzername des Clients nach Authentifizierung.
 +
  * ''%t'' – Zeitpunkt der Anfrage.
 +
  * ''%r'' – Die vollständige HTTP-Anfrage (z. B. "GET /index.html HTTP/1.1").
 +
  * ''%>s'' – HTTP-Statuscode der Antwort (z. B. 200, 404, 500).
 +
  * ''%b'' – Größe der Antwort in Bytes.
 +
  * ''%{Referer}i'' – Die Seite, von der der Nutzer kam (Referrer).
 +
  * ''%{User-Agent}i'' – Der vom Client verwendete Browser und Betriebssystem.
  
 
== Logging pro VirtualHost ==
 
== Logging pro VirtualHost ==

Aktuelle Version vom 15. März 2025, 09:21 Uhr

Apache2 Logging

  • Apache2 bietet umfassende Logging-Funktionen zur Überwachung und Fehleranalyse.
  • Die wichtigsten Log-Dateien sind access.log (Zugriffe) und error.log (Fehlermeldungen).
  • Die Logs befinden sich standardmäßig unter /var/log/apache2/.
  • Die Log-Einstellungen werden in der apache2.conf oder pro VirtualHost in den Konfigurationsdateien definiert.

Wichtige Apache-Log-Dateien

  • /var/log/apache2/access.log – Enthält alle HTTP-Zugriffe auf den Server.
  • /var/log/apache2/error.log – Speichert Fehler und Warnungen des Webservers.
  • /var/log/apache2/other_vhosts_access.log – Enthält Zugriffe auf weitere VirtualHosts (abhängig von der Konfiguration).

Log-Formate anpassen

  • Apache verwendet das Common Log Format (CLF) oder das erweiterte Combined Log Format.
  • Ein angepasstes Log-Format kann mit LogFormat definiert werden.

Erklärung der LogFormat-Direktiven

  • Die LogFormat-Direktive definiert das Ausgabeformat der Log-Dateien.
  • Beispiel für die Standarddefinitionen in /etc/apache2/apache2.conf:
  • cat /etc/apache2/apache2.conf*
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
  • Bedeutung der Platzhalter:
 * %h – Hostname oder IP-Adresse des Clients.
 * %l – Identität des Clients (wird meist mit - geloggt, da selten verwendet).
 * %u – Benutzername des Clients nach Authentifizierung.
 * %t – Zeitpunkt der Anfrage.
 * %r – Die vollständige HTTP-Anfrage (z. B. "GET /index.html HTTP/1.1").
 * %>s – HTTP-Statuscode der Antwort (z. B. 200, 404, 500).
 * %b – Größe der Antwort in Bytes.
 * %{Referer}i – Die Seite, von der der Nutzer kam (Referrer).
 * %{User-Agent}i – Der vom Client verwendete Browser und Betriebssystem.

Logging pro VirtualHost

  • cat /etc/apache2/sites-available/example.conf*
<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>

Log-Level anpassen

  • Apache unterstützt verschiedene Log-Level für detaillierte Fehleranalysen:
 * emerg – Kritische Fehler, die sofortiges Eingreifen erfordern.
 * alert – Dringende Warnungen.
 * crit – Kritische Ereignisse.
 * error – Allgemeine Fehler.
 * warn – Wichtige Warnungen.
 * notice – Bedeutende, aber nicht kritische Ereignisse.
 * info – Allgemeine Informationen.
 * debug – Detaillierte Debugging-Informationen.
  • Beispiel für die Fehlerprotokollierung mit erhöhtem Detailgrad:
  • cat /etc/apache2/apache2.conf*
LogLevel warn

Log-Rotation mit logrotate

  • Apache-Logs können mit logrotate verwaltet werden, um Speicherplatz zu sparen.
  • Die Konfigurationsdatei befindet sich unter /etc/logrotate.d/apache2.
  • Beispiel für tägliche Rotation mit maximal 14 Log-Dateien:
  • cat /etc/logrotate.d/apache2*
/var/log/apache2/*.log {
    daily
    rotate 14
    missingok
    compress
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        systemctl reload apache2 > /dev/null
    endscript
}

Aufgaben

  • Erstelle einen neuen VirtualHost mit einer eigenen Access- und Error-Log-Datei.
  • Passe das Log-Format an und füge eine eigene LogFormat-Direktive hinzu.
  • Teste die verschiedenen Log-Level mit LogLevel debug.

Warum ist Logging wichtig?

  • Überwachung des Serverzustands.
  • Fehlerdiagnose und Debugging.
  • Analyse von Zugriffsmustern zur Optimierung der Performance.
  • Sicherheit und Angriffsdetektion durch Auswertung der Log-Dateien.