É um bug conhecido e há um patch: link
O Webalizer costumava mostrar 12 meses no resumo da página inicial, em uma visão geral gráfica e em uma lista de links para cada um desses meses e 11 meses antes. Isso funcionou fora da caixa, pelo menos no Ubuntu 10.04 e 12.04, eu só tinha que configurar o modo incremental para lidar com meus arquivos de log diários (não mensais).
Depois de mover dois sites para 14.04, achei o webalizer mexendo com o resumo, de forma que ele mostrou apenas dois meses na visão geral, 10 slots para os outros meses estavam vazios. A lista de links mostra apenas os mesmos dois meses (este mês e o último mês). Se eu omitir os dados de log de maio e junho, receberei março e abril - novamente apenas dois meses.
Eu tentei omitir o modo incremental (usando o arquivo de configuração padrão) e entreguei ao webalizer um único arquivo de log contendo 30 meses de logs. Isso resultou no webalizer criando um gráfico de resumo e uma lista de links de 11 vezes em maio e 1 de junho.
Importante notar: as estatísticas mensais parecem corretas, mesmo aquelas de três ou mais meses atrás, eu só tenho que digitar o URL manualmente de qualquer entrada de estatísticas há mais de dois meses.
Eu pesquisei na web com qualquer combinação de "webalizer", "two months", "only", etc. e encontrei apenas uma pergunta como essa - mas sem nenhuma resposta.
Qualquer ideia, o que está errado ou o que eu estou fazendo errado?
Ok, é claro que você quer ver mais exatamente o que eu tentei, então vou incluir exemplos de linha de comando do que eu tentei:
$ 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
$
Isso resultou em apenas dois meses no resumo total, mas resumos mensais (mesmo aqueles com mais de dois meses) foram criados e acessíveis por meio de URL digitado manualmente.
Outra tentativa (todos os dados de uma só vez - não incremental) foi:
$ 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
$
Resultado semelhante, mas o resumo total teve 11 entradas em maio e uma entrada em junho.
Quem pode ajudar a obter resumos corretos?
Obrigado, TomTomTom
=============================================== ==== EDIT: eu corrigi alguns erros, e eu fiz mais testes
Nenhuma resposta ou comentário durante mais de 24 horas - parece que este material do webalzer não é tão proeminente. Bem, isso é o que eu fiz:
Isso significa que o pacote webalizador do Ubuntu-14.04 está quebrado? Por mais de um ano agora? Difícil de acreditar.
Se ninguém puder explicar o que deu errado, pelo menos para aqueles que estão procurando por problemas de resumo do webalizer - você descobriu que não é só sua.
Ficarei feliz em ouvir sobre outras pessoas que têm problemas semelhantes com o webalizer - e ainda mais felizes, claro, se alguém puder me indicar uma solução que não requer a compilação de fontes do webalizer.
Obrigado!
TomTomTom
É um bug conhecido e há um patch: link
Bem, eu tenho o mesmo problema, Fedora box embora. E nenhuma solução também. Eu uso uma "solução alternativa", baseada em um script que encontrei no link , com o qual você recria o arquivo de histórico. Está sujo, copie e cole, mas funciona. Pelo menos por um mês (ou seja, até o webalizer recriar a página de índice e sobrescrever o arquivo de histórico):
#!/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"
}
Como dito, coloque este script no diretório que contém os resumos de estatísticas, execute-o e copie e cole o resultado em seu arquivo webalizer.hist. Lá vai você.
Isso provavelmente significa que a gravação do histórico no arquivo de histórico não funciona como esperado. Desde que eu não tenho idéia de onde olhar para a fonte, espero que alguém possa lançar mais luz sobre esse assunto ... Qualquer sugestão bem-vinda.