Não seria muito legal se você pudesse executar uma ferramenta como o tcpdump e ver todas as solicitações HTTP que fluem por meio da rede, de uma forma legível?
Porque, vamos ser honestos, algo como isso está longe de ser legível.
$ tcpdump -i eth0 port 80 -A 20:56:08.793822 IP 172.28.128.1.49781 > 172.28.128.3.http: Flags [S], seq 1641176060, win 65535, options [mss 1460,nop,wscale 5,nop,nop,TS val 1225415667 ecr 0,sackOK,eol], length 0 E..@V.@.@............u.Pa.[..........-............. ...
Isso diz que algo está fluindo ao longo da rede, mas você com certeza não pode ler o que está acontecendo nela com precisão. Você reconhece palavras-chave, mas é só isso.
Existem ferramentas lá fora que fazem um trabalho melhor, como httpry.
Ele existe há tempo suficiente para estar presente na maioria dos repositórios de servidores Linux até agora. Instale-o pelo seu gerenciador de pacotes preferido.
$ yum install httpry $ apt-get install httpry
Depois de tê-lo instalado, você pode executá-lo em seu servidor para começar a monitorar chamadas HTTP.
$ httpry -i eth0 172.28.128.1 172.28.128.3 > HEAD ma.ttias.be / HTTP/1.1 - - 172.28.128.3 172.28.128.1 < - - - HTTP/1.1 301 Moved Permanently
Para emitir o resultado acima, execute o seguinte comando:
$ curl -I 172.28.128.3 -H "Host: ma.ttias.be"
Ele fez um pedido do cabeçalho HEAD (-I) e obteve um retorno HTTP 301 de volta.
Quer ver quantas solicitações HTTP por segundo das que estão fluindo pelo vhost são as mais ativas? Comece executando httpry com o parâmetro -s.
$ httpry -i eth0 -s ... 2015-08-06 21:06:56 infinite-download.ma.ttias.be 19 rps 2015-08-06 21:06:56 enginehack.ma.ttias.be 61 rps 2015-08-06 21:06:56 totals 30.69 rps 2015-08-06 21:07:01 infinite-download.ma.ttias.be 21 rps 2015-08-06 21:07:01 enginehack.ma.ttias.be 56 rps 2015-08-06 21:07:01 totals 32.41 rps
A cada 5 segundos, a saída mostra os pedidos feitos nesse último intervalo. Ele mostra o cabeçalho Host: usado nesse pedido e a quantidade de pedidos que foi recebida.
Por enquanto, a ferramenta não funciona em pedidos HTTPS; mesmo assim, ela é útil para ter em seu arsenal.
***
Mattias Geniar faz parte do time de colunistas internacionais do iMasters. A tradução do artigo é feita pela redação iMasters, com autorização do autor, e você pode acompanhar o artigo em inglês no link: https://ma.ttias.be/monitor-all-http-requests-like-tcpdump-on-a-linux-server-with-httpry/