HTMLWorld - HTML, CSS, JavaScript, PHP, Java, Flash und vieles mehrHTMLWorld:   Home | Impressum |
 

 
 

Anzeige 
 
               Forum
 
 
HTMLWorld » Apache » Server Logging und Status

Apache: Server Logging und Status

von Steffen Heuschkel

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.

Anzeige

CustomLog  nach oben

Die Log-Datei die in der Direktive CustomLog 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

Dabei wird mit logs/access.log angegeben wo die Datei liegt und common sagt aus welches 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

Dies hat den Vorteil, dass der Apache nicht dauerhaft auf die Logdatei zugreift und diese zwischendurch auch geleert oder einfacher ausgewertet werden können.

LogFormat  nach oben

Das LogFormat 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

Natürlich können auch eigene Formate definiert werden. Dazu muss nur eine weitere 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

Innerhalb des Formats können mehrere Platzhalter für die jeweiligen Daten eingesetzt werden. Hier die wichtigsten:.
\" - "
\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  nach oben

Im ErrorLog 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

Selbstverständlich kann auch wie beim CustomLog das ganze mit einer Pipe (|) an ein externes Programm weitergegeben werden.

LogLevel  nach oben

Der LogLevel 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 Ereignise 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)  nach oben

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)  nach oben

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  nach oben

Für die Behandlung von HTTP-Statusfehlern kann mit ErrorDocument 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



« zurück weiter »
Bewerten

 

Apache

.Autor:Jan Winkler.
. Bewertung:
Apache: Server Logging und Status HTMLWorld
(5/5 bei 1 Votes)
.
. Community: 23 Beiträge im Apache Forum .

Navigation


 
     
 

Anzeige