Melhor maneira de examinar os logs do Apache no Ubuntu Server?

3

Estou recebendo muito tráfego que está destruindo meu minúsculo servidor. Existe algo que eu possa instalar que me permita examinar meu tráfego Apache em tempo real? Idealmente, uma interface web. Gostaria de ver para que servem os pedidos e quais estão levando mais recursos.

    
por Kirk Ouimet 16.06.2011 / 19:45

4 respostas

2

O mod_status do Apache pode ajudá-lo. Para uma solução de problemas mais complexa, talvez seja necessário personalizar o formato de seus registros (por exemplo, incluir% D nele) e escrever algum tipo de analisador.

    
por 16.06.2011 / 20:18
1

Você já tentou usar o status estendido do Apache?

    
por 16.06.2011 / 20:16
1

bem, você precisa analisar os logs do apache, existem muitas ferramentas para fazer isso. Eu mesmo escrevi alguns scripts de awk.

echo  "Hits by source IP:"
echo "======================================================================"

awk '{print $2}' "$1" | grep -ivE "(127.0.0.1|192.168.100.)" | sort | uniq -c | sort -   rn | head -25


echo "The 25 most popular pages:"
echo "======================================================================"

awk '{print $6}' "$1" | grep -ivE '(mod_status|favico|crossdomain|alive.txt)' | grep  -ivE '(.gif|.jpg|.png)' | sed 's/\/$//g' | sort | uniq -c | sort -rn | head -25

echo

echo "The 25 most popular pages (no js or css):"
echo "======================================================================"

awk '{print $6}' "$1" | grep -ivE '(mod_status|favico|crossdomain|alive.txt)' | grep -ivE '(.gif|.jpg|.png|.js|.css)' | sed 's/\/$//g' | sort | uniq -c | sort -rn | head -25


echo "The 25 most common referrer URLs:"
echo "======================================================================"

awk '{print $11}' "$1" | \
grep -vE "(^"-"$|/www.$host|/$host)" | \
sort | uniq -c | sort -rn | head -25



echo "Longest running requests"
echo "======================================================================"

awk  '{print $10,$6}' "$1" | grep -ivE '(.gif|.jpg|.png|.css|.js)'  | awk '{secs=0.000001*$1;req=$2;printf("%.2f minutes req time for %s\n", secs / 60,req )}' | sort -rn | head -50

exit 0

Basta colocar um arquivo chamado: "apache_stats" e executá-lo como: "./apache_stats".

    
por 23.11.2011 / 23:02
0

Confira o link

M / Monit é pago e oferece muito mais recursos (e uma GUI mais expansiva). Monit é gratuito e permite monitorar. Você pode receber alertas por e-mail quando a carga do seu servidor ultrapassar um certo limite. Eu uso isso para monitorar a carga do servidor e responder de acordo.

    
por 16.06.2011 / 21:32