DevSecOps

27 jan, 2016

Aprenda a usar Sysdig para Ops

Publicidade

Oi, pessoal!

Queremos mostrar para vocês hoje como é possível analisar seu ambiente Docker e ver a saúde de seus containers de forma fácil e bem prática. Conheça, neste artigo, o Sysdig, uma ferramenta escrita em Lua que vem como uma opção, principalmente para quem é de operações, para realizar algum troubleshooting em seu sistema. Ele traz, de forma rápida e fácil, todas as informações que você precisa saber, não havendo mais a necessidade de executar dois, três comandos para ter uma noção do que está acontecendo. Com o Sysdig, em um único comando você já terá visibilidade do que é importante saber e do que pode estar ocorrendo em seu sistema. O Sysdig também é multiplataforma, então é possível instalá-lo tanto em Windows, quanto em Linux e Mac, e claro, ele suporta containers! Veja abaixo um mini tutorial que montamos para você:

1 – Instalação

Simples, se for em um host Linux você pode utilizar o comando abaixo:

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

Você ainda pode baixar os repositórios e utilizar sua ferramenta para instalação (yum, apt-get e afins). Quer saber como? Da uma olhada aqui e veja também como instalar o Sysdi em Windows e Mac.

2 – Utilização

Mas claro que o que nos interessa é saber como mais como está o uso de recursos do meu host, e descobrir qual container está utilizando mais em relação aos outros, ou ainda ver como está a saúde do meu ambiente Docker, mas como o Sysdig faz isso? Ele fica ‘ouvindo’ as chamadas de sistema e, com base nessas informações, monta os reports para você. Veja na imagem abaixo como ele trabalha tanto com Docker quanto com LXC puro:

sysdig-1

Perceba que o Kernel envia para o Sysdig todas as informações que foram processadas por ele, seja de acesso à memória, disco, rede, processador etc. e, com base nisso, o Sysdig consegue mapear qual processo está vinculado a qual arquivo, ou quanto de tráfego está sendo gerado por um container.

Veja abaixo o exemplo de alguns comandos que podem ser muito úteis (existe um lista bem grande disponível, vamos colocar aqui apenas os essenciais e extremamente úteis para fazer um troubleshooting em seu ambiente Docker):

Listagem dos containters existentes:

sysdig -c lscontainers

Top por containers que mais utilizam CPU:

sysdig -c topcontainers_cpu

Você ainda visualiza quais processos estão consumindo mais recursos dentro de cada container:

sysdig -pc -c topprocs_cpu

O retorno desse comando será algo parecido com este gif:

gifVocê pode ainda filtrar a saída do comando pelo nome de seu container:

sysdig -pc -c topprocs_cpu container.name contains wordpress

Quer ver quanto de rede um container está utilizando?

sysdig -pc -c topcontainers_net

E qual processo dentro de cada container está utilizando mais rede?

sysdig -pc -c topprocs_net

Quais portas estão trafegando mais?

sysdig -pc -c topconns

Consigo filtrar por nome de container também?

sysdig -pc -c topconns container name=wordpress

Eu consigo saber quais containers estão utilizando mais I/O em meu host?

sysdig -c topcontainers_file

Consigo saber qual processo dentro do container está fazendo isso?

sysdig -pc -c topprocs_file

E quais arquivos realmente estão sendo mais lidos ou escritos?

sysdig -pc -c topfiles_bytes

Ufa, já é um começo, certo? Existem muitas outras opções disponíveis, como agregar logs de todos os containers em uma única visualização. Com o Sysdig, isso é simples de se fazer. Quer ver mais? Acesse a Wiki dele, ela é rica em informações: http://www.sysdig.org/wiki.