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
user7044
quelle

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

nad
quelle
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

Gebet
quelle
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.

djsumdog
quelle
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.

Dave
quelle
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

vsingh
quelle