Tengo algunos usuarios de shell en un servidor con 300 GB de transferencia de datos mensual. ¿Cómo puedo monitorear el uso de ancho de banda por usuario?
Tengo algunos usuarios de shell en un servidor con 300 GB de transferencia de datos mensual. ¿Cómo puedo monitorear el uso de ancho de banda por usuario?
Respuestas:
Como root, al menos podría medir el tráfico saliente por usuario utilizando el módulo "propietario" de iptables. Si se encuentran todos los usuarios que desea monitorear /root/list-of-users.txt
, puede hacer lo siguiente:
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
Y luego, los conteos de paquetes y bytes para el tráfico saliente de cada usuario son visibles:
iptables -L OUTPUT -n -v | grep out_
Esto podría extenderse aún más con CONNMARK para rastrear el lado entrante también.
Acabo de encontrar NetHogs :
NetHogs es una pequeña herramienta 'net top'. En lugar de dividir el tráfico por protocolo o subred, como lo hacen la mayoría de las herramientas, agrupa el ancho de banda por proceso.
Esto debería permitirle rastrear el ancho de banda por nombre de usuario. Es posible que aún necesite otro par de herramientas para registrar la información y agregarla, pero es un buen comienzo sin usar directamente iptables.
sudo nethogs -v 3 eth0
(o presionar m
repetidamente después de comenzar a recorrer los modos). Combine con tmux
para ejecutar de forma persistente (incluso si su ssh
sesión se bloquea).
Puedes usar cactus
Cacti es una interfaz completa de RRDTool, almacena toda la información necesaria para crear gráficos y llenarlos con datos en una base de datos MySQL. La interfaz está completamente impulsada por PHP. Además de poder mantener gráficos, fuentes de datos y archivos Round Robin en una base de datos, los cactus manejan la recopilación de datos. También hay soporte SNMP para aquellos acostumbrados a crear gráficos de tráfico con MRTG.
O vnStat
vnStat es un monitor de tráfico de red basado en consola para Linux y BSD que mantiene un registro del tráfico de red para las interfaces seleccionadas. Utiliza las estadísticas de la interfaz de red proporcionadas por el núcleo como fuente de información. Esto significa que vnStat en realidad no detectará ningún tráfico y también asegura un uso ligero de los recursos del sistema.
Ambos son geniales.
Miré un poco, y no he encontrado un paquete completo de interfaz gráfica de usuario que haga lo que quieres. Esperemos que exista uno y alguien lo publique aquí eventualmente.
No soy realmente un tipo de red, pero por lo que he leído, entre otras muchas cosas netstat
, y iptables
se supone que debemos hacer por ip / host de usuario basada en lo que representa lo que las acct
herramientas hicieron para la contabilidad de proceso del sistema. Este enlace cyberciti.biz puede ayudarlo a desarrollar un sistema con estas herramientas:
http://www.cyberciti.biz/faq/linux-configuring-ip-traffic-accounting/
netstat -e
muestra los usuarios de shell, permitiéndole vincular ip / host al nombre de usuario.