Apache: Server Logging und Status
Der Apache Server kann so konfiguriert werden, dass der komplette "Arbeitsablauf" aufgezeichnet wird. Wo diese Log Dateien gespeichert sind und was sie enthalten können, wird hier beschreiben.CustomLog
Die Log-Datei die in der DirektiveCustomLog
angegeben wird, protokolliert den Zugriff auf den Apache Webserver. Welche Daten dabei in der CustomLog
Datei stehen wird über die Direktive LogFormat
bestimmt.
#Die Voreinstellung sieht so aus:
CustomLog logs/access_log common #Linux
CustomLog logs/access.log common #Windows
LogFormat
verwendet wird. Die Logdatei kann aber auch mit einer Pipe (Senkrechtstrich |
) an ein Programm weitergereicht werden um eine automatische Auswertung der Logdatei zu generieren oder aber auch um Log Dateien die sehr groß sind auszutauschen, etwa mit dem mitgelieferten Programm Rotatelogs.
CustomLog "| bin/rotatelogs.exe access.log 86400" common #Windows
CustomLog "| bin/rotatelogs access_log 86400" common #Linux
LogFormat
DasLogFormat
definiert wie die CustomLog
Datei aussieht. Standardmäßig sind bereits 4 Formate definiert die benutzt werden können.
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i"
"%{User-Agent}i"" combined
# HINWEIS: Alles in einer Zeile
LogFormat "%h %l %u %t "%r" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
LogFormat
Direktive geschrieben und Ihr ein eindeutiger Name zugeordnet werden. Anschließend das Format noch der CustomLog
-Direktive zugewiesen und schon gibt es die gewünschten Daten in der Log Datei.
LogFormat "%h "%r" " meinFormat
CustomLog logs/access.log meinFormat
" - "
t - Tabulator
n - neue Zeile
%h - IP Adresse des Clients
%i - Ident Lookup
%u - Username bei HTTP-Authentifizierung z.B. über .htacces
%t - Ende der Bearbeitungszeit des Servers
%r - Clientbefehl GET etc. inkl. GET-Variablen
%>s - Statuscode der an den Client zurückgesendet wird
%b - Größe der an den Client zurückgesendeten Daten, ohne HTTP Header
%U - Der angeforderte URL-Pfad.
%{User-agent}i - Anzeige der vom Client gesendeten Browserinformationen
%{Referer}i - Anzeige des vom Client gesendeten Referer
ErrorLog
ImErrorLog
werden alle Fehlermeldungen des Apache Webservers gespeichert. Durch die unterschiedlichen LogLevel
werden die Anzahl der anzuzeigenden Fehler eingestellt.
ErrorLog logs/error.log #Windows
ErrorLog logs/error_log #Linux
CustomLog
das ganze mit einer Pipe (|
) an ein externes Programm weitergegeben werden.
LogLevel
DerLogLevel
sagt aus welche Informationen in der ErrorLog
-Datei gespeichert werden. Dabei gibt es die folgenden Level mit ihrer Bedeutung.emerg - Dies protokolliert nur Abstürze oder Ausfälle des Servers.
alert - Dies protokolliert Ereignisse nach denen der Serveradministrator dringend eingreifen sollte.
crit - kritische Situationen die den Betrieb des Servers beeinträchtigen können.
error - Fehlermeldungen die Beachtung finden sollten.
warn - einfache Warnmeldungen
notice - Notizen des Webservers die immer protokolliert werden. Zum Beispiel das starten und stoppen des Servers.
info - reine Informationsmeldungen die keine Fehler sind
debug - allgemeine Meldungen des Servers werden in dieser Stufe protokolliert.
Dies ist die Reihenfolge der vorhandenen
LogLevel
, wenn der LogLevel
auf warn gestellt wird werden zusätzlich auch error, crit, alert und emerg Meldungen protokolliert usw..
Server Status (Modul)
Mit dem Modul mod_status kann eine eigene Statusseite des Apache Webservers erzeugt werden. Die anschließend unter http://localhost/server-status eingesehen werden kann. Mit server-status?refresh=n kann die Statusseite alle n Sekunden aktualisiert werden. Beispiel:LoadModule status_module modules/mod_status.so
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
Server Info (Modul)
Mit dem Modul mod_info kann eine Informationsseite des Apache Webservers über seine aktuelle Modulkonfiguration mit allen Informationen erzeugt werden.LoadModule info_module modules/mod_info.so
<Location /server-info>
SetHandler server-info
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
Fehlerbehandlung
Für die Behandlung von HTTP-Statusfehlern kann mitErrorDocument
eine HTML-Seite oder ein einfacher Fehlertext angegeben werden die bei einem Fehler angezeigt werden. Es gibt die Möglichkeiten bei einem Fehler einen Statischen Text, eine lokale Fehlerseite, eine entfernte Fehlerseite oder eine Weiterleitung zu machen. Beispiel:
ErrorDocument 404 "Die Seite ist nicht vorhanden"
ErrorDocument 404 error/404.html
ErrorDocument 404 http://domain1.org/index.html
Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.
Weiterlesen: ⯈ Serverseitige Programmierung
Über uns
Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project