Come monitorare le richieste HTTP in entrata


31

Come posso monitorare le HTTPrichieste in arrivo per il port 80? Ho impostato il web hosting sul mio computer locale usando DynDNSe Nginx. Volevo sapere quante richieste vengono fatte sul mio server ogni giorno.

Attualmente sto usando questo comando:

netstat -an | grep 80

Risposte:


42

Puoi usare 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)'

Per una soluzione che utilizza tsharkconsultare:

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


È così utile. C'è qualcosa di simile per i messaggi dell'usato?
Darth Egregious,

2
Che dire di https?
FooBar

7

Ho usato tcpflowper controllare le richieste in arrivo in istanze aws, forse c'è un modo per aggregare le richieste durante il giorno.

PASSAGGIO 1 - installazione

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

PASSAGGIO 2: tenere traccia delle richieste GET / POST alla porta 80

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

Riferimento

https://github.com/simsong/tcpflow


Per Ubuntu è: sudo apt install tcpflow Anche su Ubuntu "eth0" è chiamato come "ens33". È possibile utilizzare il comando ifconfig per visualizzare il nome dell'adattatore Ethernet.
nivs1978,

5

Hai i file di registro attivati ​​per il tuo server? In tal caso, ti consiglio di installare AwStats e di eseguire i tuoi file di registro per ottenere rapporti accurati.

Se desideri monitorare solo tutto il traffico in entrata / in uscita, puoi utilizzare WireShark.


4

Puoi anche personalizzare il file di registro:

tail -f /path/to/access_log

Il parametro -f farà sì che tail aggiorni continuamente la schermata man mano che nuove voci vengono scritte nel registro.


0

Esegui questo

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

Monitorerà il traffico sulla porta 8080 ogni 2 secondi

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.