Jak monitorować przychodzące żądania HTTP


31

Jak mogę monitorować przychodzące HTTPżądania do portu 80? Skonfigurowałem hosting na moim komputerze lokalnym za pomocą DynDNSi Nginx. Chciałem wiedzieć, ile żądań przesyłanych jest codziennie na mój serwer.

Obecnie używam tego polecenia:

netstat -an | grep 80

Odpowiedzi:


41

Możesz użyć 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)'

Aby uzyskać rozwiązanie za pomocą tsharkzobacz:

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


To bardzo pomocne. Czy istnieje coś podobnego dla wiadomości oszczędnościowych?
Darth Egregious

2
Co z https?
FooBar,

7

Używam tcpflowdo sprawdzania przychodzących żądań w instancjach aws, może istnieje sposób na agregowanie żądań w ciągu dnia.

KROK 1 - instalacja

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

KROK 2 - śledź żądania GET / POST na porcie 80

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

Odniesienie

https://github.com/simsong/tcpflow


W przypadku Ubuntu jest to: sudo apt install tcpflow Również w Ubuntu nazwa „eth0” nosi nazwę „ens33”. Możesz użyć polecenia ifconfig, aby zobaczyć nazwę twojego adaptera Ethernet.
nivs1978

5

Czy masz włączone pliki dziennika dla swojego serwera? Jeśli tak, zalecam zainstalowanie AwStats i uruchomienie plików dziennika za jego pomocą, aby uzyskać dokładne raportowanie.

Jeśli chcesz monitorować cały ruch przychodzący / wychodzący, możesz użyć WireShark.


4

Możesz także dostosować plik dziennika:

tail -f /path/to/access_log

Parametr -f powoduje, że tail stale aktualizuje ekran, gdy nowe wpisy są zapisywane w dzienniku.


0

Uruchomić to

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

Będzie monitorował ruch na porcie 8080 co 2 sekundy

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.