Webalizer mostra apenas 2 meses na página de resumo (Ubuntu 14.04)

1

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:

  • copiei os arquivos de log para um notebook com a nova instalação do 14.04 - mesmos resultados
  • Eu deixei os arquivos de log criados pelo apache do 14.04 - mesmo resultado
  • Eu peguei o código fonte do webalizador e o compilei em duas máquinas 14.04 diferentes - esta finalmente funciona.

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

    
por TomTomTom 20.06.2015 / 20:04

2 respostas

0

É um bug conhecido e há um patch: link

    
por Carl Whalley 29.06.2017 / 11:42
0

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.

    
por Richard 24.10.2015 / 23:05