J'ai des utilisateurs de Shell sur un serveur avec 300 Go de transfert de données mensuel. Comment puis-je surveiller l'utilisation de la bande passante par utilisateur?
En tant qu'utilisateur root, vous pouvez au moins mesurer le trafic sortant utilisateur par utilisateur à l'aide du module "propriétaire" d'iptables. Si tous les utilisateurs que vous souhaitez surveiller se trouvent dans /root/list-of-users.txt
, vous pouvez effectuer les opérations suivantes:
for login in $(cat /root/list-of-users.txt);
do
iptables -N out_user_$login
iptables -A OUTPUT -m owner --uid-owner $(id -u $login) -j out_user_$login
done
Et ensuite, le nombre de paquets et d'octets pour le trafic sortant de chaque utilisateur est visible:
iptables -L OUTPUT -n -v | grep out_
Cela pourrait être étendu davantage avec CONNMARK pour suivre aussi le côté entrant.
Je viens de tomber sur NetHogs :
NetHogs est un petit outil "top net". Au lieu de répartir le trafic par protocole ou par sous-réseau, comme le font la plupart des outils, il regroupe la bande passante par processus.
Cela devrait vous permettre de suivre la bande passante par nom d'utilisateur. Vous aurez peut-être encore besoin de deux outils pour enregistrer les informations et les ajouter, mais c'est un bon début sans utiliser directement iptables.
Vous pouvez utiliser Cacti
Cacti est une interface complète pour RRDTool, il stocke toutes les informations nécessaires pour créer des graphiques et les renseigner avec des données dans une base de données MySQL. L’interface est entièrement pilotée par PHP. En plus de pouvoir conserver des graphiques, des sources de données et des archives Round Robin dans une base de données, cacti gère la collecte de données. Il existe également un support SNMP pour ceux qui sont habitués à créer des graphiques de trafic avec MRTG.
Ou vnStat
vnStat est un moniteur de trafic réseau basé sur une console pour Linux et BSD qui tient un journal du trafic réseau pour les interfaces sélectionnées. Il utilise les statistiques d'interface réseau fournies par le noyau comme source d'informations. Cela signifie que vnStat ne détectera aucun trafic et garantit également une utilisation légère des ressources système.
Les deux sont géniaux.
J'ai regardé un peu, et je n'ai pas trouvé de package d'interface graphique complet qui fasse ce que vous voulez. Espérons qu’il en existe un et que quelqu'un en parle ici éventuellement.
Je ne suis pas vraiment un mec en réseau, mais d'après ce que j'ai lu, entre autres choses, netstat
et iptables
sont supposés faire pour la comptabilité utilisateur basée sur ip/hôte ce que la acct
outils utilisés pour la comptabilité des processus système. Ce lien cyberciti.biz peut vous aider à développer un système avec ces outils:
http://www.cyberciti.biz/faq/linux-configuring-ip-traffic-accounting/