Checkmk
to checkmk.com
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.

1. Introducción

1.1. Antecedentes y motivación

Quizás te preguntes por qué deberías integrar Prometheus en Checkmk; por eso queremos hacer una aclaración importante en este punto: Nuestra integración de Prometheus está dirigida a todos nuestros usuarios que ya utilizan Prometheus. Al integrar Prometheus en Checkmk, podemos cerrar la brecha que se ha abierto aquí, de modo que no tengas que estar comprobando continuamente dos sistemas de monitorización.

Esto te permite correlacionar los datos de ambos sistemas, acelerar cualquier análisis de errores y, al mismo tiempo, facilitar la comunicación entre los usuarios de Checkmk y Prometheus. Así, Checkmk sigue siendo tu «panel único».

Por último, volvamos al contexto

Como ventaja adicional muy agradable de esta integración, es probable que tus métricas de Prometheus reciban automáticamente un contexto significativo gracias a Checkmk. Por ejemplo, aunque Prometheus te muestra correctamente la cantidad de memoria principal utilizada, no tienes que realizar ningún paso manual adicional en Checkmk para averiguar qué porcentaje del total de memoria disponible representa. Por muy trivial que pueda parecer este ejemplo, muestra en qué aspectos Checkmk facilita la monitorización, incluso en algunos de los detalles más pequeños.

1.2. Exportador o PromQL

La integración de los exportadores más importantes para Prometheus se realiza a través de un agente especial. Están disponibles los siguientes exportadores para Prometheus:

Si no ofrecemos el exportador que necesitas, los usuarios experimentados de Prometheus también tienen la opción de enviar consultas definidas por ellos mismos a Prometheus directamente a través de Checkmk. Esto se realiza utilizando el propio lenguaje de consulta de Prometheus, PromQL.

2. Configuración de la integración

2.1. Crear un host

Dado que el concepto de host simplemente no existe en Prometheus, primero crea un lugar donde se recopilen las métricas deseadas. Este host constituye el punto de contacto central para el agente especial, que posteriormente distribuye los datos recibidos a los hosts correspondientes en Checkmk. Para ello, crea un nuevo host utilizando Setup > Hosts > Hosts > Add host.

prometheus hostname

Si el servidor Checkmk no puede resolver el nombre del host especificado, introduce la dirección IP a través de la cual se puede acceder al servidor de Prometheus.

Configura todos los demás ajustes para tu entorno y confirma tu selección con Save & view folder.

2.2. Crear una regla para Prometheus

Antes de que Checkmk pueda encontrar métricas de Prometheus, primero debes configurar el agente especial utilizando el conjunto de reglas «Prometheus». Puedes encontrarlo en Setup > Agents > VM, cloud, container. Hay varias opciones para personalizar la conexión del frontend web de tu servidor Prometheus, independientemente del exportador que quieras utilizar.

  • URL server address: Especifica aquí la URL de tu servidor Prometheus, incluyendo todos los puertos necesarios. No incluyas el protocolo aquí, ya que se puede seleccionar más abajo.

  • Authentication: Si se requiere un inicio de sesión, introduce aquí los datos de acceso.

  • Protocol: Tras la instalación, el frontend web se proporciona a través de HTTP. Si has protegido el acceso con HTTPS, cambia el protocolo aquí según corresponda.

Puedes ver los valores por defecto en la siguiente captura de pantalla:

prometheus connection details

Integración mediante Node Exporter

Si, por ejemplo, ahora quieres integrar los componentes de hardware de un «Scrape Targets» de Prometheus, utiliza Node Exporter. Selecciona «Add new Scrape Target» y, en el menú desplegable que se abre, selecciona «Node Exporter»:

prometheus ruleset exporter

Aquí puedes seleccionar qué hardware o qué instancias de sistema operativo deben ser consultadas por Node Exporter. Siempre tienes la opción de desmarcar información si no quieres recuperarla. Los servicios creados de esta manera utilizan los mismos check plugins que se usan para otros hosts Linux. Esto significa que su comportamiento es idéntico al que ya conoces, por lo que, sin necesidad de adaptarte a nada nuevo, puedes configurar rápidamente umbrales o trabajar con gráficos.

Normalmente, el agente intentará asignar automáticamente los datos a los hosts de Checkmk, y lo mismo ocurrirá con el host de Checkmk que recoge los datos. Sin embargo, si en los datos del servidor Prometheus no aparece ni la dirección IP, ni el FQDN, ni localhost, utiliza la opción «Explicitly map Node Exporter host» para especificar qué host de los datos del servidor Prometheus se debe asignar al host Prometheus en Checkmk.

Integración mediante cAdvisor

El exportador cAdvisor permite la monitorización de entornos Docker y devuelve métricas.

A través del menú «Entity level used to create Checkmk piggyback hosts» puedes determinar si los datos de Prometheus deben recopilarse en un formato ya agregado y de qué manera. Puedes elegir entre las tres opciones siguientes:

  • Container - Display the information on container level

  • Pod - Display the information for pod level

  • Both - Display the information for both, pod and container, levels

Selecciona «Both» o «Container» y define también el nombre con el que se crearán los hosts para tus contenedores. Para el nombre, tienes disponibles las tres opciones siguientes. La opción «Short» es la predeterminada:

  • Short - Use the first 12 characters of the docker container ID

  • Long - Use the full docker container ID

  • Name - Use the name of the container

prometheus cadvisor names

Ten en cuenta que tu selección aquí afecta a la creación y eliminación automáticas de hosts según tu administración dinámica del host.

Con «Monitor namespaces matching» tienes la posibilidad de limitar el número de objetos objeto de monitorización. Todos los espacios de nombres que no estén cubiertos por las expresiones regulares serán ignorados.

Integración a través de PromQL

Como ya se ha mencionado, con la ayuda del agente especial también es posible enviar solicitudes a tus servidores Prometheus a través de PromQL. Selecciona «Service creation using PromQL queries > Add new Service». Utiliza el campo «Service name» para determinar cómo se llamará el nuevo servicio en Checkmk.

A continuación, selecciona «Add new PromQL query» y utiliza el campo «Metric label» para especificar el nombre de la métrica que se importará a Checkmk. Ahora introduce tu consulta en el campo «PromQL query». Es importante que esta consulta solo devuelva un único valor.

prometheus ruleset promql

En este ejemplo, se consulta a Prometheus sobre el número de procesos en ejecución y bloqueados. En Checkmk, estos procesos y las dos métricas —Running y Blocked— se combinan en un servicio llamado Processes.

También puedes asignar umbrales a estas métricas. Para ello, activa «Metric levels» y luego elige entre «Lower levels» o «Upper levels». Ten en cuenta que estas siempre especifican números de coma flotante, pero, por supuesto, también se refieren a métricas que devuelven solo números enteros.

Asignar una regla al host de Prometheus

Por último, asigna explícitamente esta regla al host que acabas de crear y confirma con Save.

prometheus ruleset explicit host

2.3. Descubrimiento de servicios

Ahora que has configurado el agente especial, es el momento de ejecutar un descubrimiento de servicios en el host de Prometheus.

prometheus discovery

3. Administración dinámica del host

3.1. Configuración general

CEE La monitorización de clústeres de Kubernetes es probablemente una de las tareas más comunes que realiza Prometheus. Para garantizar la integración de los contenedores, que a veces tienen una vida muy corta, los cuales se orquestan a través de Kubernetes y se supervisan con Prometheus —también en Checkmk sin gran esfuerzo—, se puede configurar la administración dinámica del host en las ediciones comerciales. Los datos de los contenedores individuales se reenvían como datos piggyback a Checkmk.

Ahora crea una nueva conexión usando Setup > Hosts > Hosts > Dynamic host management > Add connection, selecciona «Piggyback data» como tipo de conexión y utiliza «Add new element» para definir las condiciones bajo las cuales se deben crear nuevos hosts de forma dinámica.

Valora si es necesario para tu entorno volver a eliminar dinámicamente los hosts cuando ya no lleguen datos a Checkmk a través del mecanismo piggyback. Configura la opción «Delete vanished hosts» en consecuencia.

3.2. Característica especial en las interacciones con cAdvisor

Los contenedores suelen recibir un nuevo ID cuando se reinician. En Checkmk, las métricas del host con el ID antiguo no se transfieren automáticamente al nuevo ID. En la mayoría de los casos, eso no tendría ningún sentido. En el caso de los contenedores, sin embargo, esto puede ser muy útil, como se ve en el ejemplo anterior.

Si los contenedores solo se reinician, probablemente no quieras perder su historial. Para conseguirlo, no crees los contenedores bajo sus ID, sino bajo sus nombres con la opción Name - Use the name of the container en la regla de Prometheus.

De esta forma, con la opción «Delete vanished hosts» en la administración dinámica del host, podrás seguir eliminando los contenedores que ya no existen, sin tener que temer que también se pierda su historial. En cambio, este se mantendrá —gracias al uso del mismo nombre de contenedor— incluso si en realidad se trata de un contenedor diferente que utiliza el mismo nombre.


Last modified: Tue, 19 Aug 2025 12:03:40 GMT via commit f16bb5a82
En esta página