Sysdig – Uma poderosa ferramenta de monitoramento e solução de problemas para Linux

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

Geralmente, você usaria uma combinação de várias ferramentas de monitoramento de desempenho e resoluçã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êineres. Ele permite que você capture, salve, filtre e examine o comportamento real (fluxo de eventos) dos sistemas Linux e contêineres.

Vem com uma interface de linha de comando e uma poderosa UI interativa (csysdig) que permitem que você acompanhe a atividade do sistema em tempo real, ou realize um dump de rastreamento e salve para análise posterior. Você pode ver como csysdig funciona no vídeo abaixo.

Recursos do Sysdig:

  • É rápido, estável e fácil de usar com uma documentação abrangente.
  • Vem com suporte nativo para tecnologias de contêineres, 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 aplicativo.
  • Pode ser integrado com Ansible, Puppet e Logstash.
  • Permite uma análise avançada de logs de amostra.
  • Também oferece recursos de análise de ataque a servidores Linux (forense) para hackers éticos e muito mais.

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

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 irá baixar 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, pois 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 deseja obter mais informações sobre um determinado formão, use a flag -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 que você personalize 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 flag -w assim.

Você pode ler o arquivo de despejo de rastreamento usando a flag -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

Monitorando Processos por Uso de CPU

Para observar os principais processos por porcentagem de uso de 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    

Monitorando E/S de Arquivo do Sistema

Você pode exibir os dados lidos e escritos pelos processos no sistema como 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 do 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 despejar o rastreamento em um arquivo:

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

Em seguida, use um filtro para se concentrar nos detalhes de 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     

Observando Entradas de Arquivo de Log

O comando abaixo ajuda a exibir todas as mensagens escritas no syslog, se você estiver interessado em entradas de log para um processo específico, crie um despejo de rastreamento e filtre-o conforme mostrado anteriormente:

$ sudo sysdig -c spy_syslog      

Você pode imprimir quaisquer dados escritos por qualquer processo em um arquivo de log da seguinte forma:

$ sudo sysdig -c spy_logs   

Monitorando Solicitações do 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 Shells de Login e Atividade de Usuário Interativa

O comando abaixo permitirá que você veja todos os IDs de shell 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 obter mais informações de uso e exemplos, leia as páginas man 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, Redes e Mais no Linux
  2. pyDash – Uma Ferramenta de Monitoramento de Desempenho do 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 várias ferramentas de linha de comando em uma interface notável, permitindo que você analise profundamente os eventos do seu sistema Linux para coletar dados, salvar para análises posteriores e oferece um suporte incrível para contêineres.

Para fazer perguntas ou compartilhar qualquer pensamento sobre essa ferramenta, use o formulário de feedback abaixo.

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