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
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
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: .*'
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.
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.
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