Que puis-je utiliser pour surveiller et enregistrer le trafic entrant / sortant vers / depuis des hôtes distants?

13

Je gère un serveur Web (Debian Squeeze sur un VPS), et les graphiques fournis par la société d'hébergement montrent systématiquement qu'environ deux fois plus de trafic entrant sur le serveur par rapport au trafic sortant. Je suis un peu confus par cela, donc je voudrais exécuter une sorte d'utilitaire de journalisation sur la machine qui non seulement confirmera les chiffres de téléchargement / téléchargement, mais les divisera également par l'hôte distant impliqué, afin que je puisse voir si un une grande partie du trafic entrant provient d'une source particulière.

Je soupçonne que la plupart du trafic sortant passe par Apache, mais le trafic entrant peut être principalement via Apache ou pourrait être dominé par d'autres scripts et travaux cron, donc je préférerais un outil qui surveillerait le trafic au niveau de l'interface plutôt que quelque chose dans Apache .

Idéalement, je voudrais un outil que je puisse laisser fonctionner pendant quelques jours, puis revenir et obtenir une sortie de "octets par hôte distant" pour le trafic entrant et sortant.

Est-ce possible avec un outil Linux standard et un peu de configuration (si oui, comment?) Ou avec un programme spécialisé (si oui, lequel?)

Ian Renton
la source

Réponses:

11

ntop est probablement votre meilleure solution pour ce faire. Il est conçu pour fonctionner à long terme et capturer exactement ce que vous recherchez.
Il peut vous montrer quelles destinations distantes sont les plus utilisées, combien de trafic est envoyé vers / depuis, quels protocoles et ports étaient utilisés, etc. Il peut faire de même pour les hôtes source si vous l'exécutez sur un routeur afin que vous puissiez voir les mêmes statistiques sur les clients locaux.
Il utilise ensuite une interface graphique Web pour naviguer et afficher ces informations.

ntop

Patrick
la source
Whoa. Toutes ces années que j'utilise ntopcomme top, je n'avais aucune idée qu'il avait un mode démon et une interface web intégrée! Il n'y a rien de mal à la suggestion de @ ckhan, mais j'accepterai celle-ci car je pense que ntopl'interface Web intégrée est plus facile à utiliser que tcpdumpWireshark.
Ian Renton
9

Si vous avez root, vous pouvez tout simplement utiliser tcpdumpet saisir tout. Vous pouvez ensuite le récupérer dans Wireshark et analyser le contenu de votre cœur.

$ sudo tcpdump -i <interface> -w mycapture.tcpdump  

... puis appuyez sur ctrl-c lorsque vous en avez assez. Exécuter dans une screensession si vous devez vous détacher, etc.

Par défaut, il ne capturera que la première partie de chaque paquet, mais comme vous êtes principalement intéressé par l'analyse de l'origine, cela devrait aller. Des tonnes d'autres options pour tcpdump si vous vous sentez aventureux.

EDIT : En fait, une fois chargé dans Wireshark, vous pouvez simplement utiliser l'option de menu Statistiques | Adresses IP ... et obtenez un bon résumé du trafic par nombre / taux / pourcentage:

entrez la description de l'image ici

ckhan
la source
Merci, cela semble être une façon raisonnable de procéder. Savez-vous si Wireshark peut produire automatiquement le type de sortie que je recherche (par exemple "1000 connexions au serveurA, 967 connexions au serveurB ...") ou devrais-je écrire un script pour construire ces informations à partir du vidage TCP moi même?
Ian Renton
@IanRenton - Je pense que cela fera exactement ce que vous voulez, voir la réponse modifiée. Je crois tcpdumppeut aussi cracher des résumés de paquets que vous pourriez facilement grep, wcetc.
ckhan
4

Et pour des mesures plus avancées, vous pouvez utiliser quelque chose comme monitorix qui a des modules pour la plupart des services courants et c'est juste un simple:

apt-get install monitorix

Aussi , vous avez cactus une interface graphique complète RDDtool, mais pas en temps réel.

Et dans le top 1 pour moi c'est le grafana multi-configurable . C'est un peu plus difficile à installer et à configurer, mais c'est tout simplement parfait, vous pouvez tout mesurer en détail et en temps réel. Il a besoin de quelques dépendances JVM, graphite, murmure, ... quelques connaissances sur JSON, mais fonctionne comme un charme je le recommande vraiment!

Peut-être qu'une bonne configuration pour votre cas devrait être:

collectd + graphite + whisper + grafana

En fait, grafana a changé ma vie au bureau.

Gxt
la source
Whisper fait apparaître de nombreux hits, dont aucun ne semble pertinent. Sauf certains pare-feu pour Android ... Pourriez-vous donner une URL? Peut-être que vous avez un dépôt github avec votre configuration.
oligofren
0

sûr ;)

https://github.com/graphite-project/whisper

Aussi, si vous voulez un mini-howto pour savoir comment tout connecter: https://linuxboss.wordpress.com/2015/12/03/graphite-grafana/

Peter. K
la source
1
Bonjour Peter K - bienvenue chez U&L! Nous préférons intégrer les réponses des liens afin que la réponse reste pertinente même si la page Web externe se déplace ou est supprimée. Pouvez-vous fournir plus d'informations comme réponse?
Jeff Schaller