Monitorando automaticamente o Docker com Zabbix

Standard

Docker é uma ferramenta perfeita para criar automaticamente ambientes para novos serviços. Esse processo de criação é muito fácil e em alguns casos é feita automaticamente por outra ferramenta ou script.

static1.squarespace.com

Monitore para evitar surpresas

Problemas podem acontecer e a equipe de TI precisa estar preparada para descobrir isso antes que cause indisponibilidade.

Problema

Como o time de monitoramento poderá acompanhar esse rápido processo de criação e manter todos esses ativos no sistema de monitoramento? Nos precisamos monitorar automaticamente todos os containers.

Solution

Eu desenvolvi alguns scripts para listar containers, adicionar eles no Zabbix usando a funcionalidade LLD e monitorar todos esses novos hosts.

Infelizmente nos precisamos de acesso especial para monitorar essas informações no Docker, por conta disso eu usei sudo e job cron do root.

Abaixo os itens monitorados por essa solução:

  • Porcentagem de CPU usado
  • Porcentagem de memória usada
  • Bytes enviados e recebidos por segundo
  • Pacotes enviados e recebidos
  • Pacotes enviados e recebidos, mas descartados
  • Pacotes enviados e recebidos com erros

Quer conhecer a solução antes de testar? Olhe esse vídeo!

Eu testei no seguinte ambiente:

  • python 2.7.9
  • docker 1.6
  • zabbix agent and server 2.4

Se você testar em um diferente, por favor me avise.

  • Consegui fazer o exemplo de monitoria, entretanto os scripts estavam com falha e o template do zabbix estava faltando a criação dos hosts via LLD, faltou explicar também que tem que configurar o agente do zabbix no host docker, no exemplo citado funcionou porque foi tudo feito na mesma máquina. https://github.com/euprogramador/zabbix-docker no meu github fiz as correções.