Ho alcuni utenti shell su un server con 300 GB di trasferimento dati mensile. Come posso monitorare l'utilizzo della larghezza di banda per utente?
Ho alcuni utenti shell su un server con 300 GB di trasferimento dati mensile. Come posso monitorare l'utilizzo della larghezza di banda per utente?
Risposte:
Come root, potresti almeno misurare il traffico in uscita per utente usando il modulo "proprietario" di iptables. Se tutti gli utenti che desideri monitorare sono presenti /root/list-of-users.txt
, puoi fare:
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
Quindi sono visibili i conteggi di pacchetti e byte per il traffico in uscita di ciascun utente:
iptables -L OUTPUT -n -v | grep out_
Questo potrebbe essere ulteriormente esteso con CONNMARK per tracciare anche il lato in entrata.
Ho appena incontrato NetHogs :
NetHogs è un piccolo strumento "net top". Invece di suddividere il traffico per protocollo o per sottorete, come la maggior parte degli strumenti, raggruppa la larghezza di banda per processo.
Questo dovrebbe consentirti di monitorare la larghezza di banda in base al nome utente. Potrebbe essere necessario un altro paio di strumenti per registrare le informazioni e aggiungerle tutte, ma è un buon inizio senza utilizzare direttamente iptables.
sudo nethogs -v 3 eth0
(o premere m
più volte dopo aver iniziato a scorrere le modalità). Combina con tmux
per l'esecuzione persistente (anche se la ssh
sessione si arresta in modo anomalo).
Puoi usare Cactus
Cacti è un frontend completo di RRDTool, memorizza tutte le informazioni necessarie per creare grafici e popolarli con i dati in un database MySQL. Il frontend è completamente guidato da PHP. Oltre a essere in grado di mantenere grafici, origini dati e archivi Round Robin in un database, i cactus gestiscono la raccolta dei dati. C'è anche il supporto SNMP per coloro che sono abituati a creare grafici di traffico con MRTG.
O vnStat
vnStat è un monitor del traffico di rete basato su console per Linux e BSD che mantiene un registro del traffico di rete per le interfacce selezionate. Utilizza le statistiche dell'interfaccia di rete fornite dal kernel come fonte di informazioni. Ciò significa che vnStat non annuserà effettivamente il traffico e garantirà anche un leggero utilizzo delle risorse di sistema.
Entrambi sono fantastici.
Ho guardato un po 'e non ho trovato un pacchetto completo di gui che fa quello che vuoi. Speriamo che ne esista uno e che qualcuno pubblicherà qui alla fine.
Non sono davvero un ragazzo di rete, ma da quello che ho letto, tra molte altre cose netstat
e iptables
si suppone che facciano per la contabilità degli utenti basata su ip / host cosa hanno fatto gli acct
strumenti per la contabilità dei processi di sistema. Questo link cyberciti.biz potrebbe metterti sulla buona strada per sviluppare un sistema con questi strumenti:
http://www.cyberciti.biz/faq/linux-configuring-ip-traffic-accounting/
netstat -e
mostra gli utenti della shell, consentendo di collegare ip / host al nome utente.