Sysdig – Uma Ferramenta Poderosa de Monitoramento e Solução de Problemas de Sistema para Linux

O Sysdig é uma ferramenta de monitoramento de sistema de código aberto, multiplataforma, poderosa e flexível para Linux; também funciona no Windows e no Mac OSX, mas com funcionalidade limitada e pode ser usada para análise, inspeção e depuração do sistema.

Normalmente, você utilizaria uma combinação de várias ferramentas de monitoramento de desempenho e solução de problemas do Linux, incluindo as listadas abaixo para realizar as tarefas de monitoramento e depuração do Linux:

  1. strace – descobrir chamadas de sistema e sinais para um processo.
  2. tcpdump – monitoramento de tráfego de rede bruto.
  3. netstat – monitoramento de conexões de rede.
  4. htop – monitoramento de processos em tempo real.
  5. iftop – monitoramento de largura de banda de rede em tempo real.
  6. lsof – visualizar quais arquivos são abertos por qual processo.

No entanto, o sysdig integra o que todas as ferramentas acima e muitas outras oferecem em um único e simples programa, ainda mais com um incrível suporte a contêiner. Ele permite capturar, salvar, filtrar e examinar o comportamento real (fluxo de eventos) de sistemas Linux e contêineres.

Vem com uma interface de linha de comando e uma poderosa interface interativa (csysdig) que permite observar a atividade do sistema em tempo real, ou realizar um dump de rastreamento e salvar para análise posterior. Você pode ver como o csysdig funciona no vídeo abaixo.

Recursos do Sysdig:

  • É rápido, estável e fácil de usar com documentação abrangente.
  • Vem com suporte nativo para tecnologias de contêiner, incluindo Docker, LXC.
  • É scriptável em Lua; oferece cinzéis (scripts Lua leves) para processar eventos do sistema capturados.
  • Suporta filtragem útil de saída.
  • Suporta rastreamento de sistema e aplicativos.
  • Pode ser integrado com Ansible, Puppet e Logstash.
  • Permite análise avançada de logs de amostra.
  • Também oferece recursos de análise de ataques de servidores Linux (forense) para hackers éticos e muito mais.

Neste artigo, mostraremos como instalar o sysdig em um sistema Linux e usá-lo com exemplos básicos de análise, monitoramento e solução de problemas do sistema.

Como Instalar o Sysdig no Linux

A instalação do pacote sysdig é tão fácil quanto executar o comando abaixo, que verificará todos os requisitos; se tudo estiver em ordem, ele fará o download e instalará o pacote do repositório Draios APT/YUM.

# curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash 
OR
$ curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash

Após instalá-lo, você precisa executar sysdig como root porque ele requer acesso a áreas críticas como o sistema de arquivos /proc, dispositivos /dev/sysdig* e precisa carregar automaticamente o módulo do kernel sysdig-probe (caso não esteja); caso contrário, use o comando sudo.

O exemplo mais básico é executá-lo sem argumentos, isso permitirá que você visualize o fluxo de eventos do seu sistema Linux atualizado em tempo real:

$ sudo sysdig
Watch Linux System Events

A saída acima (dados brutos) talvez não faça muito sentido para você, para uma saída mais útil execute csysdig:

$ sudo csysdig 
Monitor Linux System Events

Nota: Para ter uma ideia real dessa ferramenta, você precisa usar sysdig que produz dados brutos como vimos antes, de um sistema Linux em execução: isso requer que você entenda como usar filtros e cinzéis.

Mas se você precisa de uma maneira indolor de usar sysdig – continue com csysdig.

Compreendendo Cinzéis e Filtros do Sysdig

Cinzéis do Sysdig são scripts Lua mínimos para examinar o fluxo de eventos do sysdig e realizar ações úteis de solução de problemas do sistema e mais. O comando abaixo ajudará você a visualizar todos os cinzéis disponíveis:

$ sudo sysdig -cl

A captura de tela mostra uma lista de amostra de formões em diferentes categorias.

View Sysdig Chisels

Se você quiser obter mais informações sobre um determinado formão, use a bandeira -i:

$ sudo sysdig -i topprocs_cpu
View Sysdig Chisel Info

Os filtros do Sysdig adicionam mais poder ao tipo de saída que você pode obter dos fluxos de eventos, permitindo personalizar a saída. Você deve especificá-los no final de uma linha de comando.

A straightforward and commonest filter is a basic “class.field=value” check, you can also combine chisels with filters for even more powerful customizations.

Para visualizar uma lista de classes de campo disponíveis, campos e suas descrições, digite:

$ sudo sysdig -l
View Sysdig Field Classes

Criando Arquivo de Rastreamento do Sistema Linux

Para despejar a saída do sysdig em um arquivo para análise posterior, use a bandeira -w assim.

Você pode ler o arquivo de despejo de rastreamento usando a bandeira -r:

$ sudo sysdig -r trace.scap

A opção -s é usada para especificar a quantidade de bytes de dados a serem capturados para cada evento do sistema. Neste exemplo, estamos filtrando eventos para o processo mongod.

$ sudo sysdig -s 3000 -w trace.scap
$ sudo sysdig -r trace.scap proc.name=mongod
Create MongoDB Trace File

Monitorando Processos do Linux

Para listar os processos do sistema, digite:

$ sudo sysdig -c ps
Monitor Linux Processes

Monitorar Processos por Uso da CPU

Para observar os principais processos por percentual de uso da CPU, execute este comando:

$ sudo sysdig -c topprocs_cpu
Monitor Processes by CPU Usage

Monitorando Conexões de Rede e E/S

Para visualizar as conexões de rede do sistema, execute:

$ sudo sysdig -c netstat
Monitor Network Connections

O comando a seguir ajudará você a listar as principais conexões de rede por bytes totais:

$ sudo sysdig -c topconns

Em seguida, você também pode listar os principais processos por E/S de rede da seguinte forma:

$ sudo sysdig -c topprocs_net    

Monitoramento de E/S de Arquivo do Sistema

Você pode exibir os dados lidos e gravados por processos no sistema conforme abaixo:

$ sudo sysdig -c echo_fds
Monitor System IO

Para listar os principais processos por bytes de disco (leitura + gravação), use:

$ sudo sysdig -c topprocs_file   

Resolução de Problemas de Desempenho de um Sistema Linux

Para ficar de olho nos gargalos do sistema (chamadas lentas do sistema), execute este comando:

$ sudo sysdig -c bottlenecks
Troubleshoot Linux Performance

Rastreando o Tempo de Execução de um Processo

Para rastrear o tempo de execução de um processo, você pode executar este comando e salvar o rastreamento em um arquivo:

$ sudo sysdig -w extime.scap -c proc_exec_time 
Track Process Execution Time

Em seguida, use um filtro para detalhar um processo específico (postgres, neste exemplo) da seguinte forma:

$ sudo sysdig -r extime.scap proc.name=postgres

Descobrindo E/S de Rede Lenta

Este comando simples ajudará você a detectar E/S de rede lenta:

$ sudo sysdig -c netlower     

Monitorando Entradas de Arquivo de Log

O comando abaixo o ajudará a exibir todas as mensagens gravadas no syslog; se estiver interessado em entradas de log para um processo específico, crie um rastreamento e filtre conforme mostrado anteriormente:

$ sudo sysdig -c spy_syslog      

Você pode imprimir qualquer dado gravado por qualquer processo em um arquivo de log da seguinte forma:

$ sudo sysdig -c spy_logs   

Monitorando Solicitações de Servidor HTTP

Se você tiver um servidor HTTP, como Apache ou Nginx, em execução em nosso sistema, verifique o log de solicitações do servidor com este comando:

$ sudo sysdig -c httplog    
$ sudo sysdig -c httptop   [Print Top HTTP Requests] 
Monitor HTTP Requests

Exibindo Conchas de Login e Atividade de Usuário Interativa

O comando abaixo permitirá que você veja todos os IDs de conchas de login:

$ sudo sysdig -c list_login_shells

Por último, mas não menos importante, você pode mostrar a atividade interativa dos usuários do sistema da seguinte forma:

$ sudo sysdig -c spy_users
Monitor User Activity

Para mais informações de uso e exemplos, leia as páginas de manual do sysdig e csysdig:

$ man sysdig 
$ man csysdig

Referência: https://www.sysdig.org/

Também confira essas ferramentas úteis de monitoramento de desempenho do Linux:

  1. BCC – Ferramentas de Rastreamento Dinâmico para Monitoramento de Desempenho, Rede e Mais no Linux
  2. pyDash – Uma Ferramenta de Monitoramento de Desempenho Linux Baseada na Web
  3. Perf – Uma Ferramenta de Monitoramento e Análise de Desempenho para Linux
  4. Collectl: Uma Ferramenta Avançada de Monitoramento de Desempenho Tudo-em-Um para Linux
  5. Netdata – Uma Ferramenta de Monitoramento de Desempenho em Tempo Real para Sistemas Linux
Conclusão

O Sysdig reúne funcionalidades de inúmeras ferramentas de linha de comando em uma interface notável, permitindo assim que você mergulhe fundo nos eventos do seu sistema Linux para coletar dados, salvar para análise posterior e oferece um incrível suporte a contêineres.

Para fazer perguntas ou compartilhar pensamentos sobre essa ferramenta, utilize o formulário de feedback abaixo.

Source:
https://www.tecmint.com/sysdig-system-monitoring-and-troubleshooting-tool-for-linux/