Checkmk
to checkmk.com
Tip

The functionality presented here is a technical preview, i.e. a preview of a new feature that will be subject to development and expansion until further notice. During this phase, it is possible that functionality will not only be added, but also modified in such a way that existing configurations will become obsolete and you will have to recreate them. We ask for your understanding in this matter.

Important

This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved.

Tip

La funcionalidad que se presenta aquí es una vista previa técnica, es decir, un avance de una nueva función que estará sujeta a desarrollo y ampliación hasta nuevo aviso. Durante esta fase, es posible que no solo se añadan funciones, sino que también se modifiquen de tal manera que las configuraciones existentes queden obsoletas y tengas que volver a crearlas. Te pedimos tu comprensión al respecto.

1. Introducción

CEE A partir de Checkmk 2.4.0, puedes recibir métricas de OpenTelemetry en CSE Checkmk Ultimate y procesarlas en la monitorización. Para ello, Checkmk incluye un colector de OpenTelemetry. Este colector admite los protocolos de transporte gRPC y HTTP(S) como destinatarios en una configuración push. Como scraper, también puede recopilar datos de los endpoints de Prometheus (en una configuración pull).

A partir de los servicios de OpenTelemetry identificados, se pueden crear hosts automáticamente mediante la administración dinámica del host. A continuación, un agente especial asigna a estos hosts métricas de OpenTelemetry como servicios de Checkmk.

En resumen: tres componentes (recopilador, administración dinámica del host y agente especial) deben interactuar antes de que se puedan descubrir los servicios y generar las métricas. Por lo tanto, debes configurar primero estos tres componentes y activar los cambios pendientes solo al final.

Tip

Este artículo describe el estado de la integración de OpenTelemetry en el momento del lanzamiento de Checkmk 2.4.0 p10. Seguimos trabajando para incorporar los cambios posteriores de las patch releases. Algunas de las limitaciones descritas ya se han solucionado y se han añadido funciones solicitadas con frecuencia. Consulta los Werks relacionados con OpenTelemetry para conocer el estado actual de la versión de Checkmk que estás utilizando.

2. Configuración

2.1. Activación del colector de OpenTelemetry

Primero, debes activar el colector cuando el sitio esté detenido. Esto se puede hacer como usuario del site en la línea de comandos utilizando omd config en el menú de configuración basado en texto:

OMD[mysite]:~$ omd config
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!

Ve a Addons y activa OPENTELEMETRY_COLLECTOR:

 ┌──────────────────────────Addons─────────────────────────────
  ┌─────────────────────────────────────────────────────────  
 MKEVENTD                                      on        
 MKEVENTD_SNMPTRAP                             off       
 MKEVENTD_SYSLOG                               off       
 MKEVENTD_SYSLOG_TCP                           off       
 OPENTELEMETRY_COLLECTOR                       on        
 OPENTELEMETRY_COLLECTOR_SELF_MONITORING_PORT  14317     
 TRACE_RECEIVE                                 off       
 TRACE_SEND                                    off       
                                                            
 ─────────────────────────────────────────────────────────┘  
 ├─────────────────────────────────────────────────────────────  
                < Change  >        <Main menu>                │  
 ─────────────────────────────────────────────────────────────┘  
                                                                  

No es necesario cambiar el puerto para la monitorización del colector, ya que está configurado en el siguiente puerto libre a partir del 14317, incluso si se utilizan varios sites.

Después de activar el colector, reinicia el site con omd start.

2.2. Configuración del colector de OpenTelemetry

Ve a Setup > Hosts > OpenTelemetry collector (experimental) y empieza a configurar un nuevo colector haciendo clic en el botón «Add OpenTelemetry collector configuration»:

“The general properties of the OpenTelemetry collector.”

En General properties, asigna un ID y un título al nuevo colector. Para Site restriction, debes mover al menos una entrada de la izquierda a la derecha. En la captura de pantalla anterior, el site local mysite es el único disponible.

“The specific properties of the OpenTelemetry collector.”

Configuración básica

Presta atención a los siguientes puntos en las propiedades del colector:

  • Debes configurar al menos uno de los dos puntos finales push (vía gRPC o HTTP) o un scraper de Prometheus (pull). La captura de pantalla muestra un endpoint gRPC sin cifrar y sin autenticación en el puerto predeterminado 4317 en todas las direcciones IPv4 (0.0.0.0).

  • Crea al menos un campo para Host name computation. En el ejemplo, se ha seleccionado la opción más sencilla: el campo «service.name» recibido a través de OpenTelemetry se utiliza como nombre del host en Checkmk. En la ayuda en línea, puedes encontrar más información sobre las opciones para crear nombres del host a partir de datos de OpenTelemetry.

Tip

Si quieres crear nombres del host más complejos, guarda la configuración del colector y activa los cambios sin añadir una regla para Host name computation. A continuación, asegúrate de que las métricas se envían al colector. Si ahora añades reglas para Host name computation, se mostrarán sugerencias de los campos disponibles.

Envío de registros a la Consola de eventos

OpenTelemetry también ofrece opciones para transferir mensajes de registro. El colector se puede configurar para transferirlos en formato syslog a través de TCP a cualquier aplicación que pueda recibir mensajes syslog. En el contexto de Checkmk, resulta interesante el procesamiento de los mensajes de registro por parte de la Consola de eventos. Puedes activar esta función con la checkbox «Send log messages to event console».

Tip

Asegúrate de que OpenTelemetry Instrumentation ya garantiza que los mensajes de registro se envían con moderación. Si no tienes claro qué llega al servidor Checkmk, activa temporalmente un colector local que escuche en el puerto 514/TCP. Esto te dará una idea de los volúmenes de datos entrantes antes de proceder a activar la Consola de eventos.

Utiliza Save para guardar el colector.

2.3. Configuración de la administración dinámica del host

Para garantizar que los hosts se creen automáticamente, configura una nueva conexión OpenTelemetry con la administración dinámica del host. Como preparación —al menos para las primeras pruebas— te recomendamos crear una carpeta separada en la que guardes los hosts de OpenTelemetry generados automáticamente.

Para configurar la nueva conexión para la administración dinámica del host, ve a Setup > Hosts > Dynamic host management > Add connection:

Properties of an OpenTelemetry connection in the dynamic host management.

Realiza los siguientes ajustes en la caja Connection properties:

  • Establece Connector type en OpenTelemetry collector data.

  • La carpeta OpenTelemetryTest se utiliza como carpeta de destino para los nuevos hosts (Create hosts in) en el ejemplo.

  • Configura Host attributes según tu entorno de sistema.
    A menos que te hayas tomado la molestia de crear nombres de hosts existentes al configurar el colector de OpenTelemetry, los hosts creados automáticamente serán hosts virtuales que solo se utilizan en el contexto de OpenTelemetry. Por lo tanto, solo puedes utilizar agentes especiales como agentes de monitorización (Configured API integrations, no Checkmk agent) y dejar la configuración de las direcciones IP en No IP.

  • Al activar la checkbox en Service discovery, especificas que el descubrimiento de servicios se realizará en los hosts generados automáticamente. Esto da el resultado deseado si el agente especial para OpenTelemetry se ha configurado y está activo.

  • Para los demás parámetros, puedes encontrar más información en el artículo sobre administración dinámica del host.

Completa la nueva conexión con Save.

2.4. Configuración del agente especial

Para garantizar que también se generen los servicios de Checkmk, debes crear al menos una configuración del agente especial de OpenTelemetry. La regla necesaria se encuentra en «Setup > Agents > Other integrations > OpenTelemetry (experimental):»

The rule for configuring the OpenTelemetry special agent.

En la caja «OpenTelemetry (experimental)», decide si quieres realizar la monitorización del propio colector de OpenTelemetry —a través del puerto que se mostró durante la activación del colector—.

En la condición de la regla, es obvio asignar el agente especial a la carpeta en la que se crearán automáticamente los hosts; en el ejemplo, esta es la carpeta «OpenTelemetryTest».

Guarda la regla con el nombre «Save».

Ahora que los tres componentes —el colector, la administración dinámica del host y el agente especial— están configurados, debes activar los cambios pendientes.

2.5. Envío de datos de prueba al colector

Probablemente querrás configurar el colector de OpenTelemetry para Checkmk porque en algún lugar de tu entorno de TI ya hay algo generando métricas de OpenTelemetry.

Si aún no es así, o si quieres probar rápidamente la configuración de ejemplo descrita en este artículo, puedes hacerlo con la aplicación de ejemplo «Hello metric» que encontrarás en nuestro repositorio de GitHub, la cual se ejecuta en un entorno virtual de Python.

Tarda unos dos o tres minutos desde que se envían los primeros datos, se crea el host y se detecta el servicio, hasta que este aparece en la monitorización. La siguiente imagen muestra los servicios de la aplicación de ejemplo «Hello metric»:

The OpenTelemetry service created with the 'Hello metric' sample application.

El nombre del host hello-metric se genera a partir del nombre del servicio indicado como opción en el comando opentelemetry-instrument, exactamente como se especifica en la configuración del colector de OpenTelemetry. El nombre del servicio OTel metric hellolevel en Checkmk se genera a partir del nombre de la métrica, con el prefijo OTel metric añadido por el agente especial.

Si activas la opción Monitor the collector en la configuración del agente especial, es decir, la monitorización del colector, se crearán varios servicios adicionales en el host,

La aplicación de ejemplo «Dice Roll» que se presenta en el sitio web de OpenTelemetry funciona de manera muy similar a «Hello metric». Esta aplicación de ejemplo es, en muchos aspectos, más práctica que «Hello metric». Por ejemplo, «Dice Roll» envía métricas de OpenTelemetry cada vez que se llama al servidor de la aplicación (¡y solo entonces!) e introduce el tipo de datos «Contador». Puedes utilizar el entorno virtual de Python creado para el ejemplo «Hello metric» para probar también el ejemplo «Dice Roll». Sin embargo, también tendrás que instalar el módulo de Python flask (pip install flask) y crear el archivo app.py en la versión ampliada con métricas, tal y como se describe en estas instrucciones.

En la siguiente llamada, sustituye el servidor Checkmk como destino (aquí 198.51.100.42 con el puerto gRPC 4317):

user@host:~$ opentelemetry-instrument \
    --traces_exporter console \
    --metrics_exporter otlp \
    --exporter_otlp_metrics_endpoint http://198.51.100.42:4317 \
    --logs_exporter console \
    --service_name dice-server \
    flask run -p 8080
Copiar comando(s) al portapapeles
¡Comandos copiados correctamente al portapapeles!
¡Se ha denegado el acceso de escritura al portapapeles!
Tip

Se ha eliminado la restricción de un solo punto de datos que se aplicaba hasta Checkmk 2.4.0 p3. El Werk #18209 describe cómo se generan los nombres de métricas de Checkmk para métricas de OpenTelemetry con múltiples puntos de datos.

Tu servidor Flask ya está listo y puedes acceder a él en el puerto seleccionado (aquí: 8080) para lanzar un dado con cada llamada. Puedes ver los datos del dado, por ejemplo, como salida de curl -v http://localhost:8080/rolldice. Cada lanzamiento de dado que activas de esta manera se transmite a Checkmk como un punto de datos.

Al cabo de unos minutos, el host dice-server aparecerá en la monitorización con el servicio OTel metric dice.rolls. Este tiene seis gráficos, de Value_1__Per_Sec a Value_6__Per_Sec, que corresponden a las frecuencias de los números del uno al seis obtenidos hasta el momento. El motivo de la conversión es que las métricas de OpenTelemetry utilizan contadores, que solo pueden incrementarse —un tipo de datos que no está previsto en Checkmk. Para una visualización más clara, Checkmk realiza por tanto la conversión teniendo en cuenta el componente temporal.

La captura de pantalla muestra uno de estos gráficos, que se basa en las llamadas una vez por segundo a /rolldice dentro del periodo de monitorización.

“Graph showing the rate at which the number 5 is rolled.”
Las métricas de OpenTelemetry utilizan uno o dos guiones bajos, y las unidades se añaden al nombre de la métrica si se proporcionan (aquí: por seg, es decir, por segundo).

2.6. Personalización de servicios

Puedes establecer umbrales y otras opciones para los servicios utilizando la regla Setup > Services > Service monitoring rules > OpenTelemetry (experimental). Aquí puedes establecer reglas para métricas individuales o para todas las métricas de un servicio. La captura de pantalla de ejemplo muestra la selección del contador para throws con el número 5, como se muestra arriba. Se puede acceder a los nombres de las métricas conocidas a través de la lista o como sugerencias mientras escribes. Puedes introducir métricas que aún no se conocen pero que sabes que aparecerán como texto libre.

Dependiendo del tipo de datos que proporcione el punto de datos de OpenTelemetry, puede ser útil calcular tasas. Esto resulta útil para contadores, como por ejemplo para paquetes de red descartados. Si varias fuentes proporcionan datos asignados al mismo servicio de Checkmk, también puedes especificar si se debe realizar una agregación (por ejemplo, suma o promedio) o si simplemente deben tener prioridad los puntos de datos más recientes, más grandes o más pequeños de un intervalo.

“Setting the service rules.”

3. Archivos y directorios

Ruta del archivo Descripción

~/var/check_mk/otel_collector/host_monitoring/

Aquí es donde se crean los datos de OpenTelemetry. Se crea un subdirectorio para cada host. Los archivos que se crean allí están en formato JSON.

~/var/log/otel-collector.log

Archivo de registro del recopilador de OpenTelemetry

~/tmp/check_mk/otel_collector/self+monitoring/

Directorio temporal en el que se almacenan los datos agregados del colector para que los evalúe el agente especial.

~/tmp/check_mk/otel_collector/autocompleter/

Directorio temporal donde se almacenan los archivos que necesita la función de sugerencias (entradas de la lista y sugerencias al escribir).


Last modified: Wed, 07 Jan 2026 17:04:45 GMT via commit 92ab41519
En esta página