it-swarm-eu.dev

Jak sledovat příchozí požadavky http

Jak mohu sledovat příchozí HTTP požadavky na port 80? Nastavil jsem webhosting na svém místním počítači pomocí DynDNS a Nginx. Chtěl jsem vědět, kolik požadavků je na mém serveru každý den.

Momentálně používám tento příkaz:

netstat -an | grep 80
32
user7044

Můžete použít 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)'

Řešení používající tshark viz:

https://serverfault.com/questions/84750/monitoring-http-traffic-using-tcpdump

44
nad

Použil jsem tcpflow ke kontrole příchozích požadavků v aws případech, možná existuje způsob, jak agregovat žádosti po celý den.

KROK 1 - instalace

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

KROK 2 - sledování požadavků GET/POST na portu 80

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

Odkaz

https://github.com/simsong/tcpflow

7
prayagupd

Máte zapnuté soubory protokolu pro váš server? Pokud tak učiníte, doporučuji nainstalovat AwStats a spustit s ním protokolové soubory, abyste získali přesné zprávy.

Pokud chcete sledovat veškerý příchozí/odchozí provoz, můžete použít WireShark.

5
djsumdog

Můžete také ocasovat soubor protokolu:

tail -f /path/to/access_log

Parametr -f způsobí, že ocas bude průběžně aktualizovat obrazovku, protože nové záznamy se zapisují do protokolu.

4
Dave

Spusťte to

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

Bude monitorovat provoz na portu 8080 každé 2 sekundy

0
vsingh