Monitore seu Apache

Monitorar em tempo real o que acontece com seu servidor Web é, em muitos momentos,
importantíssimo para o processo de localizar ataques, bots, tráfego mal redirecionado ou pontos
de sobrecarga.

Claro que sempre podemos ler as linhas do access_log utilizando tail -f /var/log/httpd/access_log; mas esta técnica envolve mais feeling do que precisão.

Uma ferramenta que me ajuda neste trabalho, em servidores Redhat/CentOs/Amazon Linux AMI é o Apachetop.

Vou mostrar uma maneira simples de visualizar quais IPs estão consumindo mais requisições em seu servidor:

  apachetop -T 120 -f /var/log/httpd/access_log;  

Com este comando eu aponto meu log de acessos do apache e defino que considerarei sempre os últimos 2 minutos de tráfego e na tela seguinte vejo a lista de urls mais requisitadas.

O parâmetro -T indica a quantidade de segundos que considerarei para avaliação, lembrando que isto é em tempo real.

Também podemos trocar o -T por -H, informando a quantidade de últimos Hits avaliados:

  apachetop -H 2000 -f /var/log/httpd/access_log;  

Visualizações

Você pode alternar entre 3 tipos de visualização pressionando a tecla D.

Tipos de visualização:

  • Urls com maior número de requisições por segundo
  • HOSTS (IPs) com maior número de requisições por segundo
  • REFFERERS com maior número de requisições por segundo
Screen Shot  - Apachetop - Lista de IPs com maior número de requisições

Screen Shot – Apachetop – Lista de IPs com maior número de requisições

Filtros

Note que na primeira linha de resultado existe um asterisco o qual você consegue mover para baixo ou para cima utilizando as setas de seu teclado e com a seta direita você consegue ver detalhes de uma destas linhas.

Você também pode adicionar filtros, usando a tecla F. Como exemplo, para que eu exiba apenas requisições de IPs que iniciam com 92., eu posso seguir esta sequência de digitação:

  1. Tecla F
  2. Tecla A
  3. Tecla H
  4. 92.
  5. Enter

Ajuda

Apenas pressione a tecla “?”.

Como instalar a ferramenta

Este projeto é antigo e não possui nenhuma página oficial onde você possa visualizar tutoriais de instalação, mas o processo é bem simples. Como requisitos, em um ambiente CentOs, você precisa instalar os seguintes pacotes:

  yum group install "Development Tools"    yum install readline-devel ncurses-devel  

Depois você pode baixar o apachetop em:
http://pkgs.fedoraproject.org/repo/pkgs/apachetop/apachetop-0.12.6.tar.gz/

Depois de descomprimir o arquivo, utilize make seguido de make install e pronto.

Você ainda pode criar um atalho adicionando este alias ao seu bash profile:

  alias monitorar='apachetop -T 120 -f /var/log/httpd/access_log';  

Contribua!

Você pode me escrever contando formas diferentes com que usa o Apachetop ou ainda como utiliza outras ferramentas para este mesmo propósito.


 

Contribuição de Gabriel Francisco:

Uma alternativa para este trabalho é o GoAccess:

open source real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems. It provides fast and valuable HTTP statistics for system administrators that require a visual server report on the fly. More info at: http://goaccess.io.

 

Minha avaliação sobre o Goaccess:

Instalei o Goaccess em um servidor com altíssimo acesso e ele demorou bastante até exibir o relatório inicial.
A qualidade das informações é muito boa, algumas superiores ao apachetop

http://goaccess.io

O ponto negativo  do Goaccess é o consumo de memória e cpu que é muito maior em comparação ao apachetop,
então, se você estiver buscando como lidar com um servidor que está sobrecarregado, de forma alguma use o Goaccess!

Screen Shot 2015-07-07 at 9.36.11 AM

You may also like...