Na última quarta-feira (17/08) aconteceu o DevOps & Tests Hack Nights uma iniciativa do Angelo Belchior, Renato Groff e Joel Rodrigues, e eu marquei presença palestrando sobre Monitoramento de Containers. Nesse post quero compartilhar um pouco do que mostrei na minha palestra.
Não vou entrar em detalhes aqui, mas a palestra foi gravada e você pode conferir o vídeo no final desse post. Agora se você não conhece nadinha de Docker recomendo à você, antes de prosseguir, conferir o blog da Lambda3que tem um monte de artigos bem legais sobre Docker.
Monitorando containers
Rodar um container é fácil, mante-lo rodando que é a parte difícil.
A premissa básica do desenvolvimento de software é que em algum momento algo vai dar errada, cedo ou tarde algo não irá funcionar corretamente e você terá mergulhar na longa empreitada de debugar e descobrir o que está acontecendo. Quem nunca! Agora, uma abordagem que pode te ajudar e salvar horas de trabalho é fazer o monitoramento da sua aplicação.
Monitoramento da a você a visibilidade sobre sua infraestrutura e aplicação. Não vá para produção sem instrumentação e/ou monitoramento.
Para começar a monitorar os seus containers, pode pode usar as tools que apresento abaixo, também falei sobre elas na palestra. Todas são muito simples de usar, sinta-se à vontade para escolher o que preferir 🙂
1. Docker Stats — A base de tudo
O Docker possui uma API para você saber como está a saúde de um container, basta você digitar o comando abaixo para ver um pequeno resumo sobre o consumo dos containers. Essa API também é a base para outras ferramentas de monitoramento.
$ docker stats
O resultado deverá ser algo parecido com isso:
2. cAdvisor — A solução simples
Criado pelo Google para monitorar containers o cAdvisor é um projeto open-source, que coleta dados dos seus containers e exibe em uma página HTML com alguns gráficos. O Google já usa o cAdisor faz alguns anos para monitorar seus próprios containers.
Existe uma imagem no Docker Hub, fazendo com que seu uso seja simples como rodar qualquer outro container, você pode usar o comando abaixo para iniciar o monitoramento:
$ sudo docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ google/cadvisor:latest
3- cAdvisor + InfluxDB + Grafana — O combo bem elaborado
Conheci essas ferramentas na palestra do Brian Christner na Docker Con EU, nela ele explica como criar um dashboard onde as informações do cAdvisor são enviadas para o InfluxDB e consumidas pelo Grafana.
O InfluxDB é um banco dedicado para armazenar dados em séries temporais, já o Grafana é um projeto open-source para montar dashboards. Você pode ver a palestra no vídeo abaixo.
Se você se interessou pelo assunto não deixe de conferir os slides e a gravação da palestra.
O que vocês acharam? Vocês monitoram seus containers? Não deixem de comentar!
PS: Você pode acompanhar meu posts no medium e também no twitter.
PS2: Não deixem de conferir o blog do meu parceiro Nicolas Takashi http://ntakashi.net/ ele também marcou presença no Devops Tests Hack Nights.
Abraços, até a próxima.
José Barbosa