Linux: comment mesurer le trafic réseau quotidien / mensuel?

15

J'ai besoin de garder des statistiques sur le trafic réseau quotidien pour une machine Linux (CentOS 5).

Existe-t-il un moyen de le faire en utilisant des outils ou utilitaires standard / natifs?
Ou dois-je télécharger un logiciel spécial pour cela?

Merci.

GetFree
la source
1
Dans quelle mesure avez-vous besoin des statistiques? En d'autres termes, avez-vous besoin de quelque chose d'assez spécifique pour refacturer la bande passante ou les moyennes sont-elles bonnes?
Zypher
J'ai besoin de savoir exactement combien de trafic j'ai été utilisé chaque jour car je ne veux pas dépasser certaines limites.
GetFree
1
Ensuite, vous ne voulez aucun des outils basés sur RRD (Cacti, MRTG, Munin, etc.) RRD fait la moyenne des nombres de sorte que vous n'obtiendrez jamais une métrique exacte, et cela va même empirer avec le temps.
Zypher

Réponses:

8

Ce que Zypher disait à propos de rrdtool (et de tout ce qui l'utilise comme backend - MRTG, Cacti, etc.) est probablement correct. RRDTool est conçu pour être un outil d'analyse de tendance historique «moyenne». Il fait la moyenne et stocke les compteurs par incréments de plus en plus non résolus à mesure qu'ils remontent dans le temps.

Ceci est cependant configurable en configurant les RRA de manière appropriée. J'avoue ne rien savoir de la configuration de ces derniers, cependant, et je n'ai jamais eu de chance personnellement de les obtenir juste au-delà de mon ensemble standard (15 minutes, 8 heures, 1 semaine, 1 mois, 1 an). Je recommanderais de regarder dans la configuration des RRA pour attendre une entrée quotidienne et de l'alimenter en compteur de bande passante à partir de netstat. Vous obtiendrez de très belles données historiques et un aperçu de vos modèles d'utilisation.

Pour répondre à votre problème actuel, assurez-vous de ne pas dépasser une limite de bande passante quotidienne; Je recommanderais de saisir quotidiennement les compteurs netstat pour l'interface en question. Vous pouvez comparer le trafic d'hier à l'instant t avec les compteurs d'aujourd'hui à l'instant t et savoir combien a été transféré. Un simple script avec un stockage de fichier texte plat de la valeur précédente suffirait probablement. Vous pouvez ensuite désactiver l'interface si vous détectez une bande passante dépassée ou la surveiller tout au long de la journée et informer un administrateur si vous approchez de votre limite.

Pour obtenir les octets d'entrée sur un système OSX, vous pouvez utiliser l'ensemble de commandes suivant:

netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $7}'

Inversement, la sortie peut être obtenue avec:

netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'

Vous pouvez insérer les compteurs appropriés dans un fichier plat stocké quelque part et le comparer avec:

#!/bin/bash
set -e # exit if any error occurs

previous_days_bytes_xferred=`cat $flatfile_storage`
todays_bytes_xferred=`netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'`

if [ $((todays_bytes_xferred - previous_days_bytes_xferred)) -gt $threshold ]; then
   DO SOME STUFF
fi
echo $todays_bytes_xferred > $flatfile_storage

Ajustez simplement le traitement netstat pour qu'il corresponde à votre système (car je sais que vous n'exécutez pas OSX).

Jordan T. Cox
la source
25

Je suggère également d'utiliser VnStat

vnStat 1.6 by Teemu Toivola <tst at iki dot fi>

     -q,  --query          query database
     -h,  --hours          show hours
     -d,  --days           show days
     -m,  --months         show months
     -w,  --weeks          show weeks
     -t,  --top10          show top10
     -s,  --short          use short output
     -u,  --update         update database
     -i,  --iface          select interface (default: eth0)
     -?,  --help           short help
     -v,  --version        show version
     -tr, --traffic        calculate traffic
     -l,  --live           show transfer rate in real time


 eth0  /  monthly

   month         rx      |      tx      |   total
-------------------------+--------------+--------------------------------------
  Oct '09     225.70 GB  |   798.52 GB  |     1.00 TB   %%%%:::::::::::::
  Nov '09     138.46 GB  |   616.54 GB  |   755.01 GB   %%::::::::::

 eth0  /  daily

day         rx      |     tx      |  total
------------------------+-------------+----------------------------------------
   31.12.      6.56 GB  |   34.39 GB  |   40.95 GB   %%%::::::::::::::::
   01.01.      1.13 GB  |  746.92 MB  |    1.86 GB
Garçon furieux
la source
4

Le package sysstat contient l'utilitaire sar. Sar est un «profileur» de système extrêmement configurable, faute de meilleur terme, qui recueille diverses statistiques à intervalles prédéfinis (cron). Ceux-ci sont stockés dans des fichiers binaires, un pour chaque jour, qui sont généralement renouvelés chaque semaine, mais qui sont configurables. Le programme sar peut être utilisé pour extraire les statistiques de ces fichiers, et ces résultats peuvent être facilement représentés graphiquement avec n'importe quel programme de bureau ou gnuplot (ma préférence personnelle).

http://pagesperso-orange.fr/sebastien.godard/ <= Sar information
http://www.gnuplot.info/ <= gnuplot info

d34dh0r53
la source
4

Vnstat est un excellent moniteur de trafic quotidien / hebdomadaire / mensuel basé sur une console. Il vous permet même de surveiller le trafic en temps réel, ce qui est pratique.

Il utilise également très peu de ressources système;)

Hilton D
la source
2

Vous voulez MRTG qui est un outil de surveillance de réseau, c'est la chose qui produit tous les graphiques de réseau que vous voyez sur le Web (avec rdtool pour transformer les chiffres en images)

Si vous ne souhaitez pas le configurer ou si vous avez simplement besoin de quelque chose de plus simple, vous pouvez utiliser iptables pour enregistrer le transfert de données.

gbjbaanb
la source
+1 pour la solution iptables
GetFree
le lien iptables est mort - peut-être cela? qaoverflow.com/question/…
twodayslate
1

J'ai utilisé mrtg, c'est une très bonne solution, et il existe d'autres outils qui semblent intéressants et qui donnent beaucoup d'informations sur le trafic nommé ntop une sonde réseau, voici un lien sur l'installation de ntop sur CentOS

Ali Mezgani
la source
1

Soit MRTG ou Cacti. Les cactus sont difficiles à installer, mais donnent de très jolis graphiques. MRTG est facile à mettre en place un tracé de base, mais pour tout ce qui est joli ou compliqué, c'est assez difficile.

Aaron Brown
la source
1

Munin est un autre bel outil basé sur RRD qui est très facile à configurer; les statistiques réseau par défaut sont assez basiques, mais il est facile d'ajouter des plugins supplémentaires. J'ai joint une copie des statistiques quotidiennes et hebdomadaires sur l'un de mes serveurs; vous obtenez également des statistiques mensuelles et annuelles sur une autre page.

Graphique du réseau Munin

gareth_bowles
la source
L'image n'est plus là
Canadian Luke