Webalizer: Unterschied zwischen den Versionen

Aus Thomas Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „'''Webalizer''' wertet Log-Files für Web-Server aus und stellt das Ergebnis in WEB-Seiten dar. Verfügt man über mehrere virtuelle Hosts, muss jeder Host ein…“)
 
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
'''Webalizer''' wertet Log-Files für Web-Server aus und stellt das Ergebnis in WEB-Seiten dar. Verfügt man über mehrere virtuelle Hosts, muss jeder Host eine eigenes Log-File besitzen.
'''Webalizer''' wertet Log-Files für Web-Server aus und stellt das Ergebnis in WEB-Seiten dar. Verfügt man über mehrere virtuelle Hosts, muss jeder Host eine eigenes Log-File besitzen.


Folgendes Script erzeugt die notwendigen Verzeichnisse und passt die Definition der VHosts an. (Getestet unter OpenSuSE 11.4 mit Apache2)
Folgendes Script erzeugt die notwendigen Verzeichnisse und passt die Definition der virtuellen Host an. (Getestet unter OpenSuSE 11.4 mit Apache2)


  #!/bin/sh
  #!/bin/sh
Zeile 106: Zeile 106:
   
   
  popd
  popd
Das folgende kleine Script ''my_webalizer.sh'' erzeugt die Statistiken für die einzelnen virtuellen Server.
#!/bin/sh
for CONF in /etc/webalizer.d/*.conf
do
  webalizer -c "$CONF"
done
Es empfiehlt sich, das Verzeichnis der Statistiken /srv/www/htdocs/webalizer/ vor unberechtigtem Zugriff zu schützen.

Aktuelle Version vom 19. Januar 2012, 20:44 Uhr

Webalizer wertet Log-Files für Web-Server aus und stellt das Ergebnis in WEB-Seiten dar. Verfügt man über mehrere virtuelle Hosts, muss jeder Host eine eigenes Log-File besitzen.

Folgendes Script erzeugt die notwendigen Verzeichnisse und passt die Definition der virtuellen Host an. (Getestet unter OpenSuSE 11.4 mit Apache2)

#!/bin/sh

# Konfigurieren der Apache Logs und des  Webalizers,
# um mehrere virtuelle  VHosts zu analysieren.
# Jeder Host schreibt dazu seine Log-Daten in ein eigenes
# Access Log unter /var/log/apache/vhosts/<ServerName>/access_log.

# Das Ergebnis der Analyse wird in das Verzeichnis
# DocumentRoot/webalizer des Virtuellen Host geschrieben.  
# 

# Aktuelle Datum für Dokumentaion
DATE=`date +%Y-%m-%d`

# Temp. Script Datei für sed 
SED=`mktemp /tmp/XXXXXX.sed`

#
# Suchen aller ServerNamen und erstellen der Verzeichnisse
# für jeden vhosts 
# 

for ServerName in `cat /etc/apache2/vhosts.d/*.conf | grep -i ServerName | sed 's#.*ServerName *\([^ ]*\).*#\1#'`
do

### Nur, wenn für den vhost noch keine Logs existieren.###

if [ ! -d "/var/log/apache2/vhosts/${ServerName}" ]
then

# Anlegen der Verzeichnisse für die access_log Dateien
  mkdir -p "/var/log/apache2/vhosts/${ServerName}"

# Verzeichnis für die Webalizer *.conf Dateien anlegen
  mkdir -p "/etc/webalizer.d"

# Anlegen der Verzeichnise für den Webalizer Output
  mkdir -p "/srv/www/htdocs/webalizer/${ServerName}"

# Erstellen der Webalizer Konfigurationen

  cat > "/etc/webalizer.d/${ServerName}.conf" <<EOCONF
#####################
# Webalizer Config
# Generiert mit configure_webalizer
# Author: Thomas Arend, Rheinbach
# Stand: ${DATE}
#####################
HistoryName     webalizer.hist
Incremental     yes
IncrementalName webalizer.current
HostName        ${ServerName}
LogFile         /var/log/apache2/vhosts/${ServerName}/access_log
OutputDir       /srv/www/htdocs/webalizer/${ServerName} 
PageType        htm*
PageType        cgi
PageType        php*
HTAccess        yes
DNSCache        dns_cache.db
DNSChildren     10
HideURL         *.gif
HideURL         *.GIF
HideURL         *.jpg
HideURL         *.JPG
HideURL         *.png
HideURL         *.PNG
HideURL         *.ra
#####################
EOCONF

fi

echo -e "/ServerName ${ServerName}/ {" >>"$SED"
echo -e "n" >>"$SED"
echo -e "i\\" >>"$SED"
echo -e " CustomLog /var/log/apache2/vhosts/${ServerName}/access_log combined" >>"$SED"
echo -e "}" >>"$SED"

done

#
# Nun müssen wir noch das sed-Script auf alle vhosts anwenden.
#
# Beachte:
#   Es können mehrere vhosts in einer .conf definiert sein.
#
# Die neue Konfiguration steht anschließend in der Datei .conf.new 
#

pushd "/etc/apache2/vhosts.d"

for CF in *.conf
do

  cp "$CF" "$CF.${DATE}.old"
  # Erst alte CustomLog Einträge löschen und
  # dann neue einfügen.
  sed '/CustomLog/d' "${CF}.${DATE}.old" \
  | sed -f "$SED" > "${CF}.new"

done 

popd

Das folgende kleine Script my_webalizer.sh erzeugt die Statistiken für die einzelnen virtuellen Server.

#!/bin/sh

for CONF in /etc/webalizer.d/*.conf
do
  webalizer -c "$CONF"
done

Es empfiehlt sich, das Verzeichnis der Statistiken /srv/www/htdocs/webalizer/ vor unberechtigtem Zugriff zu schützen.