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.
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.
Respostas:
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).
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
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
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.
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
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.
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.