Monitorando o Docker do Centreon
Poço, Acho que todos vocês estão ficando como cogumelos Docker containers, Não? Se até um dinossauro como eu tem uma praga deles… Poço, e, além de apreciá-los, se usarmos o Centreon como um sistema de monitoramento para nossa organização, Nós já sabemos, para monitorá-los!
Comencemos de nuevo alabando al script 'centreon_plugins.pl’ que vimos en posts anteriores y sirve para casi todo lo que podamos necesitar. En este caso y gracias a la API de Docker podremos usarlo para conocer la salud de sus contenedores, donde además podremos conocer granularmente el uso de CPU, Memória, IOPS lectura/escritura y tráfico de las interfaces de red. Entre otros, ya que también podremos conocer la salud del nodo de Docker o de sus servicios.
Em primeiro lugar, en cada máquina con Docker, habilitamos el acceso por API a Docker, editaremos '/lib/systemd/system/docker.service’ y modificaremos la siguiente línea:
#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:4444
Reiniciamos los servicios y después verificamos que la API responde, el puerto el que queramos, sería interesante habilitar algún token o cifrar el canal:
sudo systemctl daemon-reload sudo systemctl restart docker curl -X GET http://Anfitrião local:4444/images/json
Ahora ya sí, desde nuestro Centreon podríamos empezar a jugar con 'centreon_plugins.pl', lo primero ver la ayuda y los modos que tenemos, Correr:
perl /usr/lib/centreon/plugins/centreon-plugins/centreon_plugins.pl --plugin=cloud::docker::Restapi::plugin --list-mode Modes Available: container-usage list-containers node-status service-status
Próximo, necesitaremos listar los IDs de los contenedores y los anotaremos, para luego monitorizar individualmente cada contenedor:
perl /usr/lib/centreon/plugins/centreon-plugins/centreon_plugins.pl --plugin=cloud::docker::Restapi::plugin --mode=list-containers --hostname=DIRECCION_IP --port=PUERTO
y con poquito más, vamos a crear 2 Comandos, necesitaremos uno para conocer el uso de los recursos de cada contenedor y otro Comando para conocer la salud del Nodo Docker, o si tenemos Servicios de Docker, pues otro tercer comando. Quedando:
- Nombre del comando: 'centreon_plugins-docker_container-usage’
- Línea de comandos: perl $CENTREONPLUGINS$/centreon-plugins/centreon_plugins.pl –plugin=cloud::docker::Restapi::Plug-in –mode=container-usage –hostname=$HOSTADDRESS$ –port=$ARG 1$ –container-id=$ARG 2$ –warning-cpu=$ARG 3$ –critical-cpu=$ARG 4$ –critical-container-status='%{estado} !~ /running/’
- Argumentos: Serán ARG1 el Puerto de la API, el ARG2 el ID del contenedor, el ARG3 y ARG4 para alertarnos de uso de CPU, Warning y Critical respectivamente, podemos meter más argumentos para la memoria, iops, líquida…
- Nombre del comando: 'centreon_plugins-docker_node-status’
- Línea de comandos: perl $CENTREONPLUGINS$/centreon-plugins/centreon_plugins.pl –plugin=cloud::docker::Restapi::Plug-in –mode=node-status –hostname=$HOSTADDRESS$ –port=$ARG 1$
- Argumentos: ARG1 el puerto de la API de Docker.
Criaremos tantos serviços quantos forem os contentores que tivermos para controlar os seus recursos, assim como os nós de Docker que tivermos e soubermos a sua saúde. Estes serviços serão associados a um Host que criaremos com base numa template de Linux, assim ao nó também iremos obter os seus recursos. Poço, pois preenchermos os nomes de cada Serviço, os seus argumentos…
E como sempre, se fizermos bem, após gravar e exportar a configuração do Centreon, teremos tudo num instante! Todos os contentores monitorizados, ninguém consumirá mais do que deve, além de ter monitorização e controlo dos seus recursos, assim como a saúde dos nós de Docker.
Espero que vos seja interessante, E se não, desculpem 😉 bem, a intenção está lá, tentem monitorizar tudo o que conseguirem! Os mando un abrazo y que seáis muy felices!











































