Como monitorar pedidos HTTP recebidos

28

Como posso monitorar as solicitações HTTP recebidas para a porta 80 ? Configurei hospedagem na web em minha máquina local usando DynDNS e Nginx . Eu queria saber quantas solicitações são feitas no meu servidor todos os dias.

Atualmente estou usando este comando:

netstat -an | grep 80
    
por user7044 26.08.2011 / 14:26

5 respostas

35

Você pode usar tcpdump .

# tcpdump filter for HTTP GET 
sudo tcpdump -s 0 -A 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'

# tcpdump filter for HTTP POST 
sudo tcpdump -s 0 -A 'tcp dst port 80 and (tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354)'

Para uma solução usando tshark , consulte:

link

    
por 26.08.2011 / 15:14
5

Você tem arquivos de log ativados para o seu servidor? Se fizer isso, recomendo instalar o AwStats e executar seus arquivos de log para obter relatórios precisos.

Se você quiser apenas monitorar todo o tráfego de entrada / saída, use o WireShark.

    
por 26.08.2011 / 15:10
5

Estou usando tcpflow para verificar solicitações recebidas em instâncias aws, talvez haja uma maneira de agregar solicitações no sentido horário.

PASSO 1 - instalação

# yum install --nogpgcheck http://pkgs.repoforge.org/tcpflow/tcpflow-0.21-1.2.el6.rf.x86_64.rpm

ETAPA 2 - acompanhar solicitações GET / POST na porta 80

# tcpflow -p -c -i eth0 port 80 | grep -oE '(GET|POST|HEAD) .* HTTP/1.[01]|Host: .*'

Referência

link

    
por 25.07.2014 / 16:29
3

Você também pode alterar o arquivo de log:

tail -f /path/to/access_log

O parâmetro -f fará com que a cauda atualize continuamente a tela quando novas entradas forem gravadas no log.

    
por 26.08.2011 / 16:39
0

Execute isto

while true
do
echo -----'date '+%r'' -----:
netstat -ant | grep :8080 | awk '{print $6}' | sort | uniq -c | sort -n
echo httpd processes: ['ps aux | grep httpd | wc -l']
echo .
sleep 2
done

Ele monitorará o tráfego na porta 8080 a cada 2 segundos

    
por 26.05.2016 / 21:40