domaingo speichert logfiles täglich. Um eine Datei für einen Monat zu erhalten, muß man also erst das Scriptezembed auf dem Server ausführen.(unter /logs). Das Skript zippt die Datei auch gleich, soda
domaingo speichert logfiles täglich. Um eine Datei für einen Monat zu erhalten, muß man also erst das Script
ezembed
auf dem Server ausführen.(unter /logs). Das Skript zippt die Datei auch gleich, sodaß sie schnell geladen werden kann.
Das lokale Verzeichnis für die Logfiles ist /home/public/logfiles
domaingo-Logs haben noch eine unangenehme Eigenschaft: sie speichern die Domain vor jedem Logeintrag, was dazu führt, daß webalizer die IP-Adressen nicht mehr verwerten kann (weil er sie offensichtlich an erster Stelle erwartet). Die Lösung ist, die Domaineinträge aus jeder Zeile zu entfernen. Dazu ruft man folgende sed-Kommandos auf:
sed -i "s/^ez.lbm-services.de //g" access-201111.log
sed -i "s/^lbm-services.de //g" access-201111.log
sed -i "s/^www.lbm-services.de //g" access-201111.log
Wichtig ist, daß auch das nachfolgende Leerzeichen mit gelöscht wird! Danach sollte webalizer in der Lage sein, aus den IPs die Länder zu rekonstruieren (OHNE IP-Lookups!).
Wenn die /etc/webalizer/webalizer.conf korrekt editiert ist, sollte das ausreichen:
webalizer -c /etc/webalizer/webalizer.conf -o /var/www/webalizer access-YYYYMM.log
Wichtig: NICHT als root ausführen, weil sonst der Owner der erzeugten Dateien im www-Dir auch root wird.
Wenn die Auflösung der IPs richtig funktioniert, sollte folgende Meldung mitkommen:
Using GeoIP Country Edition (/usr/share/GeoIP/GeoIP.dat)
Kompletter Output auf der Shell:
Verwende Protokolldatei access-201403.log (clf)
Using GeoIP Country Edition (/usr/share/GeoIP/GeoIP.dat)
Erzeuge Dateien in /var/www/webalizer
Rechnername für Bericht ist 'hli-N56VB'
Lese Datei mit historischen Daten... webalizer.hist
Warnung: Überlanges Verweis-Feld abgeschnitten
Erzeuge Bericht für Maerz 2014
Speichere historische Daten...
Erzeuge Zusammenfassung
153144 Einträge (1852 ignoriert) in 1 Sekunden, 153144/sec
Wenn es nicht geht (wie neuerdings unter debian), dann muß man die Adresse der GeoDB vielleicht extra mitgeben (oder in der webalizer.conf die Zeile GeoDB yes auskommentieren und den Pfad definieren!):
webalizer -c /etc/webalizer/webalizer.conf -o /var/www/webalizer -J /usr/share/GeoDB/GeoDB.dat ../public/logfiles/access-201111.log
Oder so : parameter -w fragt GeoIP online ab (?)
webalizer -c /etc/webalizer/webalizer.conf -o /var/www/webalizer -w Downloads/logfiles/access-201312.log
UPDATE 2014: GeoIP geht auch (GeoDB wird nicht mehr upgedatet?).
So gings jedenfalls einigermaßen.
Achtung: Im Grunde müßte man vorher die access.log vor dem Entfernen der Domainangaben in zwei Teile teilen um die richtigen Ergebnisse für ez.lbm und www.lbm zu bekommen. (war bisher zu faul dazu).
Hier der Code von cat_log.sh:
#!/bin/bash
# Script to uncompress/concatenate and recompress log-files
# Input of TLD and month required
echo "Tageslogs in Monatslogdatei zusammenfassen:"
echo "-------------------------------------------"
echo "TLD eingeben [jibbie/lbm-services]:"
read tld
echo "Monat eingeben [01-12]:"
read monat
EXPORTFILE="access-2011"$monat".log"
echo "Folgende Dateien werden entzippt und neu gepackt:"
echo "-------------------------------------------------"
ls -l $tld.de-2011-$monat-*.gz
# entzippen der Tageslogs
gunzip $tld.de-2011-$monat-*.gz
#zsetzen des Monatslogs
cat $tld.de-2011-$monat-* > $EXPORTFILE
echo
echo "Datei erstellt (wird gezippt): "
echo "-----------------------------"
ls -l $EXPORTFILE
#zippen des Monatslogs
gzip $EXPORTFILE
# zippen der Tagesfiles
gzip $tld.de-2011-$monat-*
echo "fertig."