Monitoramento TCP em um servidor: comparando netstat vs lsof?


12

Estou monitorando a pilha TCP em um servidor na esperança de inferir genericamente problemas com o aplicativo na caixa.

Minha primeira inclinação é medir o número de soquetes em todos os estados relatados (LISTEN, ESTABLISHED, FIN_WAIT2, TIME_WAIT, etc) e detectar algumas anomalias.

Um colega de equipe sugere que 'lsof' seria uma ferramenta melhor para ver em que estado as pilhas do TCP estão.

Alguma preferência ou dicas de experiência da multidão de falhas no servidor?


3
Por favor, adicione uma tag * nix para afastar os geeks nós do Windows
KevinH

Respostas:


7

Prefiro lsof porque sua saída é consistente em todas as plataformas em que é executada. Você pode obter praticamente as mesmas informações de ambos os programas. Eu acho que tudo se resume a preferência pessoal.


2

Minha primeira implicação seria usar o netstat -ptanque fornecerá todas as informações que você está procurando. Provavelmente canalize para classificar e uniq. O seguinte deve fornecer um bom número de status do soquete '.

netstat -ptan | awk '{print $6 " " $7 }' | sort | uniq -c


1

Confira dstat e execute com:

% sudo dstat --tcp

Melhor ainda, se você deseja analisar a saída, pode fazê-la gravar em CSV com --output.


Ferramenta interessante, infelizmente apenas para Linux (embora seja compreensível). É bom ver algo semelhante ao SAR que inclui informações de rede (embora as versões linux sar pareçam mostrar isso também).
ericslaw

1

Eu acho que é realmente mais uma preferência pessoal, pois, com um pouco de ajustes (e as opções de comando corretas), você pode obter praticamente as mesmas informações.

No entanto, se você deseja monitorar o número de conexões em vários estados, eu não faria isso com uma ferramenta de linha de comando de tiro único. Eu usaria algo que pode fazer algumas tendências, para que você possa revisá-lo ao longo do tempo. Algo como munin seria muito útil, pois representaria graficamente com o tempo (junto com outras estatísticas do sistema potencialmente úteis).

A solução de problemas de um aplicativo é sempre mais fácil se você tiver boas informações sobre a própria caixa e seu desempenho (durante problemas e quando os problemas estão ausentes).


A ferramenta de linha de comando é apenas para coleta. Seu ponto de coleta de dados para uma linha de base é realmente a abordagem apropriada.
ericslaw
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.