Pesquisa de site

Sysdig - uma poderosa ferramenta de monitoramento e solução de problemas de sistema para Linux


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

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

  1. strace – descobre 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 – veja quais arquivos são abertos por qual processo.

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

Ele vem com uma interface de linha de comando e uma interface de usuário interativa poderosa (csysdig) que permite observar a atividade do sistema em tempo real ou executar um dump de rastreamento e salvá-lo para análise posterior. Você pode assistir como o csysdig funciona no vídeo abaixo.

Recursos do Sysdig:

  • É rápido, estável e fácil de usar, com documentação abrangente e bem documentada.
  • Vem com suporte nativo para tecnologias de contêiner, incluindo Docker, LXC.
  • É programável em Lua; oferece cinzéis (scripts Lua leves) para processar eventos de sistema capturados.
  • Suporta filtragem útil de saída.
  • Suporta rastreamento de sistema e aplicativos.
  • Pode ser integrado com Ansible, Puppet e Logstash.
  • Ative a análise de log avançada de amostra.
  • Ele também oferece recursos de análise de ataque (forense) a servidores Linux 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

Instalar o pacote sysdig é tão fácil quanto executar o comando abaixo, que verificará todos os requisitos; se tudo estiver em ordem, ele 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

Depois de instalá-lo, você precisa executar o sysdig como root porque ele requer acesso a áreas críticas como o sistema de arquivos /proc, /dev/sysdig* dispositivos e precisa carregar automaticamente o módulo do kernel sysdig-probe (caso não seja); 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

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 

Nota: Para ter uma ideia real desta ferramenta, você precisa usar o sysdig que produz dados brutos como vimos antes, a partir de uma execução Sistema Linux: isso exige que você entenda como usar filtros e cinzéis.

Mas se você precisar de uma maneira fácil de usar o sysdig – continue com o csysdig.

Compreendendo cinzéis e filtros Sysdig

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

sudo sysdig -cl

A captura de tela mostra uma lista de exemplos de cinzéis em diferentes categorias.

Se você quiser saber mais informações sobre um cinzel específico, use o sinalizador -i:

sudo sysdig -i topprocs_cpu

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

Um filtro simples e mais comum é uma verificação básica “class.field=value”, você também pode combinar cinzéis com filtros para personalizações ainda mais poderosas.

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


sudo sysdig -l

Criando arquivo de rastreamento do sistema Linux

Para despejar a saída do sysdig em um arquivo para análise posterior, use o sinalizador -w como este.

Você pode ler o arquivo de dump de rastreamento usando o sinalizador -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

Monitorando Processos Linux

Para listar os processos do sistema, digite:

sudo sysdig -c ps

Monitore processos por uso de CPU

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

sudo sysdig -c topprocs_cpu

Monitorando conexões de rede e E/S

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

sudo sysdig -c netstat

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

sudo sysdig -c topconns

A seguir, 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 arquivos do sistema

Você pode gerar os dados lidos e gravados pelos processos no sistema conforme abaixo:

sudo sysdig -c echo_fds

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

sudo sysdig -c topprocs_file   

Soluçã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

Acompanhe 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 

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

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

Descubra rede lenta I/0

Este comando simples irá ajudá-lo a detectar E/0 de rede lenta:

sudo sysdig -c netlower     

Assistindo entradas do arquivo de log

O comando abaixo ajuda a exibir todas as mensagens gravadas no syslog. Se você estiver interessado nas entradas de log de um processo específico, crie um dump de rastreamento e filtre-o de acordo, conforme mostrado antes:

sudo sysdig -c spy_syslog      

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

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] 

Exibir shells de login e atividade interativa do usuário

O comando abaixo permitirá que você visualize todos os IDs do 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

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

man sysdig 
man csysdig

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

Verifique também estas ferramentas úteis de monitoramento de desempenho do Linux:

  1. BCC – Ferramentas de rastreamento dinâmico para monitoramento de desempenho do Linux, rede e muito mais
  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 multifuncional para Linux
  5. Netdata – uma ferramenta de monitoramento de desempenho em tempo real para sistemas Linux
Conclusão

Sysdig reúne funcionalidades de inúmeras ferramentas de linha de comando em uma interface notável, permitindo assim que você se aprofunde nos eventos do sistema Linux para coletar dados, salvá-los para análise posterior e oferece suporte incrível a contêineres.

Para fazer qualquer pergunta ou compartilhar alguma opinião sobre esta ferramenta, use o formulário de feedback abaixo.