Monitorando containers Docker no Zabbix

    Dockbix é uma solução para ser implementada junto a ferramenta Zabbix de monitoramento. Dockbix permite monitorar containers em Docker e gerar gráficos e métricas a partir disso. Trata-se de um container que monitora outros containers.

    Containers monitorados pelo Dockbix container

    Dockbix está presente no dockerhub em duas versões: a gratuita com algumas limitações e a paga, sendo esta última mais completa.

    Aqui vai uma lista de prós e contras da versão Freeware (limitada):

    Prós:

    • Integração com vários templates do Zabbix;
    • Métricas e gráficos por container;
    • Integração com Grafana;
    • Consome pouquíssimo recurso da máquina.

    Contras:

    • Solução Freeware com algumas limitações;
    • Não permite atachar ao container para executar um shell;
    • Não suporta parâmetro restart always, o que torna a ferramenta manual em sua implementação e manutenção.

    A implementação deve ser feita conforme a orientação disponibilizada no dockerhub. Segue o link: Dockbix

    Como sugestão corretiva a uma limitação da versão Freeware disponibilizamos um script para que você possa automatizar a execução do container do Dockbix. Trata-se de um script a ser inserido na crontab de seu sistema Linux para que periodicamente este possa verificar se o Dockbix está de pé. Caso não esteja de pé o mesmo será iniciado.

    #!/bin/bash
    CONTAINER=dockbix-agent-xxl
    RUNNING=$(docker inspect --format="" $CONTAINER)
    
    if [ "$RUNNING" == true ]; then
    	echo "$CONTAINER is running!!!"
    	exit 0
    else
    	echo "$CONTAINER is not running. Starting container now!!!"
    	docker stop dockbix-agent-xxl
            docker rm dockbix-agent-xxl
    	docker run --name=dockbix-agent-xxl -p 10050:10050  
    	--privileged -v /:/rootfs -v /var/run:/var/run  
    	-e "ZA_Server=IP_address" -e "ZA_ServerActive=IP_address"  
    	-d monitoringartist/dockbix-agent-xxl-limited:latest
            exit 0
    fi	
    

    O script acima apresenta o seguinte modo de ação:
    Verificar se o container de nome “dockbix-agent-xxl” está em execução. Isto é feito através da inspeção do estado do container. O comando de inspeção “docker inspect” é armazenado numa variável chamada RUNNING que será testada logo a frente. Caso a varirável RUNNING apresente o conteúdo verdadeiro (true), então consta que o container do Dockbix está de pé. Caso contrário segue-se para o próximo estágio da instrução que é quando o Dockbix é iniciado.