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

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

O Webalizer costumava mostrar 12 meses no resumo da página inicial, em uma visão geral gráfica, bem como em uma lista de links para cada um deste mês e dos 11 meses anteriores. Isso funcionou imediatamente, pelo menos no Ubuntu 10.04 e 12.04, eu só tive 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, encontrei o webalizer mexendo no resumo, de forma que mostrava apenas dois meses na visão geral gráfica, 10 vagas dos outros meses estavam vazias. A lista de links mostra apenas os mesmos dois meses (este mês e o mês passado). Se eu omitir os dados de registro de maio e junho, recebo março e abril - novamente apenas dois meses.

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 na criação do webalizer de um gráfico resumido e uma lista de links de 11 vezes em maio e 1 vez em junho.

Importante notar: as estatísticas mensais parecem corretas, mesmo aquelas de três ou mais meses atrás, basta digitar manualmente a URL de qualquer entrada de estatísticas há mais de 2 meses.

Pesquisei na web qualquer combinação de "webalizer", "dois meses", "apenas" etc. e encontrei apenas uma pergunta como esta - mas sem nenhuma resposta.

Alguma ideia pessoal, o que há de errado ou o que posso estar fazendo de errado?

Ok, é claro que você deseja ver mais exatamente o que tentei, então incluirei exemplos de linha de comando do que 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 de resumo total, mas resumos mensais (mesmo aqueles com mais de 2 meses) foram criados e acessíveis por meio de URL digitado manualmente.

Outra tentativa (todos os dados de uma 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: corrigi alguns erros de digitação e fiz mais testes

Nem uma única resposta ou comentário durante mais de 24 horas - parece que esse material do webalzer não é tão proeminente. Bem, isso é o que eu fiz:

  • Copiei os arquivos de log para um notebook com nova instalação do 14.04 - mesmos resultados
  • Deixei cair os arquivos de log criados pelo Apache 14.04 - mesmo resultado
  • Peguei o código-fonte do webalizer e o compilei em duas máquinas 14.04 diferentes - esta finalmente funciona.

Isso significa que o pacote webalizer do Ubuntu-14.04 está quebrado? Há mais de um ano? Difícil de acreditar.

Se ninguém consegue explicar o que deu errado, pelo menos para aqueles que procuram problemas de resumo do webalizer - você descobriu que não é só seu.

Ficarei feliz em ouvir sobre outras pessoas que têm problemas semelhantes com o webalizer - e ainda mais feliz, é claro, se alguém puder me indicar uma solução que não exija a compilação de fontes do webalizer.

Obrigado!

TomTomTom

Responder1

Responder2

Bem, eu tenho o mesmo problema, embora a caixa do Fedora. E também não há solução. Eu uso uma "solução alternativa", baseada em um script que encontrei emhttp://stevehavelka.com/rebuilding-broken-webalizer-history-tcl/, com o qual você recria o arquivo de histórico. É sujo, estilo copiar e colar, mas funciona. Pelo menos por um mês (ou seja, até que o webalizer recrie a página de índice e substitua 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"

}

Conforme declarado, 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. Ai está.

Isso provavelmente significa que a gravação do histórico no arquivo de histórico não funciona conforme o esperado. Como não tenho ideia de onde procurar na fonte, espero que alguém possa esclarecer mais sobre esse assunto... Qualquer sugestão é bem-vinda.

informação relacionada