Uso da largura de banda de registro?

4

Em uma tentativa de facilitar a minha vida, desejo registrar toda a largura de banda usada no meu servidor por um dia e exportá-la de alguma forma. Não importa muito como é exportado porque eu mesmo posso analisar essas coisas, mas preciso que o software seja capaz de registrar com precisão o tráfego que entra e sai da eth0.

Se alguém souber de tal software, eu ficaria grato se você pudesse fornecer um link. Eu já pesquisei por essas coisas, mas não encontrei nada adequado.

Felicidades.

    
por Richard Slater 13.12.2009 / 19:22

6 respostas

7

Minha recomendação é vnStat :

vnStat is a console-based network traffic monitor for Linux and BSD that keeps a log of network traffic for the selected interface(s)

Funciona como anunciado e parece ser uma boa correspondência para suas necessidades.

Para facilitar a análise, você provavelmente gostaria de ver a opção --xml e --dumpdb no vnstat documentação :

  • --xml : mostra o conteúdo do banco de dados para a interface selecionada ou todas as interfaces no formato xml. Todos os valores de tráfego na saída estão em KiB.
  • --dumpdb : Em vez de mostrar o banco de dados com uma saída formatada, essa saída despejará todo o banco de dados em um formato que deve ser fácil de analisar com a maioria das linguagens de script.

Lista de recursos:

  • rápido e simples de instalar e executar
  • estatísticas coletadas persistem por meio da reinicialização do sistema
  • pode monitorar várias interfaces ao mesmo tempo
  • várias opções de saída
  • resumo, por hora, diariamente, mensalmente, semanalmente, nos primeiros 10 dias
  • saída de imagem png opcional (usando libgd)
  • meses podem ser configurados para seguir o período de faturamento
  • uso leve e mínimo de recursos
  • o mesmo uso de cpu baixo, independentemente do tráfego
  • pode ser usado sem permissões de root
por 13.12.2009 / 19:26
2

Ao usar o logstash com o kibana, é fácil configurar

O que fizemos foi registrar o tráfego total em um arquivo de log com o seguinte script bash.

LOGPATH="systemstatus.log"



timestamp() {
  date +"%Y-%m-%dT%T.%N"
}


while ( sleep 60 ) ; do
#clear log file 
truncate -s 0 $LOGPATH

#log timstamp and type of log line
echo -n "$(timestamp) linux::systemstatus::network " >> $LOGPATH
#remove tabs and spaces from grep result
grep "eth" /proc/net/dev |head -n1|sed -e 's/^[ \t]*//'| sed -n 's/  \+/ /gp' >> $LOGPATH

Done

O Nxlog exporta o log para logstash e kibana.

No logstash, a string é analisada para valores individuais Kibana torna o tráfego visível em um histograma derivado (isso mostra a diferença de 1 valor para o próximo)

Isso nos dá um bom gráfico geral da largura de banda usada. Além disso, registramos também o uso da CPU, disco e memória do servidor.

Nota: nós analisamos toda a linha de log de / proc / net / dev em valores separados apenas no caso de querermos monitorar pacotes perdidos ou erros

    
por 17.07.2014 / 15:48
0

Desde que você disse eth0 , eu tenho que assumir que você deve estar executando alguma distribuição Linux. Se sim, adicione uma tag linux à sua pergunta.

Se você está procurando um bom registrador de tráfego de rede para Linux, considere ulogd . Ele pode registrar dados muito detalhados sobre pacotes IP em arquivos e bancos de dados de texto simples. Você pode controlar o que precisa ser registrado usando -j ULOG nas regras do iptables.

    
por 13.12.2009 / 19:40
0

Você já pensou em usar o SNMP para registrar isso (e muitas, muitas outras coisas) no seu sistema? Muitos sistemas de monitoramento devem ser capazes de obter as informações, e se você já tiver um, provavelmente poderá usá-lo sem precisar implantar outra solução.

    
por 13.12.2009 / 19:43
0

você pode tentar ntop ou bandwidthd . depende do tipo de serviço que você está executando.

esses dois são mais frequentemente implantados em roteadores encaminhando tráfego para vários computadores, mas também devem funcionar em uma máquina.

    
por 13.12.2009 / 20:00