Pesquisa de site

20 ferramentas de linha de comando essenciais para monitorar o desempenho do Linux


Ser um administrador de sistema ou rede encarregado de monitorar e depurar problemas de desempenho do sistema Linux diariamente é uma responsabilidade extremamente desafiadora.

Exige dedicação inabalável, um conhecimento profundo dos sistemas Linux e um compromisso constante para garantir desempenho e confiabilidade ideais.

Depois de dedicar uma década trabalhando como administrador Linux no setor de TI, passei a apreciar verdadeiramente a árdua tarefa de monitorar e garantir a operação contínua dos sistemas.

À luz disso, selecionamos uma lista abrangente das 20 principais ferramentas de monitoramento de linha de comando usadas com frequência. Essas ferramentas valiosas podem ser indispensáveis para todos os administradores de sistemas Linux/Unix, capacitando-os a monitorar, diagnosticar e manter com eficiência a integridade e o desempenho de seus sistemas.

Essas ferramentas de monitoramento estão disponíveis em todos os tipos de Linux e podem ser úteis para monitorar e encontrar as causas reais dos problemas de desempenho. Esta lista de comandos mostrada aqui é suficiente para você escolher aquele que é adequado para o seu cenário de monitoramento.

1. Início – Monitoramento de Processos Linux

O comando top do Linux é um programa de monitoramento de desempenho usado com frequência por muitos administradores de sistema para monitorar o desempenho do Linux e está disponível em muitos sistemas operacionais do tipo Linux/Unix.

O comando top é usado para exibir todos os processos em execução e ativos em tempo real em uma lista ordenada e atualizá-la regularmente. Ele exibe uso de CPU, uso de memória, memória swap, tamanho do cache, tamanho do buffer >, PID de processo, Usuário, Comandos e muito mais.

Ele também mostra alta utilização de memória e CPU de processos em execução. O comando top é muito útil para administradores de sistema monitorarem e tomarem ações corretivas quando necessário. Vamos ver o comando superior em ação.

top

2. VmStat – Estatísticas de memória virtual

O comando VmStat do Linux é usado para exibir estatísticas de memória virtual, threads do kernel, discos, processos do sistema , bloqueios de E/S, interrupções, atividade da CPU e muito mais.

Instale VmStat no Linux

Por padrão, o comando vmstat não está disponível em sistemas Linux, você precisa instalar um pacote chamado sysstat (uma poderosa ferramenta de monitoramento) que inclui um programa vmstat.

sudo yum install sysstat      [On Older CentOS/RHEL & Fedora]
sudo dnf install sysstat      [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
sudo apt-get install sysstat  [On Debian/Ubuntu & Mint]
sudo pacman -S sysstat        [On Arch Linux]

O uso comum do formato de comando vmstat é.

vmstat

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0  43008 275212   1152 561208    4   16   100   105   65  113  0  1 96  3  0

3. Lsof – Listar arquivos abertos

O comando lsof é usado em muitos sistemas do tipo Linux/Unix para exibir uma lista de todos os arquivos e processos abertos. Os arquivos abertos incluídos são arquivos de disco, soquetes de rede, pipes, dispositivos e processos.

Um dos principais motivos para usar este comando é quando um disco não pode ser desmontado e exibe o erro de que os arquivos estão sendo usados ou abertos. Com este comando, você pode identificar facilmente quais arquivos estão em uso.

O formato mais comum para o comando lsof é.

lsof

COMMAND     PID   TID TASKCMD             USER   FD      TYPE             DEVICE SIZE/OFF       NODE NAME
systemd       1                           root  cwd       DIR                8,2      224        128 /
systemd       1                           root  rtd       DIR                8,2      224        128 /
systemd       1                           root  txt       REG                8,2  1567768  134930842 /usr/lib/systemd/systemd
systemd       1                           root  mem       REG                8,2  2714928  134261052 /usr/lib64/libm-2.28.so
systemd       1                           root  mem       REG                8,2   628592  134910905 /usr/lib64/libudev.so.1.6.11
systemd       1                           root  mem       REG                8,2   969832  134261204 /usr/lib64/libsepol.so.1
systemd       1                           root  mem       REG                8,2  1805368  134275205 /usr/lib64/libunistring.so.2.1.0
systemd       1                           root  mem       REG                8,2   355456  134275293 /usr/lib64/libpcap.so.1.9.0
systemd       1                           root  mem       REG                8,2   145984  134261219 /usr/lib64/libgpg-error.so.0.24.2
systemd       1                           root  mem       REG                8,2    71528  134270542 /usr/lib64/libjson-c.so.4.0.0
systemd       1                           root  mem       REG                8,2   371736  134910992 /usr/lib64/libdevmapper.so.1.02
systemd       1                           root  mem       REG                8,2    26704  134275177 /usr/lib64/libattr.so.1.1.2448
systemd       1                           root  mem       REG                8,2  3058736  134919279 /usr/lib64/libcrypto.so.1.1.1c
...

4. Tcpdump – Analisador de Pacotes de Rede

O comando tcpdump é um dos programas analisadores de pacotes de rede ou sniffer de pacotes de linha de comando mais amplamente usados, usado para capturar ou filtrar Pacotes >TCP/IP que são recebidos ou transferidos em uma interface específica através de uma rede.

Ele também oferece a opção de salvar pacotes capturados em um arquivo para análise posterior. O tcpdump está quase disponível em todas as principais distribuições Linux.

tcpdump -i enp0s3

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes
10:19:34.635893 IP tecmint.ssh > 192.168.0.124.45611: Flags [P.], seq 2840044824:2840045032, ack 4007244093
10:19:34.636289 IP 192.168.0.124.45611 > tecmint.ssh: Flags [.], ack 208, win 11768, options 
10:19:34.873060 IP _gateway.57682 > tecmint.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:34.873104 IP tecmint > _gateway: ICMP tecmint udp port netbios-ns unreachable, length 86
10:19:34.895453 IP _gateway.48953 > tecmint.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:34.895501 IP tecmint > _gateway: ICMP tecmint udp port netbios-ns unreachable, length 86
10:19:34.992693 IP 142.250.4.189.https > 192.168.0.124.38874: UDP, length 45
10:19:35.010127 IP 192.168.0.124.38874 > 142.250.4.189.https: UDP, length 33
10:19:35.135578 IP _gateway.39383 > 192.168.0.124.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:35.135586 IP 192.168.0.124 > _gateway: ICMP 192.168.0.124 udp port netbios-ns unreachable, length 86
10:19:35.155827 IP _gateway.57429 > 192.168.0.124.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:35.155835 IP 192.168.0.124 > _gateway: ICMP 192.168.0.124 udp port netbios-ns unreachable, length 86
...

5. Netstat – Estatísticas de Rede

O netstat é uma ferramenta de linha de comando para monitorar estatísticas de pacotes de entrada e de rede de saída, bem como estatísticas de interface. É uma ferramenta muito útil para todo administrador de sistema monitorar o desempenho da rede e solucionar problemas relacionados à rede.

netstat -a | more

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:sunrpc          0.0.0.0:*               LISTEN
tcp        0      0 tecmint:domain          0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0      0 localhost:postgres      0.0.0.0:*               LISTEN
tcp        0      0 tecmint:ssh             192.168.0.124:45611     ESTABLISHED
tcp6       0      0 [::]:sunrpc             [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 localhost:postgres      [::]:*                  LISTEN
udp        0      0 0.0.0.0:mdns            0.0.0.0:*
udp        0      0 localhost:323           0.0.0.0:*
udp        0      0 tecmint:domain          0.0.0.0:*
udp        0      0 0.0.0.0:bootps          0.0.0.0:*
udp        0      0 tecmint:bootpc          _gateway:bootps         ESTABLISHED
...

Embora atualmente o netstat tenha sido descontinuado em favor do comando ss, você ainda pode descobrir o netstat em seu kit de ferramentas de rede.

6. Htop – Monitoramento de Processos Linux

htop é uma ferramenta de monitoramento de processos Linux muito avançada, interativa e em tempo real, que é muito semelhante ao comando top do Linux, mas possui alguns recursos avançados, como um controle de usuário interface amigável para gerenciar processos, teclas de atalho, visualizações verticais e horizontais dos processos e muito mais.

htop

htop é uma ferramenta de terceiros, que não vem com sistemas Linux, você precisa instalá-la usando a ferramenta de gerenciamento de pacotes do sistema.

Para obter mais informações sobre a instalação do htop, leia nosso artigo – Instale o Htop (Linux Process Monitoring) no Linux.

7. Iotop – Monitore E/S de disco Linux

iotop também é muito semelhante ao comando top e ao programa htop, mas tem uma função de contabilidade para monitorar e exibir em tempo real. E/S de disco e processos.

A ferramenta iotop é muito útil para encontrar o processo exato e leituras/gravações de disco altamente usadas dos processos.

Instale Iotop no Linux

Por padrão, o comando iotop não está disponível no Linux e você precisa instalá-lo conforme mostrado.

sudo yum install iotop      [On Older CentOS/RHEL & Fedora]
sudo dnf install iotop      [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
sudo apt-get install iotop  [On Debian/Ubuntu & Mint]
sudo pacman -S iotop        [On Arch Linux]

O uso comum do formato de comando iotop é.

iotop

8. Iostat – Estatísticas de entrada/saída

iostat é uma ferramenta simples que irá coletar e mostrar estatísticas de dispositivos de armazenamento de entrada e saída do sistema. Esta ferramenta é frequentemente usada para rastrear problemas de desempenho de dispositivos de armazenamento, incluindo dispositivos, discos locais e discos remotos, como NFS >.

Instale Iostat no Linux

Para obter o comando iostat, você precisa instalar um pacote chamado sysstat conforme mostrado.

sudo yum install sysstat      [On Older CentOS/RHEL & Fedora]
sudo dnf install sysstat      [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
sudo apt-get install sysstat  [On Debian/Ubuntu & Mint]
sudo pacman -S sysstat        [On Arch Linux]

O uso comum do formato de comando iostat é.

iostat

Linux 4.18.0-193.el8.x86_64 (tecmint)   04/05/2021      _x86_64_        (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.21    0.03    0.59    2.50    0.00   96.67

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               3.95        83.35        89.63    1782431    1916653

9. IPTraf – Monitoramento de LAN IP em tempo real

IPTraf é um utilitário de monitoramento de rede em tempo real (IP LAN) baseado em console de código aberto para Linux. Ele coleta uma variedade de informações, como monitor de tráfego IP que passa pela rede, incluindo informações de sinalizadores TCP, detalhes ICMP, interrupções de tráfego TCP/UDP, pacotes de conexão TCP e contagens de bytes.

Ele também reúne informações sobre estatísticas gerais e detalhadas de interface de TCP, UDP, IP, ICMP, não-IP, erros de soma de verificação de IP, atividade de interface, etc.

10. Psacct ou Acct – Monitore a atividade do usuário

As ferramentas psacct ou acct são muito úteis para monitorar a atividade de cada usuário no sistema. Ambos os daemons são executados em segundo plano e monitoram de perto a atividade geral de cada usuário no sistema e também quais recursos estão sendo consumidos por eles.

Essas ferramentas são muito úteis para administradores de sistema rastrearem a atividade de cada usuário, como o que eles estão fazendo, quais comandos eles emitiram, quantos recursos são usados por eles, por quanto tempo estão ativos no sistema, etc.

11. Monit – Monitoramento de processos e serviços Linux

Monit é um utilitário gratuito de supervisão de processos baseado na Web e de código aberto que monitora e gerencia automaticamente processos do sistema, programas, arquivos, diretórios, permissões, somas de verificação e sistemas de arquivos.

Ele monitora serviços como Apache, MySQL, Mail, FTP, ProFTP, Nginx, SSH e assim por diante. O status do sistema pode ser visualizado na linha de comando ou usando sua própria interface web.

Para instalação e configuração, leia nosso artigo - Como instalar e configurar o programa Monit (monitoramento de processos e serviços Linux).

12. NetHogs – Monitore a largura de banda da rede por processo

NetHogs é um pequeno programa de código aberto (semelhante ao comando superior do Linux) que mantém uma guia sobre cada atividade de rede de processo em seu sistema. Ele também monitora a largura de banda do tráfego de rede em tempo real usada por cada programa ou aplicativo.

nethogs

Para instalação e uso, leia nosso artigo: Monitore a largura de banda da rede Linux usando NetHogs

13. iftop – Monitoramento de largura de banda de rede

iftop é outro utilitário gratuito de monitoramento de sistema de código aberto baseado em terminal que exibe uma lista atualizada com frequência da utilização da largura de banda da rede (hosts de origem e destino) que passa pela interface de rede do seu sistema.

iftop é análogo a ‘top’ no contexto de uso da rede, da mesma forma que ‘top’ fornece insights sobre o uso da CPU.

iftop pertence à estimada família ‘principal’ de ferramentas de monitoramento de rede. Projetado especificamente para observar uma interface de rede selecionada pelo usuário, ele renderiza dados em tempo real sobre a utilização atual da largura de banda entre dois hosts especificados.

iftop

Para instalação e uso, leia nosso artigo: iftop – Monitore a utilização da largura de banda da rede

14. Monitorix – Monitoramento de Sistema e Rede

Monitorix é um utilitário leve e gratuito projetado para executar e monitorar recursos de sistema e de rede o máximo possível em servidores Linux/Unix.

Possui um servidor web HTTP integrado que coleta regularmente informações do sistema e da rede e as exibe em gráficos. Ele monitora a média e utilização da carga do sistema, a alocação de memória, a integridade do driver de disco, os serviços do sistema, a rede portas, estatísticas de correio (Sendmail, Postfix, Dovecot, etc), MySQL estatísticas, e muito mais.

Ele foi projetado para monitorar o desempenho geral do sistema e ajuda na detecção de falhas, gargalos, atividades anormais, etc.

Para instalação e uso, leia nosso artigo: Monitorix, uma ferramenta de monitoramento de sistema e rede para Linux

15. Arpwatch – Monitor de atividade Ethernet

Arpwatch é um tipo de programa projetado para monitorar a resolução de endereços (mudanças de endereços MAC e IP) de Ethernet tráfego de rede em uma rede Linux.

Ele monitora continuamente o tráfego Ethernet e produz um registro de alterações de pares de endereços IP e MAC junto com um carimbo de data/hora em uma rede. Também possui um recurso para enviar alertas por e-mail aos administradores, quando um emparelhamento é adicionado ou alterado. É muito útil para detectar falsificação de ARP em uma rede.

Para instalação e uso, leia nosso artigo: Arpwatch para monitorar atividade Ethernet

16. Suricata – Monitoramento de segurança de rede

Suricata é um sistema de segurança de rede e detecção de invasões e monitoramento de prevenção de código aberto de alto desempenho para Linux, FreeBSD e Windows.

Ele foi projetado e de propriedade de uma fundação sem fins lucrativos OISF (Open Information Security Foundation).

Para instalação e uso, leia nosso artigo: Suricata – Um sistema de detecção e prevenção de invasões de rede

17. VnStat PHP – Monitoramento de largura de banda da rede

VnStat PHP é um aplicativo frontend baseado na web para a ferramenta de rede mais popular chamada “vnstat“. VnStat PHP monitora o uso do tráfego de rede em modo gráfico.

Ele exibe o uso total do tráfego de rede IN e OUT em hora, diariamente, mensalmente. relatórios fortes> e de resumo completo.

Para instalação e uso, leia nosso artigo: Monitorando o uso da largura de banda da rede

18. Nagios – Monitoramento de Rede/Servidor

Nagios é um poderoso sistema de monitoramento de código aberto líder que permite aos administradores de rede/sistema identificar e resolver problemas relacionados ao servidor antes que eles afetem os principais processos de negócios.

Com o sistema Nagios, os administradores podem monitorar Linux, Windows, switches, roteadores e impressoras remotos em uma única janela. Ele mostra avisos críticos e indica se algo deu errado em sua rede/servidor, o que indiretamente ajuda você a iniciar processos de correção antes que eles ocorram.

Para instalação, configuração e uso, leia nosso artigo – Instale o sistema de monitoramento Nagios para monitorar hosts Linux/Windows remotos

19. Nmon: Monitore o desempenho do Linux

Ferramenta Nmon (significa Nigel’s Performance Monitor), que é usada para monitorar todos os recursos do Linux, como CPU, memória, uso de disco, rede, principais processos, NFS, kernel e muito mais. Esta ferramenta vem em dois modos: Modo Online e Modo de Captura.

O Modo Online é usado para monitoramento em tempo real e o Modo Captura é usado para armazenar a saída em formato CSV para processamento posterior.

Para instalação e uso, leia nosso artigo: Instale a ferramenta Nmon (Monitoramento de desempenho) no Linux

20. Collectl: ferramenta multifuncional de monitoramento de desempenho

Collectl é outro utilitário poderoso e rico em recursos baseado em linha de comando, que pode ser usado para coletar informações sobre recursos do sistema Linux, como uso de CPU, memória, rede, inodes, processos, nfs, TCP , soquetes e muito mais.

Para instalação e uso, leia nosso artigo: Instalar a ferramenta Collectl (All-in-One Performance Monitoring) no Linux

Gostaríamos de saber que tipo de programas de monitoramento você usa para monitorar o desempenho de seus servidores Linux. Se perdemos alguma ferramenta importante que você gostaria que incluíssemos nesta lista, informe-nos por meio de comentários e não se esqueça de compartilhá-la.