So überwachen Sie eingehende http-Anforderungen


31

Wie kann ich eingehende HTTPAnforderungen an den Port überwachen 80? Ich habe das Webhosting auf meinem lokalen Computer mit DynDNSund eingerichtet Nginx. Ich wollte wissen, wie viele Anfragen täglich auf meinem Server eingehen.

Zur Zeit benutze ich diesen Befehl:

netstat -an | grep 80

Antworten:


41

Sie können verwenden 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)'

Für eine Lösung mit tsharksiehe:

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


Das ist so hilfreich. Gibt es etwas Ähnliches für Sparsamkeitsnachrichten?
Darth Egregious

2
Was ist mit https?
FooBar

7

Ich habe tcpfloweingehende Anfragen in aws-Instanzen überprüft. Vielleicht gibt es eine Möglichkeit, Anfragen tageweise zu aggregieren.

SCHRITT 1 - Installation

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

SCHRITT 2 - Verfolgen von GET / POST-Anforderungen an Port 80

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

Referenz

https://github.com/simsong/tcpflow


Für Ubuntu ist es: sudo apt install tcpflow Auch unter Ubuntu heißt das "eth0" so etwas wie "ens33". Mit dem Befehl ifconfig können Sie den Namen Ihres Ethernet-Adapters anzeigen.
nivs1978

5

Haben Sie Protokolldateien für Ihren Server aktiviert? In diesem Fall würde ich empfehlen, AwStats zu installieren und Ihre Protokolldateien damit auszuführen, um genaue Berichte zu erhalten.

Wenn Sie nur den gesamten ein- und ausgehenden Datenverkehr überwachen möchten, können Sie WireShark verwenden.


4

Sie können die Protokolldatei auch mit einem Tail versehen:

tail -f /path/to/access_log

Der Parameter -f bewirkt, dass tail den Bildschirm kontinuierlich aktualisiert, wenn neue Einträge in das Protokoll geschrieben werden.


0

Führen Sie das aus

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

Es überwacht alle 2 Sekunden den Verkehr auf dem 8080-Port

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.