web-dev-qa-db-fra.com

Comment surveiller les requêtes http entrantes

Comment puis-je surveiller les HTTP demandes entrantes vers le port 80? J'ai configuré l'hébergement Web sur ma machine locale à l'aide de DynDNS et Nginx. Je voulais savoir combien de demandes sont faites sur mon serveur chaque jour.

Actuellement, j'utilise cette commande:

netstat -an | grep 80
32
user7044

Vous pouvez utiliser 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)'

Pour une solution utilisant tshark, voir:

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

44
nad

J'utilise tcpflow pour vérifier les demandes entrantes dans les instances aws, il y a peut-être un moyen d'agréger les demandes chaque jour.

ÉTAPE 1 - installation

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

ÉTAPE 2 - suivre les demandes GET/POST sur le port 80

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

Référence

https://github.com/simsong/tcpflow

7
prayagupd

Les fichiers journaux sont-ils activés pour votre serveur? Si vous le faites, je vous recommande d'installer AwStats et d'exécuter vos fichiers journaux avec lui pour obtenir des rapports précis.

Si vous souhaitez simplement surveiller tout le trafic entrant/sortant, vous pouvez utiliser WireShark.

5
djsumdog

Vous pouvez également personnaliser le fichier journal:

tail -f /path/to/access_log

Le paramètre -f entraînera la mise à jour continue de l'écran à mesure que de nouvelles entrées sont écrites dans le journal.

4
Dave

Lance ça

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

Il surveillera le trafic sur le port 8080 toutes les 2 secondes

0
vsingh