Gravando pico de tráfego de rede por segundo a cada 5 minutos

1

Gostaria de monitorar meus usos de rede de pico. Eu já uso munin para monitorar o tráfego de rede em uma amostra de 5 minutos. Mas como temos muitos picos de tráfego http que duram apenas alguns segundos, eu quero saber o pico de uso de rede por segundo nos últimos 5 minutos e não a média.

No momento, uso o iftop , que é fácil de ver o pico de uso. Mas iftop só pode ser executado de forma interativa. Eu uso a tela para executá-la e posso consultá-la regularmente.

Como posso usar o iftop ou uma ferramenta semelhante para gravar o pico de uso da rede nos últimos 5 minutos a cada 5 minutos. Eu só preciso de um arquivo com linhas como esta:

2014-06-17 15:43:12 TX: 14,3 MBit/s RX: 16,2 MBit/s Sum: 29,6 MBit/s
2014-06-17 15:48:12 TX: 11,3 MBit/s RX: 12,2 MBit/s Sum: 22,3 MBit/s

e assim por diante.

Eu tentei ntop , mas é um pouco sobrecarga e não consigo acessar os dados facilmente no munin. E não escreve picos por 5 minutos.

Alguém conhece uma ferramenta ou script eficiente para isso?

    
por Janning 20.06.2014 / 16:43

4 respostas

3

A partir do Munin 2.0, você pode usar um recurso chamado supersampling para coletar pontos de dados com 1 -segunda resolução O intervalo de pesquisa Munin ainda será de 5 minutos, o respectivo plugin Munin é responsável por coletar e armazenar ativamente os dados de alta resolução. Há uma implementação de amostra - o multicpu1sec plugin que está gravando mpstat de dados.

Agora os gráficos que Munin apresenta são uma história diferente. Munin está usando o RRDtool para gráficos, que por sua vez é capaz de usar diferentes funções de consolidação (CF) para representar mais de um ponto de dados em um único pixel de um gráfico. A partir de agora, Munin só é capaz de representar graficamente dados (AVG) e não há suporte configurável para outras funções de consolidação (mínimo, máximo, total, último).

Você pode considerar corrigir Munin de acordo - não parece muito difícil de fazer. Como alternativa, você pode simplesmente invocar rrdtool graph com parâmetros personalizados e uma função de consolidação diferente conforme for adequado às suas necessidades. Basta olhar para o seu munin-cgi-graph.log para obter um ponto de partida para brincar. Se você precisar apenas de uma base caso a caso, também poderá ampliar a área de interesse (o que exigiria que você tivesse gráficos dinâmicos ativados em sua configuração Munin) e observe os valores Mín / Máx impressos na área de legenda dos gráficos.

    
por 23.06.2014 / 12:21
2

Munin é uma boa ferramenta, e eu gosto bastante disso. No entanto, às vezes, descobri que, para casos de uso específicos, fazer minha própria amostragem e usar rrdtool funciona melhor.

Nesse caso, você provavelmente pode obter os dados brutos que deseja por ifconfig e verificar os bytes rx e tx.

Isso você pode inserir em um build personalizado de RRD em torno de DERIVE .

rrdtool create netmax.rrd -s 1 DS:tx_bytes:DERIVE:5:0:U DS:rx_bytes:DERIVE:5:0:U RRA:MAX:0.5:1:84600 RRA:AVERAGE:0.5:1:84600 RRA:MAX:0.5:60:12960 RRA:AVERAGE:0.5:60:12960

Pegue os valores do ifconfig em um script simples e atualize-o no rrdtool usando:

rrdtool update netmax.rrd N:12312321:341241 

(por exemplo, tx bytes, rx bytes do seu ifconfig).

Faça o gráfico:

rrdtool graph -e now -s end-6h netmax.png DEF:tx_max=netmax.rrd:tx_bytes:MAX DEF:rx_max=netmax.rrd:rx_bytes:MAX LINE1:tx_max#00FF00:tx_max LINE1:rx_max#0000FF:rx_max

Não é muito difícil criar um script para uso ad-hoc e é exatamente o que Munin usa nos bastidores.

    
por 23.06.2014 / 13:21
0

Por favor, defina "pico".

Como bandwidth = dataVolume / time , o termo não tem sentido sem referência ao período em que o pico foi observado.

Se você quiser limitar a largura mínima do pico a intervalos de 1 segundo, tudo bem, mas, por definição, você deve, portanto, amostrar uma vez por segundo. E mesmo se você fizer isso, uma explosão intensa de tráfego que dura apenas 1/10 de segundo pareceria 10x menor do que se você tivesse amostrado em intervalos de 0,1 segundo.

Para pensar nisso de outra forma, uma analogia para "largura de banda" seria o poder de um laser, onde power = energy / time . Um ponteiro laser portátil de 1 mW é 1 millijoules de energia (contínua) por segundo e é considerado perfeitamente seguro, mas se você espremer esse 1 mJ em um nanossegundo único, você terá um laser de pulsos de um megawatt poder.

    
por 21.06.2014 / 00:41
0

sar atenderia às suas necessidades? Por exemplo

sar -n ALL 5 1

fornecerá estatísticas por 5 segundos 1 vez.

    
por 21.06.2014 / 00:07