Eu tenho alguns usuários de shell em um servidor com 300 GB de transferência mensal de dados. Como posso monitorar o uso da largura de banda por usuário?
Eu tenho alguns usuários de shell em um servidor com 300 GB de transferência mensal de dados. Como posso monitorar o uso da largura de banda por usuário?
Respostas:
Como root, você pode pelo menos medir o tráfego de saída por usuário usando o módulo "proprietário" do iptables. Se todos os usuários que você deseja monitorar estiverem /root/list-of-users.txt
, você poderá:
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
E as contagens de pacotes e bytes para o tráfego de saída de cada usuário são visíveis:
iptables -L OUTPUT -n -v | grep out_
Isso poderia ser estendido ainda mais com o CONNMARK para rastrear o lado de entrada também.
Acabei de encontrar o NetHogs :
O NetHogs é uma pequena ferramenta 'net top'. Em vez de dividir o tráfego por protocolo ou sub-rede, como a maioria das ferramentas, agrupa a largura de banda por processo.
Isso deve permitir que você rastreie a largura de banda por nome de usuário. Pode ainda precisar de mais algumas ferramentas para registrar as informações e adicionar tudo, mas é um bom começo sem usar diretamente o iptables.
sudo nethogs -v 3 eth0
(ou pressione m
várias vezes depois de começar a alternar entre os modos). Combine com tmux
a execução persistente (mesmo se sua ssh
sessão travar).
Você pode usar o Cacti
O Cacti é uma interface completa do RRDTool, que armazena todas as informações necessárias para criar gráficos e preenchê-los com dados em um banco de dados MySQL. O frontend é completamente orientado para PHP. Além de poder manter gráficos, fontes de dados e arquivos Round Robin em um banco de dados, os cactos lidam com a coleta de dados. Também há suporte SNMP para aqueles usados na criação de gráficos de tráfego com o MRTG.
Ou vnStat
O vnStat é um monitor de tráfego de rede baseado em console para Linux e BSD que mantém um registro do tráfego de rede para as interfaces selecionadas. Ele usa as estatísticas da interface de rede fornecidas pelo kernel como fonte de informação. Isso significa que o vnStat não estará realmente captando tráfego e também garante o uso leve dos recursos do sistema.
Ambos são ótimos.
Eu parecia um pouco e não encontrei um pacote abrangente de GUI que faça o que você deseja. Espero que exista e alguém possa postar sobre isso aqui eventualmente.
Eu não sou realmente um cara de rede, mas pelo que li, entre muitas outras coisas, netstat
e iptables
devo fazer pela contabilidade de usuários com base em ip / host, o que as acct
ferramentas fizeram para a contabilidade de processos do sistema. Esse link cyberciti.biz pode definir o caminho de você desenvolver um sistema com estas ferramentas:
http://www.cyberciti.biz/faq/linux-configuring-ip-traffic-accounting/
netstat -e
mostra os usuários do shell, permitindo vincular ip / host ao nome de usuário.