2 votes

Comment puis-je surveiller la bande passante par utilisateur sous linux ?

Je cherche à surveiller la quantité de bande passante consommée par différents utilisateurs sur un serveur.

En fait, je cherche quelque chose comme UserIPacct ( http://ramses.smeyers.be/homepage/useripacct/ ), où je peux obtenir une impression comme :

    User       Sent       Received     Flags
    root       401364     401421
    news       2143       2210
    lf         221462     348287

Malheureusement, useripacct n'est pas disponible pour la série de noyaux 2.6.

0 votes

Il semble que ce soit la meilleure façon de procéder : siphon9.net/loune/2009/07/

3voto

Ryan Sampson Points 2898

Je ne connais aucune solution préexistante, mais vous pouvez le faire avec netfilter en utilisant l'extension de correspondance 'owner', même si vous devrez probablement jouer un peu avec conntrack pour attraper et prendre en compte les paquets entrants (et vous manquerez les paquets de configuration de la connexion initiale, car ils ne sont pas gérés par un processus en userspace). J'imagine qu'une solution sans filtre réseau serait également possible (à la ntop et autres) mais elle deviendrait certainement très vite laide et gourmande en ressources CPU.

Honnêtement, cependant, j'ai de sérieux doutes sur le fait que vous résolviez le bon problème. Il est préférable de comptabiliser le trafic par utilisateur en analysant les journaux au niveau du serveur (Apache, MTA, serveur POP/IMAP, etc.) et de comptabiliser/facturer sur cette base (avec une surcharge appropriée pour les bits qu'ils ne captent pas, comme le DNS). Essayer de tout relier à un utilisateur ne donnera certainement pas les résultats escomptés.

0 votes

Dans mon cas, j'autorise les utilisateurs à exécuter du code arbitraire sur mon serveur, j'ai donc besoin d'une solution très générale pour les suivre. En suivant cette image : jengelh.medozas.de/images/nf-packet- flow.png J'ai modifié la table RAW : Chain OUTPUT (policy ACCEPT) target prot opt source destination MARK tcp -- anywhere anywhere owner UID match emp1 MARK xset 0x64/0xffffffff Malheureusement, je ne vois aucune marque dans conntrack -L (toutes ont une marque 0). Est-ce que je fais quelque chose de mal ?

0 votes

D'accord, j'ai compris ce que tu voulais dire (d'où ma réponse). merci

1voto

Sam Points 871

Pour un suivi en temps réel, vous pouvez utiliser iftop. Si vous recherchez une solution de journal et de rapport, vous pouvez utiliser pmacct . Il fonctionne très bien et peut vous donner des récapitulatifs par demi-heure, par jour, par semaine, par mois et par an.

D'ailleurs, nous l'utilisons un travail en association avec Outil RRD pour produire de beaux graphiques en temps réel.

0 votes

Un bel outil, mais il ne semble pas être capable de suivre les uids linux.

0 votes

Sam, mot-clé : "par utilisateur".

0 votes

Oui, je m'en rends compte. Mais il faut dire que si la boîte linux agit comme un serveur proxy / passerelle, alors mon interprétation est parfaitement valide.

0voto

Simon Forrest Points 2079

Ce n'est peut-être pas exactement ce que vous recherchez, mais vnstat a quelques fonctionnalités intéressantes et est totalement gratuit. Il affiche la bande passante en temps réel, le total des jours, le total des semaines, le total des mois, etc.

0 votes

Vnstat est un bon outil, mais j'ai besoin de quelque chose qui me donne l'utilisation de la bande passante par utilisateur (ou au moins par processus (+enfants)).

1 votes

C'est fou le nombre de personnes qui ne lisent pas la question.

0 votes

Lisez la question...offert ma réponse de toute façon....et le laisser mettre...ici, je vais l'énumérer à nouveau : Ce n'est peut-être pas exactement ce que vous recherchez, mais vnstat a quelques fonctionnalités intéressantes et il est totalement gratuit. Il affiche la bande passante en temps réel, le total des jours, le total de la semaine, le total du mois, etc.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X