Webalizer zeigt auf der Übersichtsseite nur 2 Monate an (Ubuntu 14.04)

Webalizer zeigt auf der Übersichtsseite nur 2 Monate an (Ubuntu 14.04)

Webalizer zeigte früher 12 Monate in der Übersicht der Startseite an, in einer grafischen Übersicht sowie in einer Linkliste zu jedem dieser Monate und den 11 Monaten davor. Dies funktionierte zumindest in Ubuntu 10.04 und 12.04 sofort, ich musste nur den inkrementellen Modus konfigurieren, um mit meinen täglichen (nicht monatlichen) Protokolldateien umzugehen.

Nachdem ich zwei Websites auf 14.04 verschoben hatte, stellte ich fest, dass Webalizer die Zusammenfassung so manipulierte, dass in der grafischen Übersicht nur zwei Monate angezeigt wurden, 10 Felder für die anderen Monate waren leer. Die Linkliste zeigt nur dieselben zwei Monate (diesen Monat und den letzten Monat). Wenn ich die Protokolldaten für Mai und Juni weglasse, erhalte ich März und April – also wieder nur zwei Monate.

Ich habe versucht, den inkrementellen Modus wegzulassen (unter Verwendung der Standardkonfigurationsdatei) und habe Webalizer eine einzelne Protokolldatei mit Protokollen für 30 Monate übergeben. Dies führte dazu, dass Webalizer eine Übersichtsgrafik und eine Linkliste mit 11 Mal Mai und 1 Mal Juni erstellte.

Wichtiger Hinweis: Die monatlichen Statistiken sehen korrekt aus, auch die von vor drei oder mehr Monaten. Ich muss lediglich die URL aller Statistikeinträge, die älter als zwei Monate sind, von Hand eingeben.

Ich habe das Internet mit allen möglichen Kombinationen aus „Webalizer“, „zwei Monate“, „nur“ usw. durchsucht und nur eine einzige Frage dieser Art gefunden – allerdings ohne Antwort.

Irgendwelche Ideen, Leute, was los ist oder was ich falsch machen könnte?

Ok, Sie möchten natürlich genauer sehen, was ich versucht habe, daher werde ich Befehlszeilenbeispiele meiner Versuche beifügen:

$ logdir=/path-to-logdir
$ ls $logdir
...
2015.0617-access.log.gz
2015.0618-access.log.gz
2015.0619-access.log.gz
$ outputdir=/path-to-webroot/statistics
$ rm $outputdir/*
$ for logfile in $logdir/*-access.log.gz;  do webalizer -r http://$hostname -n $hostname -o $outputdir $logfile;  done
... lots of verbose output about webalizer's activity
... last of it being:
Webalizer V2.23-08 (Linux 3.13.0-55-generic x86_64) locale: htm*
Using logfile /path-to-logdir/2015.0619-access.log.gz (gzip-clf)
Creating output in /path-to-webroot/statistics
Hostname for reports is 'myhostname'
Reading history file... webalizer.hist
Reading previous run data.. webalizer.current
Saving current run data... [06/19/2015 23:27:09]
Generating report for June 2015
Saving history information...
Generating summary report
20 records in 1 seconds, 20/sec
$ 

Dies führte dazu, dass insgesamt nur eine Zusammenfassung von zwei Monaten verfügbar war, es wurden jedoch Monatszusammenfassungen (auch solche, die älter als zwei Monate sind) erstellt und über manuell eingegebene URLs zugänglich gemacht.

Ein weiterer Versuch (alle Daten auf einmal – nicht inkrementell) war:

$ zcat $logdir/*-access.log.gz >/tmp/access.log
$ rm $outputdir/*
$ webalizer -r http://$hostname -n $hostname -o $outputdir /tmp/access.log
... lots of verbose output just as before
$ 

Ähnliches Ergebnis, aber die Gesamtzusammenfassung enthielt 11 Einträge für Mai und einen Eintrag für Juni.

Wer kann dabei helfen, korrekte Zusammenfassungen zu erhalten?

Vielen Dank, TomTomTom

====================================================== EDIT: Ich habe einige Tippfehler korrigiert und weitere Tests durchgeführt

Keine einzige Antwort oder Kommentar seit mehr als 24 Stunden – sieht so aus, als ob dieser Webalzer-Kram nicht so prominent ist. Nun, das hier habe ich getan:

  • Ich habe die Protokolldateien auf ein Notebook mit einer Neuinstallation von 14.04 kopiert - gleiches Ergebnis
  • Ich habe die von Apache 14.04 erstellten Protokolldateien gelöscht - dasselbe Ergebnis
  • Ich habe mir den Quellcode von Webalizer geschnappt und ihn auf zwei verschiedenen 14.04-Rechnern kompiliert – dieser hier funktioniert endlich.

Bedeutet das, dass das Webalizer-Paket von Ubuntu 14.04 defekt ist? Und das schon seit mehr als einem Jahr? Kaum zu glauben.

Wenn sich niemand erklären kann, was schiefgelaufen ist, haben zumindest diejenigen unter Ihnen, die nach Problemen mit der Webalizer-Zusammenfassung suchen, festgestellt, dass Sie nicht allein das Problem haben.

Ich freue mich, von anderen zu hören, die ähnliche Probleme mit Webalizer haben – und noch mehr freue ich mich natürlich, wenn mir jemand eine Lösung zeigen kann, für die keine Kompilierung der Webalizer-Quellen erforderlich ist.

Danke schön!

TomTomTom

Antwort1

Es ist ein bekannter Fehler und es gibt einen Patch:https://bugs.launchpad.net/ubuntu/+source/webalizer/+bug/1471387

Antwort2

Nun, ich habe das gleiche Problem, allerdings auf der Fedora-Box. Und auch keine Lösung. Ich verwende einen "Workaround", basierend auf einem Skript, das ich beihttp://stevehavelka.com/rebuilding-broken-webalizer-history-tcl/, mit dem Sie die Verlaufsdatei neu erstellen. Es ist schmutzig, im Copy-Paste-Stil, aber es funktioniert. Zumindest für einen Monat (das heißt, bis Webalizer die Indexseite neu erstellt und die Verlaufsdatei überschreibt):

#!/bin/sh
#Using this script is straightforward:
#
# 1. Run it within the folder that has your old webalizer files, and it produces as much historical data as it can.
# 2. Copy/paste that historical data into your webalizer.hist file, and rerun Webalizer.
# 3. That’s it!  You should have all your stats back.
#
# the next line restarts using tclsh \
exec tclsh "$0" "$@"

# first, find the right files
foreach file [lsort -decreasing [glob usage_*.html]] {

    # and get the date from the files
    regexp {usage_(\d{4})(\d\d).html} $file -> year month

    # open the file to get some data from it
    set fh [open $file r]
    set text [list]
    while { ![eof $fh] } {
        lappend text [gets $fh]
    }
    close $fh

    # now start pulling out data with Total Hits
    set idx [lsearch -glob $text {*Total Hits*}]
    regexp {<B>(\d+)</B>} [lindex $text $idx+1] -> totalHits

    # Total Files
    set idx [lsearch -glob $text {*Total Files*}]
    regexp {<B>(\d+)</B>} [lindex $text $idx+1] -> totalFiles

    # Total Unique Sites
    set idx [lsearch -glob $text {*Total Unique Sites*}]
    regexp {<B>(\d+)</B>} [lindex $text $idx+1] -> totalUniques

    # Total kB Files
    set idx [lsearch -glob $text {*Total kB Files*}]
    if { $idx == -1 } {
        set idx [lsearch -glob $text {*Total KBytes*}]
    }
    regexp {<B>(\d+)</B>} [lindex $text $idx+1] -> totalKb

    # Process days
    set first [lsearch -glob $text {*Daily Statistics for*}]
    set last [lsearch -glob $text {*Hourly Statistics for*}]
    set subtext [lrange $text $first $last]
    set dates [lsearch -glob -all -inline $subtext {<TR*><TD ALIGN=center><FONT SIZE="-1"><B>*</B></FONT></TD>}]

    # First day processed
    regexp {<B>(\d+)</B>} [lindex $dates 0] -> firstDay

    # Last day processed
    regexp {<B>(\d+)</B>} [lindex $dates end] -> lastDay

    # Total Pages
    set idx [lsearch -glob $text {*Total Pages*}]
    regexp {<B>(\d+)</B>} [lindex $text $idx+1] -> totalPages

    # Total Visits
    set idx [lsearch -glob $text {*Total Visits*}]
    regexp {<B>(\d+)</B>} [lindex $text $idx+1] -> totalVisits

    # and that's it!
    puts "[string trimleft $month 0] $year $totalHits $totalFiles $totalUniques $totalKb $firstDay $lastDay $totalPages $totalVisits"

}

Legen Sie dieses Skript wie angegeben in das Verzeichnis mit den Statistikzusammenfassungen, führen Sie es aus und kopieren Sie das Ergebnis in Ihre Datei webalizer.hist. Fertig.

Das bedeutet wahrscheinlich, dass das Zurückschreiben des Verlaufs in die Verlaufsdatei nicht wie erwartet funktioniert. Da ich absolut keine Ahnung habe, wo ich in der Quelle nachsehen soll, hoffe ich, dass jemand anderes mehr Licht in dieses Problem bringen kann ... Jeder Vorschlag ist willkommen.

verwandte Informationen