ferramentas de análise de log do apache para vários hosts virtuais?

3

Estou interessado em tentar obter uma comparação de uso lado a lado de todos os hosts virtuais servidos pelo meu servidor apache.

No caso mais simples, quero ver uma lista (ou gráfico de barras) com cada host virtual e o número de solicitações / tráfego nesse site.

Estou brincando com o webalyzer e o awstats, mas não consegui comparar vários hosts virtuais no mesmo infográfico.

Alguém tem alguma sugestão sobre ferramentas para fazer isso (ou como eu posso usar as ferramentas acima para fazer isso)?

    
por shreddd 26.05.2010 / 01:49

3 respostas

1

Geralmente, quando uso hosts virtuais, tenho logs de acesso diferentes para cada host virtual. Se este for o caso e você só quer hits:

wc -l foo_vhosts.access*

Isso conta as linhas, que seriam entradas de log, que são basicamente quantas ocorrências você recebeu. Mas você deve descrever se você registra arquivos diferentes ou não, e postar uma entrada de log de exemplo.

Se você não logar em arquivos diferentes, e seu formato de log não incluir %v em seu formato, você está meio sem sorte, a menos que você possa correlacionar cada uri ao seu host virtual.

    
por 26.05.2010 / 02:31
1

Primeiro, você precisa alterar seu formato de log para que o host virtual seja registrado em cada entrada de log. Algo parecido com o seguinte, você obterá um formato Combinado / Expandido com o bônus de% v, que é o nome do host virtual:

LogFormat "%h %v %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{Cookie}i\"" LogServerName

Em seguida, quando você deve informar ao apache para usar esse formato de log. Algo como o seguinte pode ser adicionado globalmente ou para os hosts virtuais individuais (mais fácil globalmente). Na verdade, eu geralmente tenho a linha acima e esta em um único arquivo chamado /etc/httpd/conf.d/access_logging.conf:

CustomLog /var/log/httpd/global_access.log LogServerName

Uma vez feito isso, você poderá pelo menos desativar os diferentes Hosts Virtuais. Então você pode usar algo como petit ou uniq para fazer o seguinte.

cat /var/log/httpd/global_access.log | awk '{print $ 2}' | petit - hash

Além disso, você poderia usar racecar para fazer análise de largura de banda com algo parecido com isto. Pode ser um pouco lento em arquivos grandes, mas é rápido e sujo.

for i in 'cat /var/log/httpd/global_access.log | awk '{print $2}''; do cat /var/log/httpd/global_access.log | grep $i | racecar; done

Link: link Link: link

    
por 22.09.2010 / 20:59
-1

@kyle, corte -f 1 -d '' combinadolog | ordenação | uniq -c | ordenar -nr

    
por 26.05.2010 / 02:47