Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Descubrimiento automático de contenedores para integración en el host

Nuestra característica de descubrimiento automático de contenedores le permite configurar una integración para monitor automáticamente los servicios que se ejecutan en múltiples contenedores. En el archivo de configuración de una integración, puede establecer los criterios de coincidencia del contenedor y el agente ejecuta la integración para cada contenedor local que coincida con los criterios.

Una integración se ejecutará tantas veces como encuentre elementos de descubrimiento. Si el descubrimiento no encuentra ningún contenedor, la integración no se ejecutará.

Sugerencia

Actualmente, el agente de infraestructura puede descubrir el contenedor docker local.

Añade marcador de posición a tu configuración

En tu configuración de integración, debes crear ${discovery.<property>} marcador de posición. Luego, estos serán reemplazados automáticamente por información específica del contenedor.

Estos ejemplos (para entornos solo docker y para Kubernetes) muestran cómo configurar una integración NGINX para monitor todos los contenedores locales que tienen un nombre de imagen que contiene nginx y que están etiquetados como env=production. Cada servicio estará disponible a través de diferentes IP y puertos, por lo que deben ser variables.

Agregar propiedades de descubrimiento

Para configurar el descubrimiento, configure una entrada discovery en su configuración de integración YAML usando las siguientes propiedades. Un contenedor coincidirá cuando all las propiedades coincidan con los valores definidos.

Sugerencia

Los valores de las propiedades coincidirán con un exact string, a menos que el valor a coincidir esté establecido entre /.../. Los contenidos dentro de las barras se compararán como expresiones regulares.

Nombre de la clave de descubrimiento

Descripción

ttl

Tipo: String

Tiempo de vida de los resultados de descubrimiento almacenados en caché, utilizado para minimizar la cantidad de procesos de descubrimiento. Defina como un número seguido de una unidad de tiempo (s, m o h).

Ejemplos: 30s, 10m, 1h, 0

Predeterminado: 1m

docker

Tipo: propiedades YAML

Definición coincidente del contenedor docker . Consiste en una propiedad match que contiene un mapa donde:

  • Cada clave es cualquiera de las siguientes propiedades.

  • El valor es el valor esperado de la propiedad dada para el contenedor devuelto.

  • Un contenedor coincide si todas las propiedades coinciden (operación AND).

    Las claves YAML disponibles incluyen:

  • ip: Dirección IP externa del contenedor, si la hubiera

  • private.ip: Dirección IP privada del contenedor

  • port: Número de puerto externo del contenedor

  • private.port: Número de puerto privado del contenedor

  • image: Nombre de la imágen

  • name: Nombre del contenedor

  • label.<label name>: Cualquier etiqueta de contenedor, accesible por su nombre.

Ejemplo de descubrimiento

El siguiente ejemplo coincide con todos los contenedores docker cuya imagen comienza con httpd: (proporcionada como una expresión regular) y está etiquetada como scrapable=yes. Los resultados se almacenan en caché con un tiempo de vida de 5 minutos.

discovery:
ttl: 5m
docker:
match:
image: /^httpd:/
label.scrapable: yes

Información de contenedores disponibles

Nuestra característica de descubrimiento actualmente emite las siguientes variables, que pueden usarse para configurar su integración. El agente de infraestructura los reemplaza por los valores correspondientes del contenedor descubierto.

Importante

Asegúrese de agregar el prefijo discovery. .

Variable

Descripción

${discovery.ip}

Dirección IP pública del contenedor, si la hubiera

${discovery.private.ip}

Dirección IP privada del contenedor

${discovery.port}

Número de puerto público del contenedor

${discovery.private.port}

Número de puerto privado del contenedor

${discovery.image}

Nombre de la imágen

${discovery.name}

Nombre del contenedor

${discovery.label.<label name>}

Cualquier etiqueta de contenedor, accesible por su nombre.

Mapeo múltiples puertos

Cuando un contenedor expone muchos puertos públicos o privados, se puede acceder a ellos a través de discovery.private.ports. o discovery.ports. seguido de un índice que comienza en 0. Los puertos se indexan del valor de puerto privado más bajo al más alto.

Por ejemplo, un contenedor que expone los puertos privados 80 y 443 a través de los puertos públicos 2345 y 1111, respectivamente, proporcionaría las siguientes variables con sus respectivos valores:

Variable

Valor

${discovery.private.ports.0}

80 (el puerto privado más bajo)

${discovery.private.ports.1}

443 (el puerto privado más alto)

${discovery.ports.0}

2345 (el puerto público mapeo al puerto privado 0)

${discovery.ports.1}

1111 (el mapeo del puerto público al puerto privado 1)

${discovery.private.port}

80 (igual que ${discovery.private.ports.0})

${discovery.port}

2345 (igual que ${discovery.ports.0})

Importante

Observe que la palabra port es singular en las variables no indexadas y plural en las variables indexadas.

Puertos mapeo por nombre de protocolo

Además de la indexación de la sección anterior, también se puede hacer referencia a los puertos por su nombre de protocolo (como tcp, udp, etc.). Por ejemplo, ${discovery.ports.tcp} o ${discovery.ports.udp}.

Si varios puertos coinciden con el mismo protocolo, también se pueden indexar según las reglas de la sección anterior: ${discovery.ports.tcp.0}, ${discovery.ports.tcp.1}, etc.