O que posso usar para monitorar e registrar o tráfego de entrada / saída de / para hosts remotos?

13

Eu corro um servidor web (Debian Squeeze em um VPS), e os gráficos fornecidos pela empresa de hospedagem mostram consistentemente que cerca do dobro do tráfego é recebido pelo servidor em comparação com o tráfego de saída. Estou um pouco confuso com isso, então gostaria de executar algum tipo de utilitário de registro na máquina que não apenas confirme os números de upload / download, mas também os divida pelo host remoto envolvido, para que eu possa ver se grande parte do tráfego de entrada é de uma fonte específica.

Eu suspeito que a maior parte do tráfego de saída passa pelo Apache, mas o tráfego de entrada pode ser principalmente do Apache ou pode ser dominado por outros scripts e tarefas cron, portanto, prefiro uma ferramenta que monitore o tráfego no nível da interface do que algo no Apache .

Idealmente, eu gostaria de uma ferramenta que eu possa deixar em execução por alguns dias e depois voltar e obter uma saída de "bytes por host remoto" para o tráfego de entrada e de saída.

Isso é possível com uma ferramenta Linux padrão e um pouco de configuração (se sim, como?) Ou com um programa especializado (se sim, qual?)

Ian Renton
fonte

Respostas:

11

O ntop é provavelmente a sua melhor solução para fazer isso. Ele foi projetado para ser executado a longo prazo e capturar exatamente o que você está procurando.
Ele pode mostrar quais destinos remotos estão sendo mais utilizados, quanto tráfego enviado de / para, quais protocolos e portas estão sendo usados, etc. as mesmas estatísticas em clientes locais também.
Em seguida, ele usa uma GUI da web para navegar e exibir essas informações.

ntop

Patrick
fonte
Uau. Todos esses anos eu tenho usado ntopapenas como top, eu não tinha idéia que tinha um modo de daemon e um built-in interface web! Não há nada de errado com a sugestão de @ ckhan, mas aceitarei essa, pois acho que ntopa interface da web embutida é mais fácil de usar do que tcpdumpseguida pelo Wireshark.
Ian Renton
9

Se você tem root, você pode simplesmente usar tcpdumpe pegar tudo. Você pode acessá-lo no Wireshark e analisar o conteúdo do seu coração.

$ sudo tcpdump -i <interface> -w mycapture.tcpdump  

... e, em seguida, pressione ctrl-c quando tiver o suficiente. Execute em uma screensessão se precisar remover, etc.

Por padrão, ele captura apenas a primeira parte de cada pacote, mas como você está interessado principalmente na análise de origem, isso deve ser bom. Toneladas de outras opções para tcpdump se você estiver se sentindo aventureiro.

EDIT : Na verdade, uma vez carregado no Wireshark, você pode apenas usar a opção de menu Estatísticas | Endereços IP ... e obtenha um bom resumo do tráfego por contagem / taxa / porcentagem:

insira a descrição da imagem aqui

ckhan
fonte
Obrigado, parece um caminho razoável a seguir. Você sabe se o Wireshark pode produzir automaticamente o tipo de saída que eu busco (por exemplo, "1000 conexões ao servidor A, 967 conexões ao servidor B ...") ou precisaria escrever um script para criar essas informações a partir do dump TCP Eu mesmo?
18712 Ian Rodon
@IanRenton - Eu acho que ele fará exatamente o que você quer, veja a resposta editada. Acredito tcpdumptambém pode cuspir resumos de pacotes que você poderia facilmente grep, wcetc.
ckhan
4

E para métricas mais avançadas, você pode usar algo como monitorix, que possui módulos para os serviços mais comuns, e é simples:

apt-get install monitorix

Além disso, você possui um cactos completo, uma interface gráfica do usuário, mas não em tempo real.

E no top 1 para mim é a grafana multi-configurável . É um pouco mais difícil de instalar e configurar, mas é perfeito, você pode medir tudo em detalhes e em tempo real. Ele precisa de algumas dependências JVM, grafite, sussurro, ... algum conhecimento sobre JSON, mas funciona como um encanto, eu realmente recomendo!

Talvez uma boa configuração para o seu caso deva ser:

collectd + graphite + whisper + grafana

Na verdade, grafana mudou minha vida no escritório.

Gxt
fonte
O Whisper traz muitos hits, nenhum dos quais parece relevante. Exceto algum firewall para Android ... Você poderia dar um URL? Talvez você tenha um repositório no github com sua configuração.
precisa
0

certo ;)

https://github.com/graphite-project/whisper

Além disso, se você quiser um mini-howto sobre como conectar tudo: https://linuxboss.wordpress.com/2015/12/03/graphite-grafana/

Pedro. K
fonte
1
Olá Peter K - bem-vindo à U&L! Preferimos integrar as respostas dos links para que a resposta permaneça relevante, mesmo que a página da Web externa se mova ou seja excluída. Você pode fornecer mais informações como resposta?
Jeff Schaller