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. Autoregistro

Los sistemas en la nube como Amazon Web Services (AWS), Microsoft Azure o Google Cloud Platform (GCP) crean y eliminan "objetos" de forma independiente, que corresponden a los hosts en Checkmk. Para que estos objetos en la nube, una vez creados, se incluyan sin demora como hosts en una monitorización de Checkmk, se necesita una solución sin intervención manual.

Checkmk proporciona la respuesta con su función de autoregistro, que permite crear hosts automáticamente. Como la creación automática de hosts es necesaria principalmente para los entornos en la nube mencionados anteriormente, el autoregistro sólo está disponible a partir de Checkmk Cloud, es decir, en Checkmk Cloud y Checkmk MSP.

El autoregistro se consigue mediante la comunicación entre el agente Checkmk y el servidor Checkmk. El Controlador de agentes realiza una solicitud de registro al Receptor de agentes del servidor, transmitiendo los datos necesarios para crear el host. Si el Receptor de agentes acepta la solicitud, se realiza el registro y se establece una conexión cifrada TLS. A continuación, se crea el host, se realiza un descubrimiento de servicios y se activan los cambios, de modo que el host se añadirá al entorno de monitorización: un proceso completamente automático.

Para que esta automatización funcione, es necesaria, por supuesto, una preparación adecuada. Empecemos en el site de Checkmk, con la creación de un usuario que tenga autorización para el autoregistro, una carpeta en la que se crearán los host y una regla que permita al Receptor del agente procesar las solicitudes de registro sin intervención manual. Por cierto, al configurar la carpeta, puedes especificar si los agentes de los host que se creen allí deben trabajar en modo pull o en modo push.

Luego viene el agente Checkmk: Aquí, la información para una solicitud de registro se especifica mediante una regla de agente y luego se empaqueta (se hornea) en un paquete de agente mediante el Agent bakery. Este paquete de agente configurado para el autoregistro se instala entonces en los host que van a poder realizar el autoregistro.

En los capítulos siguientes se explica cómo funciona todo esto.

2. Configuración del autoregistro

2.1. Seleccionar usuario para el autoregistro

Los permisos necesarios para registrar el agente en el servidor Checkmk (para la transferencia de datos encriptada por TLS) y para crear hosts se encuentran en el rol Agent registration user. Los permisos para registrar nuevos hosts sólo están disponibles en este rol a partir de Checkmk Cloud.

Este rol se asigna al usuario de automatización agent_registration, que se configura en cada site de Checkmk y cuyas propiedades pueden visualizarse a través de Setup > Users > Users:

Dialog with the properties of the automation user 'agent_registration'.
Por defecto, este usuario de automatización sólo tiene el rol Agent registration user

Tiene sentido utilizar este usuario de automatización para el autoregistro, que no puede hacer otra cosa que registrar host.

2.2. Crear una carpeta para los nuevos hosts

Los hosts creados automáticamente deben crearse en una carpeta nueva. También puedes utilizar una carpeta existente si la configuras como se describe a continuación.

Inicia la creación de una carpeta con Setup > Hosts > Hosts > Add folder.Dale un nombre a la nueva carpeta en la caja Basic settings.

La caja Network address incluye la opción IP address family. Si quieres que los agentes Checkmk del host estén configurados para utilizar el modo pull, puedes dejar el valor por defecto IPv4 only sin cambios. Para el modo push, selecciona el valor No IP. Esto impide que se compruebe la accesibilidad del host a través de Smart Ping.

En la siguiente caja Monitoring agents, especifica dos opciones importantes para el autoregistro. Con Checkmk agent connection mode decides si el agente Checkmk debe trabajar en modo pull o (como en la siguiente imagen) en modo push. Esta opción sólo está disponible a partir de Checkmk Cloud. Por último, en Bake agent packages, activa el checkbox Bake a generic agent package for this folder. Esto te permite utilizar el Agent bakery, para crear una configuración de agente para una carpeta y todos los host que contenga, y cualquier host que pueda añadirse a esta carpeta en el futuro.

Dialog for creating a new folder for auto-registration.
Configurar una carpeta para el modo push

Completa la creación de la carpeta con Save.

2.3. Crear una regla para el site Checkmk

La decisión sobre qué host pueden registrarse automáticamente, qué nombres se les asignan y qué más ocurre con ellos tras el registro, se toma en Checkmk -como es lógico- con reglas. Las etiquetas del agente del host que se registrarán desempeñan un papel decisivo en esto. Pero lo primero es lo primero.

El conjunto de reglas Agent registration sólo está disponible a partir de Checkmk Cloud. Puedes encontrarlo en Setup > Agents (si el Modo mostrar más está activo) o buscando en el menú Setup. Inicia con Add rule la creación de una nueva regla y asigna en la primera caja Properties, como es habitual en Checkmk, primero un ID y un título.

En la siguiente caja Matching criteria, especifica qué etiquetas se aceptarán cuando el servidor Checkmk reciba una solicitud de registro de un agente. Estas etiquetas del agente se utilizan exclusivamente para el autoregistro y son diferentes de las etiquetas que se utilizan de otro modo en Checkmk para identificar host y servicios. El agente Checkmk proporciona dos etiquetas del agente que pueden seleccionarse de la lista:cmk/hostname-simple contiene el nombre del host sin el componente de dominio (de ahí simple), que sirve para designar un nombre de host único en Checkmk, y cmk/os-family contiene el sistema operativo del host, que puede utilizarse, por ejemplo, para almacenar los hosts en carpetas diferentes. También puedes introducir tus propias etiquetas con Custom label.

El par clave-valor separado por dos puntos que compone una label (por ejemplo, cmk/os-family:linux) se evalúa por separado. De este modo, puedes especificar explícitamente que una clave (por ejemplo, cmk/os-family) debe existir (Exists), puede no existir (Does not exist) o sólo se acepta con un valor determinado (Equals). También puedes introducir una expresión regular (Regex) como valor. Si defines varias etiquetas del agente, se vincularán lógicamente con Y. En el siguiente ejemplo, además de la etiqueta predefinida cmk/hostname-simple, también se comprobará la etiqueta personalizada my_autoregister_label:

Auto-registration rule specifying the allowed labels.
Se comprueba si existen etiquetas con las claves cmk/hostname-simple y my_autoregister_label.

Nota: Cada host que se ha registrado correctamente recibe automáticamente la etiqueta host cmk/agent_auto_registered:yes añadida por Checkmk. Sin embargo, no puedes utilizar esta etiqueta aquí, porque no es una etiqueta del agente y sólo se asigna tras el registro.

En la siguiente caja, Action, determinas lo que debe ocurrir cuando la evaluación de las etiquetas surta efecto: Crear el host o no. Si seleccionas Stop and do not create hosts, la evaluación de la regla se habrá completado y las dos cajas siguientes ya no serán relevantes. En nuestro ejemplo, sin embargo, se crearán hosts:

Auto-registration rule specifying the action to be performed.
La acción por defecto es la creación de los host

En la caja Hostname computation, especifica ahora el nombre que debe recibir el host. En la caja Hostname template, introduce la plantilla. Aquí puedes utilizar macros para leer los valores reales de las etiquetas del agente que seleccionaste en la caja Matching criteria anterior: con $cmk/hostname-simple$, por ejemplo, el nombre del host simple suministrado por el agente Checkmk. A continuación, puedes modificar la plantilla, si lo deseas, mediante la conversión a minúsculas o mayúsculas, y sustituciones con expresiones regulares y con nombres explícitos del host. Por cierto, éstas son las mismas opciones que están disponibles para personalizar los nombres de los host piggyback. También puedes encontrar más información en la ayuda en línea.

Auto-registration rule with host name specification.
Adopción del nombre del host simple, complementado con el prefijo push-

Por último, en la caja Host creation, selecciona la carpeta predefinida en la que deben aterrizar los nuevos hosts. Además, puedes especificar los atributos que se deben dar al host. Puedes leer más sobre estos atributos en el artículo sobre administración de hosts.

Auto-registration rule specifying the destination folder and host attributes.
Los nuevos hosts deben crearse en la carpeta predefinida Autoregistered

Después de guardar la regla, vuelve a la página Agent registration. Aquí encontrarás el Agent labels simulator. Si has definido muchas reglas, el simulador te ayudará a llevar un registro de ellas. Puedes introducir etiquetas del agente y con Try out simular si se aplica una regla y qué regla se aplica cuando se envía una etiqueta del agente. Los resultados te mostrarán los símbolos del semáforo en color, tal y como se describe en el artículo sobre reglas.

2.4. Crear una regla para el Agent bakery

Después de configurar el site de Checkmk en la sección anterior, ahora nos ocupamos del Controlador de agentes Checkmk. Para ello, utilizas el conjunto de reglas Agent controller auto-registration de la Agent bakery, que sólo está disponible a partir de Checkmk Cloud. Puedes encontrar el conjunto de reglas en la Agent bakery en Agent rules o la forma más rápida es buscarlo en el menú Setup. Crea una regla nueva.

En la caja Agent controller auto-registration, proporciona al Controlador de agentes toda la información que necesita para hacer una solicitud de registro al Receptor del agente: el servidor Checkmk (Monitoring server address), si procede, el número de puerto para el Receptor del agente (Agent receiver port), el site Checkmk (Site to register with) y el usuario de automatización para el autoregistro.

También puedes definir aquí tus propias etiquetas en la opción Additional agent labels to send during registration. Para que funcione el autoregistro, estas etiquetas deben coincidir con las que has introducido en Custom label en la regla para el site de Checkmk: en el ejemplo, la etiqueta personalizada creada anteriormente con la clave my_autoregister_label.

Con la opción final Keep existing connections determinas si el Controlador de agentes debe eliminar (no) o mantener (yes) las conexiones ya existentes. Si has configurado conexiones manuales a otros sites Checkmk además del registro automático de una conexión, y quieres mantenerlas incluso después de un reinicio del Controlador de agentes cmk-agent-ctl, debes establecer esta opción en yes.

Auto-registration rule for Agent Bakery.
Los valores del Agent bakery deben coincidir con los del site Checkmk

Importante: Para la última caja de esta regla, Conditions, selecciona de nuevo la carpeta predefinida como Folder.

2.5. Preparar un paquete de agente

Ahora continúa en la Agent bakery con Setup > Agents > Windows, Linux, Solaris, AIX. Haz clic en y hornea tú mismo un nuevo agente. Como resultado, además de la configuración del agente Vanilla (factory settings), recibirás una nueva línea para la configuración en la que se ha horneado la regla creada en la sección anterior:

List with the new configurations of agents for auto-registration.
La columna Agent type muestra que la nueva configuración es específica para la carpeta configurada

2.6. Descarga e instala el paquete agente

Ahora hay que instalar el paquete de agente en cada host que vaya a iniciar el autoregistro. Descarga el paquete de agente adecuado para el sistema operativo del host e instálalo en él. El procedimiento es el mismo que el habitual en el Agent bakery. Para más información, consulta los artículos sobre los agentes de monitorización, el agente de Linux y el agente de Windows.

2.7. Verificación del proceso

Tras instalar el paquete de agentes, el Controlador de agentes evalúa el archivo /var/lib/cmk-agent/pre_configured_connections.json y emite el comando de registro de una conexión que contiene. Si el Receptor del agente acepta este comando, se establecerá la conexión y se creará el host en el site de Checkmk.

Contents of the auto-registration folder containing the automatically created host.
El host creado automáticamente en la Configuración

A continuación, se realiza un descubrimiento de servicios y se activan los cambios, de modo que el host también será visible en la monitorización. Ten en cuenta que, durante la activación automática, también se activará cualquier otro cambio acumulado, también de otros usuarios.

Este proceso puede durar varios minutos (hasta 5) desde la instalación del paquete del agente hasta que el host aparece en la monitorización. Puedes seguir los pasos individuales de este proceso en Setup > General > Audit log tras seleccionar el archivo wato_audit.log.

En el host puedes utilizar un comando para mostrar el estado de conexión del Controlador de agentes, que tiene el siguiente aspecto tras un registro correcto en modo push:

root@linux# cmk-agent-ctl status
Version: 2.3.0b1
Agent socket: operational
IP allowlist: any


Connection: myserver/mysite
	UUID: b11af975-40a8-4574-b6cd-12dc11c6f273
	Local:
		Connection mode: push-agent
		Connecting to receiver port: 8000
		Certificate issuer: Site 'mysite' agent signing CA
		Certificate validity: Tue, 13 Feb 2024 12:50:35 +0000 - Tue, 13 Feb 2029 12:50:35 +0000
	Remote:
		Connection mode: push-agent
		Registration state: discoverable
		Host name: push-myhost

Los hosts creados automáticamente también se pueden eliminar automáticamente. A partir de Checkmk Cloud, Checkmk proporciona así los dos componentes más importantes para la gestión del ciclo de vida de los hosts. Por cierto, la eliminación automática también funciona para los hosts creados manualmente, y en todas las ediciones.

3. Pruebas y diagnóstico de fallos

Puedes seguir los pasos individuales del proceso de creación del host en la monitorización (creación del host en la Configuración, descubrimiento de servicios y activación) en el site de Checkmk en Setup > General > Audit log. Verifica el éxito del registro automático en el host con el comando cmk-agent-ctl status.

Sin embargo, estas verificaciones mencionadas en la sección anterior sólo mostrarán los resultados deseados si el proceso ha tenido éxito. Si los resultados no son los mostrados anteriormente, puede deberse a que el Controlador de agentes envió una solicitud de registro que no fue aceptada por el Receptor del agente.

Para obtener una vista general de todas las solicitudes de registro que han sido rechazadas por el site Checkmk, consulta la página Agent registration, más arriba, en la que creaste la regla para el site Checkmk. Hay muchas razones posibles para un rechazo. En la siguiente imagen puedes ver dos ejemplos: un error ortográfico (my_autoregister_labell) en la etiqueta del agente enviada por el agente, y un host que ya existe:

List of rejected auto-registration requests.
Dos solicitudes de registro rechazadas

Para cada solicitud rechazada, en la primera columna, Actions, puedes iniciar una simulación, cuyo resultado se muestra en la última columna, Simulation result.

Para un diagnóstico de fallos más amplio, consulta los artículos sobre el agente Linux y el agente Windows-entre otros- sobre los temas de la comunicación entre un agente y un site Checkmk, así como sobre el registro (manual).

4. Ficheros y directorios

4.1. Rutas de archivos en el host Linux monitorizado

Ruta del archivo Descripción

/var/lib/cmk-agent/registered_connections.json

Contiene una lista de conexiones registradas con el Controlador de agentes.

/var/lib/cmk-agent/pre_configured_connections.json

Contiene una conexión preconfigurada integrada en el paquete del agente a través del Agent bakery a un site para el autoregistro a partir de Checkmk Cloud.

4.2. Rutas de archivos en el host Windows monitorizado

Ruta del archivo Descripción

C:\ProgramData\checkmk\agent\registered_connections.json

Contiene una lista de conexiones registradas con el Controlador de agentes.

C:\ProgramData\checkmk\agentregistered_connections.json

Contiene una conexión preconfigurada integrada en el paquete del agente a través del Agent bakery a un site para el autoregistro a partir de Checkmk Cloud.

4.3. Rutas de archivos en un servidor Checkmk

Ruta del archivo Descripción

~/var/agent-receiver/received-outputs/

Contiene para cada conexión su UUID como un soft link que apunta a la carpeta que contiene la salida del agente.

~/var/log/agent-registration.log

Archivo de registro para el registro del agente. Puedes controlar la verbosidad de los mensajes en 6 niveles mediante Setup > General > Global settings > User interface > Logging > Agent registration.

~/var/log/agent-receiver/

Contiene los archivos de registro del Receptor del agente.

En esta página