Plugin Docker

Plugin para la monitorización de estádisticas de Docker

Introducción

Ver. 230821
Este plugin sirve para monitorizar las estadísticas de un entorno Docker.
Tipo: plugin mixto

Matriz de compatibilidad

Este plugin se ha desarrollado utilizando Docker versión 18.03.1-ce, build 9ee9f40

Pre requisitos

Se requiere conexión con el servicio Tentacle asociado a su servidor de Pandora FMS (para
ejecuciones locales del plugin) bajo las siguientes condiciones:

Configuración

Configuraciones generales del plug-in

## Launch a pre-command before invoke docker commands
#pre_command = eval $(docker-machine env ml1)
docker = docker

## Log file
log_file = /tmp/pandora_docker.log

pre_command
Configura un comando de precarga de entorno previa ejecución de los comandos
para extraer información. Defina el siguiente contenido si utiliza ​docker_machine​:

pre_command = eval $(docker-machine env nombre_de_nodo)

docker
Ubicación del binario docker completa, si existe en el PATH de sistema puede dejar
el valor por defecto ​‘docker​

log_file
Ubicación y nombre del fichero de log que utilizará el plugin

Configuración general

## Agent configuration
#agent_name = My Docker agent # hostname by default
agent_interval = 300 
agent_group = Docker

## Module interval
module_interval = 1
#module_tags = docker,stats
module_group = Docker

## Per container metrics, creates one agent per container.
metrics_per_container = 1

## Prefix for agent names per container by default "Docker"
metrics_per_container_prefix = Docker

## Plugin work mode, .by default as agent plugin
as_server_plugin = 0

agent_interval
Establece el valor del intervalo del agente.

agent_group
Establece el grupo de los agentes y las vistas de clúster que se crearán en Pandora
FMS Console.

module_interval
Es un factor multiplicativo del valor del intervalo del agente. Define el intervalo de
ejecución de los módulos. Evitará que los módulos se vayan a desconocido si tenemos que
el intervalo de ejecución del plugin es mayor que el del agente.

module_tags
Define la lista de etiquetas que se aplicarán a los módulos generados por el plugin.
Deben estar previamente definidos en Pandora FMS.

module_group
Define el grupo de módulos en el que se clasificarán los módulos generados por el
plugin. Debe estar previamente definido en Pandora FMS.

metrics_per_container

Indica que queremos métricas por cada contenedor por lo que genera un agente por contenedor con sus métricas independientes. Si se habilita este parametro se generan varios agentes por lo que el plugin no puede ejecutarse como plugin de agente, al habilitarlo el plugin cambia su modo a plugin de servidor.

metrics_per_container_prefix

Prefijo para los nombres de los agentes de cada contenedor, por defecto "Docker".

as_server_plugin

Cambia el tipo de plugin a plugin de servidor.

Modos de ejecución y transferencia de datos

## Pandora Server configuration, Only neede if as_server_plugin is enabled
mode = local
temp = /tmp

## local config
local_folder = /var/spool/pandora/data_in

## tentacle config -- only if mode = tentacle
tentacle_ip = test.artica.es
tentacle_port = 41121
tentacle_opts = 
tentacle_client = tentacle_client

mode
Modo de transferencia de ficheros XML, puede ser:
local: copia los ficheros a ​local_folder
tentacle: transfiere los ficheros a ​tentacle_ip​ por ​tentacle_port

temp
Ubicación temporal donde almacenar los archivos antes de enviarlos.

local_folder
Ubicación donde mover los archivos en el modo ​local.

tentacle_ip
Dirección IP o FQDN donde Pandora FMS está trabajando.

tentacle_port
Puerto donde el servicio Tentacle asociado a su servidor Pandora FMS está
escuchando.

tentacle_opts
Opciones extra para el cliente Tentacle.

tentacle_client
Path donde encontrar el binario del cliente tentacle.

Ejecución manual

Para ejecutar el plugin configure el archivo de configuración según las instrucciones
precedentes. 

./docker_stats.64 docker_stats.conf

Al ejecutar el plugin con el parámetro as_server_plugin habilitado en el terminal, el resultado debe ser así:

image-1629789823421.png

Al ejecutarlo sin as_server_plugin, es decir, como plugin de agente, nos devolverá un XML:

image-1629789931044.png

 



Ejecución programada

Se puede ejecutar como plugin de servidor, como ​module_plugin​ en un agente, o desde el cron de sistema.

Módulos generados por el plugin

Si no esta definido el parametro metrics_per_container solo genera un agente con las estadisticas generales de docker de la maquina.

En caso de estar habilitado, se genera un agente por contenedor, con las estadisticas especificas de ese contenedor, y además un agente con las estadisticas generales del nodo.

 

Docker blocks in 

Escritura del disco de Docker
Docker blocks out  Lectura del disco de Docker
Docker cpu usage Uso de CPU de Docker
Docker memory usage Uso de memoria RAM de Docker
Docker network input Tráfico de entrada de Docker
Docker network output Tráfico de salida de Docker

image-1629718288894.png

image-1629718299652.png