Linux als SOHO-Server

für Linux- und Windows-Clients
http://linux.eusterholz.dyndns.org

Kapitel:

Home
Debian Installation
Debian Etc.
Internet-Zugang
Telnet
FTP
r-Utilities
SSH
Printing
NTP
Nameserver
NFS/NIS/Automount
Samba (SMB-Server)
Apache (WEB-Server)
Modem / ISDN
Backup
Etc.


Log-Dateien

Installation/Konfiguration ] Status/Info ] UserDir ] Virtuelle Hosts ] Authentifizierung ] CGI ] mod_perl ] PHP ] SSI ] SSL ] WebDAV ] [ Log-Dateien ] ht://Dig ]


Um einen Überblick über die Funktion und Auslastung des Servers zu bekommen kann der Apache-Server diverse Log-Dateien generieren. Auch bei der Konfiguration des Apaches oder Tests von CGI-Programmen können eventuelle Fehlermeldungen den Log-Dateien entnommen werden.

Im Verlauf dieser Seite wird elementar die Konfiguration bezüglich Log-Dateien vorgestellt. Weiterhin werden zwei freie Programme zur Auswertung der Zugriffe vorgestellt.

Apache Log-Dateien

Bei den Log-Files sind in erster Linie das 'error.log' und 'access.log' zu nennen. Das Erstellen ist bei der Debian Apache-Installation standardmäßig schon berücksichtigt. Hier Auszüge der verantwortlichen Einstellungen in den Konfigurationsdateien:

Auszug aus: /etc/apache2/apache2.conf (ca. ab Zeile: 104)

...
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent


# Global error log.
ErrorLog /var/log/apache2/error.log
...

Mit dem Direktive: 'LogFormat' kann das Aussehen und der Aufbau der Log-Datei beeinflusst werden. Eine genaue Beschreibung ist in der Apache-Dokumentation zu finden. In diesem Bsp. sind vier verschiedene Log-Formate definiert, die jeweils einen Kurznamen (nickname) zugewiesen sind (Kurznamen: 'combiened', 'common', 'referer' und 'agent').
Mit 'Errorlog' wird dem Apache mitgeteilt, in welche Datei Fehlermeldungen und sonstige Infos hineingeschrieben werden.

Auszug aus: /etc/apache2/sites-available/default (ca. ab Zeile: 28)

...
        ErrorLog /var/log/apache2/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog /var/log/apache2/access.log combined
...

Die Ausführlichkeit des Fehlerprotokolls kann mit 'LogLevel' bestimmt werden. In der Debian default-Konfiguration ist der Level: 'warn' eingestellt; es werden nur Warnungen ausgegeben. Mögliche andere Werte können der Dokumentation entnommen werden.
Mit 'CustomLog' wird der Dateiname und das Format festgelegt. Als Format kann ein Kurzname (nickname; z.B.: 'combined'), welches zuvor definiert wurde, gewählt werden.

Webalizer

Webalizer ist ein schnelles, freies Analyseprogramm für Webserver-Logfiles, welches die Resultate im html-Format darstellt. Die Aktivitäten des Web-Servers können mit einen Browser verfolgt werden. Das Tool wurde ursprünglich unter Linux in Kombination mit dem Apache-Webserver entwickelt, ist aber mittlerweile auch für andere Plattformen erhältlich. Der Webalizer nutzt zur Analyse der der Seiten die von Apache-Server generierte Datei: 'access.log'. Darüber hinaus kann man Informationen über Host-Ressourcenverbrauch und die - von den Besuchern verwendeten - Browser abfragen.

Unter Debian ist ein entsprechendes Webalizer-Paket vorhanden, welches einfach mittels: 'apt-get install webalizer' installiert werden kann. Nach der Installation sind noch einige Fragen bez. der Konfiguration zu beantworten:

  • Which directory should webalizer put the output in? </var/www/webalizer>
    Das Ausgabeverzeichnis für die generierten Ergebnisse ist fest zu legen.

  • Enter the title of the reports webalizer will generate. <Usage Statistics for experimental>
    Ein Titel für die Reports wird definiert.

  • What is the filename of the rotated webserver log? </var/log/apache2/access.log.1>
    Dateiname der zur Analyse benutzt wird.

Die weitere oder nachträgliche Konfiguration des Webalizers können per Befehlszeile bzw. Konfigurationsdatei: '/etc/webalizer.conf' erfolgen. Zum Testen sollte nun das Programm auf der Kommandozeilenebene mit: '/usr/bin/webalizer' gestartet werden. Bei jedem Aufruf von 'webalizer' wird immer zuerst die aktuelle Version von 'webalizer.conf' gelesen. Nach Beenden des Programms, liegt die erste Statistik vor und kann mit einem Browser betrachtet werden. Nach Eingabe der URL: 'http://<localhost>/webalizer/' in einem Browser, sollte in etwa folgende Seite erscheinen:

Für regelmäßig aktualisierte Daten muss das Programm: 'webalizer' auch entsprechend regelmäßig aufgerufen werde. Je nach Auslastung des Servers und dem eigenen Wunsch nach aktuellen Daten empfiehlt sich eine regelmäßige Aktualisierung alle 24 Stunden bis hin zum Stunden-Takt. Hierzu empfiehlt es sich einen entsprechenden cron-Job zu starten.

Analog

Auch ein populärer logfile-Analyseprogramm, ähnlich Webalizer, ist das Programm: Analog. Es ist ebenfalls frei und auch als Debian-Packet erhältlich, so dass die Installation mit: 'apt-get install analog' bequem durchgeführt werden kann. Nach der Installation ist zunächst die Konfigurationsdatei: '/etc/analog.conf' anzupassen, hierzu ein Beispielauszug:

Auszug aus: /etc/analog.cfg

# Configuration file for analog 5.32
# See http://www.analog.cx/
#
# Here are a couple of configuration commands to get you started. Add any more
# you like from the Readme.
#
# Lines starting with # are comments.
#
# There is a much more extensive configuration file in examples/big.cfg
#
# If you need a LOGFORMAT command (most people don't -- try it without first!),
# it must go here, above the LOGFILE commands.

# This sets analog to process the apache log files. If you use a web server
# other than apache, you will need to tell analog where the web server
# keeps its log files.
#LOGFILE /var/log/apache/access.log
#LOGFILE /var/log/apache/referer.log
#LOGFILE /var/log/apache/agent.log
# apache2 uses this file instead
LOGFILE /var/log/apache2/access.log

OUTFILE index.html
HOSTNAME "experimental"
LANGUAGE GERMAN
LANGFILE de.lng

# LOGFILE /old/logs/access_log.*
# OUTFILE Report.html
# HOSTNAME "[my organisation]"
#
# You probably don't need to change anything below this until you are
# experienced.
#
# ERRFILE errors.txt
# REQINCLUDE pages
REQLINKINCLUDE pages
...

In der Konfigurationsdatei brauchen eigentlich nur am Anfang Anpassungen vorgenommen werden, so ist der 'LOGFILE', der zur Auswertung herangezogen wird, anzugeben. Weiterhin ist der 'OUTPUTFILE' zu setzen, sowie der 'HOSTNAME' anzupassen. Möchte man eine deutschsprachige Ausgabe haben, so sind: 'LANGUAGE' und 'LANGFILE' entsprechend zu setzen.

Um einen Report zu erzeugen ist zunächst in das Report-Verzeichnis zu wechseln und der Report zu starten. Z.B. auf der Kommandozeile mit:

cd /var/www/analog
/usr/bin/analog -n -o -Z -p

Die Parameter und auch weitere Konfigurationen kann der Dokumentation zu Analog entnommen werden.

Ein erster Test kann mit einen Browser durch Eingabe der URL: 'http://<localhost>/analog/' erfolgen:

Es sollte nun der Report angezeigt werden. Damit Die Daten zyklisch aktualisiert werden, empfiehlt es sich analog als cron-Job auszuführen.

Anmerkungen

Damit die Auswertungen von 'Webalizer' und 'Analog' immer auf den aktuellen Stand ist, sollten sie regelmäßig über einen cron-Job aktualisiert werden. Ein solcher cron-Job kann wie folgt aussehen:

Auszug aus Ausgabe mit: crontab -l

# start 'webalizer' every hour
15 *  *  *  *  /usr/bin/webalizer > /dev/null 2>&1

# start 'analog' every hour
45 *  *  *  *  cd /var/www/analog && /usr/bin/analog -n -o -Z -p > /dev/null 2>&1

In diesem Bsp. werden beide Tools stündlich aktualisiert.

Mit dem Programm: 'logrotate' können unter anderem die Log-Dateien des Apache-Servers nach einer einstellbaren Zeit, oder wenn sie eine bestimmte Größe erreicht haben weiterverarbeitet werden. Dabei sind verschiedene Parameter in der: '/etc/logrotate.conf' dafür zuständig, was mit den Dateien passieren soll (z.B. komprimieren der Log-Dateien).

Weitere Infos

Homepage: Apache Software Foundation http://www.apache.org/
Dokumentation zum Apache HTTP Server Version 2.0 http://httpd.apache.org/docs-2.0/
Log Files http://httpd.apache.org/docs-2.0/logs.html
Apache Module mod_log_config http://httpd.apache.org/docs-2.0/mod/mod_log_config.html
Protokolle (logs) und Fehlermeldungen http://aktuell.de.selfhtml.org/artikel/server/apacheconf/apconf16.htm
Homepage: Webalizer http://www.mrunix.net/webalizer/
System-Dokumentation: webalizer /usr/share/doc/webalizer
Manualseiten zu: Webalizer man webalizer
Homepage: Analog http://www.analog.cx/
System-Dokumentation: Analog /usr/share/doc/analog/
Manualseiten zu: Analog man analog
Logdateien analysieren mit Analog http://www.stichpunkt.de/beitrag/analog.html
Manualseiten zu: logrotate man logrotate

Home ] Nach oben ] Installation/Konfiguration ] Status/Info ] UserDir ] Virtuelle Hosts ] Authentifizierung ] CGI ] mod_perl ] PHP ] SSI ] SSL ] WebDAV ] [ Log-Dateien ] ht://Dig ]

letzte Änderung: 07. März 2006

 

Copyright © 2004 Norbert Eusterholz