it-swarm-id.com

Cara memonitor permintaan http yang masuk

Bagaimana saya bisa memonitor permintaan HTTP yang masuk ke porta 80? Saya telah menyiapkan hosting web di mesin lokal saya menggunakan DynDNS dan Nginx. Saya ingin tahu berapa banyak permintaan dibuat di server saya setiap hari.

Saat ini saya menggunakan perintah ini:

netstat -an | grep 80
32
user7044

Anda dapat menggunakan 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)'

Untuk solusi menggunakan tshark lihat:

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

44
nad

Saya telah menggunakan tcpflow untuk memeriksa permintaan yang masuk pada saat aws, mungkin ada cara untuk mengagregasi permintaan secara harian.

LANGKAH 1 - instalasi

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

LANGKAH 2 - melacak permintaan GET/POST di port 80

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

Referensi

https://github.com/simsong/tcpflow

7
prayagupd

Apakah Anda memiliki file log yang dihidupkan untuk server Anda? Jika ya, saya sarankan menginstal AwStats dan menjalankan file log Anda dengannya untuk mendapatkan pelaporan yang akurat.

Jika Anda ingin memantau semua lalu lintas masuk/keluar, Anda dapat menggunakan WireShark.

5
djsumdog

Anda juga dapat mengekor file log:

tail -f /path/to/access_log

Parameter -f akan menyebabkan tail terus memperbarui layar saat entri baru ditulis ke log.

4
Dave

Jalankan ini

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

Ini akan memonitor lalu lintas pada port 8080 setiap 2 detik

0
vsingh