it-swarm.it

Come monitorare le richieste HTTP in arrivo

Come posso monitorare HTTP richieste in arrivo sulla porta 80? Ho impostato il web hosting sul mio computer locale usando DynDNS e Nginx. Volevo sapere quante richieste vengono fatte sul mio server ogni giorno.

Attualmente sto usando questo comando:

netstat -an | grep 80
32
user7044

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 tshark vedere:

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

44
nad

Sto usando tcpflow per 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 - tiene 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

7
prayagupd

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 tutto il traffico in entrata/in uscita, puoi utilizzare WireShark.

5
djsumdog

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.

4
Dave

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

0
vsingh