Comment surveiller les requêtes http entrantes

31

Comment puis-je surveiller les HTTPdemandes entrantes de portage 80? J'ai configuré l'hébergement Web sur ma machine locale à l'aide de DynDNSet Nginx. Je voulais savoir combien de demandes sont effectuées sur mon serveur chaque jour.

Actuellement, j'utilise cette commande:

netstat -an | grep 80
user7044
la source

Réponses:

42

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 tsharkvoir:

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

nad
la source
C'est tellement utile. Y a-t-il quelque chose de similaire pour les messages d'épargne?
Dark Egregious
2
Et https?
FooBar
7

J'ai utilisé tcpflowpour vérifier les demandes entrantes dans les instances aws, il y a peut-être un moyen d'agréger les demandes tous les jours.

É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 au 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

priagupd
la source
Pour Ubuntu, c'est: sudo apt install tcpflow Sur Ubuntu également, "eth0" est nommé quelque chose comme "ens33". Vous pouvez utiliser la commande ifconfig pour voir le nom de votre adaptateur Ethernet.
nivs1978
5

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.

djsumdog
la source
4

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.

Dave
la source
0

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

vsingh
la source