Linux: como medir o tráfego de rede diário / mensal?

15

Preciso manter estatísticas do tráfego de rede diário para uma máquina Linux (CentOS 5).

Existe uma maneira de fazer isso usando ferramentas ou utilitários padrão / nativos?
Ou preciso descarregar um software especial para isso?

Obrigado.

Liberta-te
fonte
1
Qual a precisão das estatísticas? Em outras palavras, você precisa de algo específico o suficiente para cobrar novamente a largura de banda ou as médias são boas?
Zypher 28/01/10
Preciso saber exatamente quanto tráfego eu tenho usado todos os dias porque não quero exceder certos limites.
GetFree
1
Então você não deseja nenhuma das ferramentas baseadas em RRD (Cacti, MRTG, Munin, etc). O RRD calcula a média dos números para que você nunca obtenha uma métrica exata e, na verdade, piorará com o tempo.
Zypher

Respostas:

8

O que Zypher estava dizendo sobre o rrdtool (e qualquer outra coisa que o use como back-end - MRTG, Cacti etc.) provavelmente está correto. O RRDTool foi projetado para ser uma ferramenta de análise de tendências históricas 'média'. Ele calcula a média e armazena contadores em incrementos cada vez mais não-resolutivos quanto mais tempo ele volta.

No entanto, isso é configurável configurando os RRAs adequadamente. No entanto, confesso que não sei absolutamente nada sobre como configurá-las e nunca tive sorte em obtê-las além do meu conjunto padrão (15 minutos, 8 horas, 1 semana, 1 mês, 1 ano). Eu recomendaria analisar a configuração dos RRAs para esperar entrada diária e alimentá-lo com o contador de largura de banda do netstat. Você obterá dados históricos muito bons e informações sobre seus padrões de uso.

Para responder ao seu problema atual, certifique-se de não exceder um limite diário de largura de banda; Eu recomendaria pegar os contadores netstat diariamente para a interface em questão. Você pode comparar o tráfego de ontem no horário t com os contadores de hoje no horário t e descobrir quanto foi transferido. Um script simples com um armazenamento simples de arquivo de texto com o valor anterior provavelmente seria suficiente. Em seguida, você poderá desativar a interface se detectar largura de banda excedida ou monitorá-la durante o dia e notificar um administrador se estiver atingindo seu limite.

Para obter os bytes de entrada em um sistema OSX, você pode usar o seguinte conjunto de comandos:

netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $7}'

Por outro lado, a saída pode ser obtida com:

netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'

Você pode colocar os contadores relevantes em um arquivo simples armazenado em algum lugar e compará-lo com:

#!/bin/bash
set -e # exit if any error occurs

previous_days_bytes_xferred=`cat $flatfile_storage`
todays_bytes_xferred=`netstat -ib | grep -e "$INTERFACE" -m 1 | awk '{print $10}'`

if [ $((todays_bytes_xferred - previous_days_bytes_xferred)) -gt $threshold ]; then
   DO SOME STUFF
fi
echo $todays_bytes_xferred > $flatfile_storage

Basta ajustar o processamento netstat para corresponder ao seu sistema (já que eu sei que você não está executando o OSX).

Jordan T. Cox
fonte
25

Eu também sugiro usar o VnStat

vnStat 1.6 by Teemu Toivola <tst at iki dot fi>

     -q,  --query          query database
     -h,  --hours          show hours
     -d,  --days           show days
     -m,  --months         show months
     -w,  --weeks          show weeks
     -t,  --top10          show top10
     -s,  --short          use short output
     -u,  --update         update database
     -i,  --iface          select interface (default: eth0)
     -?,  --help           short help
     -v,  --version        show version
     -tr, --traffic        calculate traffic
     -l,  --live           show transfer rate in real time


 eth0  /  monthly

   month         rx      |      tx      |   total
-------------------------+--------------+--------------------------------------
  Oct '09     225.70 GB  |   798.52 GB  |     1.00 TB   %%%%:::::::::::::
  Nov '09     138.46 GB  |   616.54 GB  |   755.01 GB   %%::::::::::

 eth0  /  daily

day         rx      |     tx      |  total
------------------------+-------------+----------------------------------------
   31.12.      6.56 GB  |   34.39 GB  |   40.95 GB   %%%::::::::::::::::
   01.01.      1.13 GB  |  746.92 MB  |    1.86 GB
MadBoy
fonte
4

O pacote sysstat contém o utilitário sar. Sar é um sistema "perfilador" extremamente configurável, por falta de um termo melhor, que coleta várias estatísticas em intervalos predefinidos (cron). Eles são armazenados em arquivos binários, um para cada dia, que normalmente são alternados semanalmente, mas que são configuráveis. O programa sar pode ser usado para extrair as estatísticas desses arquivos, e esses resultados podem ser facilmente representados graficamente com qualquer programa do Office ou gnuplot (minha preferência pessoal).

http://pagesperso-orange.fr/sebastien.godard/ <= Sar information
http://www.gnuplot.info/ <= gnuplot info

d34dh0r53
fonte
4

O Vnstat é um ótimo monitor de tráfego diário / semanal / mensal baseado em console. Ele ainda permite monitorar o tráfego em tempo real, o que é útil.

Também usa muito poucos recursos do sistema;)

Hilton D
fonte
2

Você quer o MRTG, que é uma ferramenta de monitoramento de rede, que produz todos os gráficos de rede que você vê na web (com o rdtool para transformar os números em imagens)

Se você não deseja configurá-lo, ou apenas precisa de algo mais simples, pode usar o iptables para gravar a transferência de dados.

gbjbaanb
fonte
+1 para a solução iptables
GetFree
O link do iptables está morto - talvez isso? qaoverflow.com/question/…
twodayslate 19/10/16
1

Usei o mrtg, é uma solução muito boa e existem outras ferramentas que parecem interessantes e que fornecem muitas informações sobre o tráfego chamado ntop uma sonda de rede, encontre aqui um link sobre a instalação do ntop no CentOS

Ali Mezgani
fonte
1

MRTG ou cactos. Cactos são difíceis de configurar, mas fornecem alguns gráficos muito bonitos. O MRTG é fácil de configurar uma plotagem básica, mas para qualquer coisa bonita ou complicada, é bastante difícil.

Aaron Brown
fonte
1

Munin é outra boa ferramenta baseada em RRD e muito fácil de configurar; as estatísticas de rede padrão são bastante básicas, mas é fácil adicionar plug-ins adicionais. Anexei uma cópia das estatísticas diárias e semanais em um dos meus servidores; você também obtém estatísticas mensais e anuais em uma página diferente.

Gráfico da rede Munin

gareth_bowles
fonte
A imagem foi embora agora
Canadian Luke