Ich habe einige Shell-Benutzer auf einem Server mit 300 GB monatlicher Datenübertragung. Wie kann ich die Bandbreitennutzung pro Benutzer überwachen?
Ich habe einige Shell-Benutzer auf einem Server mit 300 GB monatlicher Datenübertragung. Wie kann ich die Bandbreitennutzung pro Benutzer überwachen?
Antworten:
Als Root können Sie zumindest den ausgehenden Datenverkehr auf Benutzerbasis mit dem Modul "owner" von iptables messen. Wenn alle Benutzer, die Sie überwachen möchten, angemeldet sind /root/list-of-users.txt
, haben Sie folgende Möglichkeiten :
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
Anschließend werden die Anzahl der Pakete und Bytes für den ausgehenden Verkehr jedes Benutzers angezeigt:
iptables -L OUTPUT -n -v | grep out_
Dies könnte mit CONNMARK erweitert werden, um auch die eingehende Seite zu verfolgen.
Ich bin gerade auf NetHogs gestoßen :
NetHogs ist ein kleines 'Net Top'-Tool. Anstatt den Datenverkehr nach Protokollen oder Subnetzen aufzuteilen, gruppiert es die Bandbreite nach Prozessen, wie es die meisten Tools tun.
Dies sollte Ihnen ermöglichen, die Bandbreite nach Benutzernamen zu verfolgen. Möglicherweise benötigen Sie noch ein paar Tools, um die Informationen zu protokollieren und alles zu addieren, aber es ist ein guter Anfang, ohne iptables direkt zu verwenden.
sudo nethogs -v 3 eth0
(oder m
wiederholt drücken, nachdem die Modi durchlaufen wurden). Kombiniere mit, tmux
um dauerhaft zu laufen (auch wenn deine ssh
Sitzung abstürzt).
Sie können Kakteen verwenden
Cacti ist ein vollständiges Frontend für RRDTool. Es speichert alle notwendigen Informationen, um Diagramme zu erstellen und sie mit Daten in einer MySQL-Datenbank zu füllen. Das Frontend ist komplett PHP-gesteuert. Cacti ist nicht nur in der Lage, Grafiken, Datenquellen und Round Robin-Archive in einer Datenbank zu verwalten, sondern kümmert sich auch um die Datenerfassung. Es gibt auch SNMP-Unterstützung für diejenigen, die zum Erstellen von Verkehrsgraphen mit MRTG verwendet werden.
Oder vnStat
vnStat ist ein konsolenbasierter Netzwerkverkehrsmonitor für Linux und BSD, der den Netzwerkverkehr für die ausgewählten Schnittstellen protokolliert. Es verwendet die vom Kernel bereitgestellten Netzwerkschnittstellenstatistiken als Informationsquelle. Dies bedeutet, dass vnStat tatsächlich keinen Datenverkehr aufspürt und zudem eine geringe Nutzung der Systemressourcen gewährleistet.
Beide sind großartig.
Ich habe ein bisschen nachgesehen und kein umfassendes GUI-Paket gefunden, das genau das tut, was Sie wollen. Hoffentlich existiert einer und irgendwann wird jemand hier darüber posten.
Ich bin nicht wirklich ein Netzwerk - Typ, aber von dem, was ich gelesen habe, unter vielen anderen Dingen netstat
und iptables
bin für die IP / Host - basierte Benutzer tun soll Buchhaltung , was die acct
Werkzeuge für den Systemprozess Buchhaltung taten. Dieser Link auf cyberciti.biz könnte Sie auf den Weg bringen, ein System mit den folgenden Tools zu entwickeln:
http://www.cyberciti.biz/faq/linux-configuring-ip-traffic-accounting/
netstat -e
Zeigt die Shell-Benutzer an, sodass Sie IP / Host mit dem Benutzernamen verknüpfen können.