Troubleshooting docker

Preview:

Citation preview

TroubleshootingDocker

Infradel Team

Quem somos

Infradel:● Objetivo: Consultoria para migração de projetos

do modelo centralizado para cloud, com automação e auto-serviço.

● Membros:○ Rafael Gomes (PoA - Brasil)○ Rafael Nunes (PoA - Brasil)○ Augusto Amaral (PoA - Brasil)○ Fernando Laimer (PoA - Brasil)○ Ronak Jain (Belo Horizonte - Brasil)○ Chris Briesemeister ( Chicago - EUA)○ Ben Cornelius ( Chicago - EUA)○ Freddy Coronel ( Quito - Equador)

● Principais tecnologias○ Cloud (AWS)○ Automação de infra (Ansible, Cloudformation)○ Testes de infraestrutura (ServerSpec, Behave)○ Container (Docker)○ Programação (Python e Ruby)

Quem sou eu

Rafael Gomes:● Soteropolitano● Apaixonado por compartilhamento● Consultor na Thoughtworks● Blog: techfree.com.br● Twitter/github: @gomex● Áreas de interesse/foco:

○ Cultura DevOps○ Cloud○ Entrega contínua○ Automação de infraestrutura○ Teste de infraestrutura○ Monitoramento

O que estou fazendo de relevante agora

Livro:

http://tinyurl.com/docker-devel

● Pague quanto quiser, inclusive nada

● Não precisa saber nada de Docker

● Licenciado com Creative Commons

Conhece docker?Container, baleia, isso faz algum sentido pra ti?

https://telegram.me/dockerbr

Motivações

● Precisamos ter uma visão

do todo

● Precisamos da possibilidade de uma analise aprofundada

Troubleshootings

Motivações:● Analisar problema no

contexto de containers é diferente

● Precisamos ter visibilidade sobre o que acontece no container e qual seu nome

Comandos básicos

Visualizando os containers

container1

# docker ps

container2

container3

Visualizando os containers

container1

# docker logs container3

container2

container3

dados da console do container

Visualizando os containers

container1

# docker stats container3

container2

container3

Monitoria de uso dos recursos

Analisando mais..

Conhece?Deveria conhecer… "Capitão planeta" dos sysadmins

Usando sysdig

Não precisa instalar nada

docker run -it --rm --name=sysdig --privileged=true \--volume=/var/run/docker.sock:/host/var/run/docker.sock \--volume=/dev:/host/dev \--volume=/proc:/host/proc:ro \--volume=/boot:/host/boot:ro \--volume=/lib/modules:/host/lib/modules:ro \--volume=/usr:/host/usr:ro \sysdig/sysdig

Consumo de processamento

container1

sysdig -pc -c topprocs_cpucontainer2

container3

Processos na rede

container1

sysdig -pc -c topprocs_netcontainer2

container3

Conexões de rede

container1

sysdig -pc -c topconnscontainer2

container3

Analisar tráfego de rede

container1

sysdig -A -cecho_fds container.name=container3

and fd.port=80 container2

container3

Atividade no disco

container1

sysdig -pc -c topprocs_filecontainer2

container3

Atividade no disco por arquivo

container1

sysdig -pc -c topfiles_bytescontainer2

container3

Segurança! Comandos digitados

container1

sysdig -pc -c spy_userscontainer2

container3

Segurança! Logs!

container1

sysdig -pc -cspy_logscontainer2

container3

Segurança! Logs específicos

container1

sysdig -pc -cspy_logs container.name=container3

container2

container3

Caminho de um troubleshooting

logcontainer

containers

statscontainer

Top processos

Top processos - Rede Atividade no diso

Segurança

Causa raiz

Dúvidas?

Rafael Gomes:

twitter.com/gomex

rgomes@thoughtworks.com

techfree.com.br

slideshare.net/linux.rafa

Obrigado!