J'ai des utilisateurs 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?
J'ai des utilisateurs 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?
Réponses:
En tant que root, vous pouvez au moins mesurer le trafic sortant par utilisateur en utilisant le module "propriétaire" d'iptables. Si tous les utilisateurs que vous souhaitez surveiller se trouvent /root/list-of-users.txt
, vous pouvez:
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 puis 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 également le côté entrant.
Je viens de rencontrer NetHogs :
NetHogs est un petit outil «net top». Au lieu de décomposer le trafic par protocole ou par sous-réseau, comme la plupart des outils, il regroupe la bande passante par processus.
Cela devrait vous permettre de suivre la bande passante par nom d'utilisateur. Il se peut que vous ayez encore besoin de quelques autres outils pour enregistrer les informations et les additionner, mais c'est un bon début sans utiliser directement iptables.
sudo nethogs -v 3 eth0
(ou appuyez m
plusieurs fois après avoir commencé à parcourir les modes). À combiner avec tmux
pour une exécution persistante (même si votre ssh
session plante).
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 remplir avec des données dans une base de données MySQL. Le frontend est entièrement piloté 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, cactus gère la collecte de données. Il existe également une prise en charge 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 console pour Linux et BSD qui conserve 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'information. Cela signifie que vnStat ne reniflera en fait aucun trafic et garantit également une utilisation légère des ressources système.
Les deux sont super.
J'ai regardé un peu, et je n'ai pas trouvé de package gui complet qui fait ce que vous voulez. Avec un peu de chance, il en existe un et quelqu'un finira par en parler ici.
Je ne suis pas vraiment un gars en réseau, mais de ce que j'ai lu, parmi beaucoup d' autres choses netstat
et iptables
sont censés faire pour la comptabilité utilisateur à base IP / hôte ce que les acct
outils ont pour la comptabilité des processus système. Ce lien cyberciti.biz pourrait vous mettre sur la voie du développement d'un système avec ces outils:
http://www.cyberciti.biz/faq/linux-configuring-ip-traffic-accounting/
netstat -e
montre les utilisateurs du shell, vous permettant de lier ip / host au nom d'utilisateur.