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

Con más de 2000 check plugins listos para usar y múltiples métodos para la monitorización del contenido de archivos y carpetas, evaluar mensajes de registro y supervisar tareas recurrentes, Checkmk es la solución out of the box ideal para una gran variedad de tareas de monitorización. Si no hay disponible un check plugin para un uso muy especializado, la comunidad de Checkmk estará encantada de ayudarte con desarrollos personalizados a través de Checkmk Exchange.

No obstante, siempre hay situaciones en las que un componente de hardware es demasiado nuevo, un software es demasiado exótico o el desarrollo propio de una organización es demasiado específico como para que alguien haya reconocido ya la necesidad de integrarlo en Checkmk. Si has llegado a este punto, es hora de empezar a programar tus propias extensiones.

Este artículo ofrece una vista general de las opciones disponibles.

Estas opciones son muy variadas: En algunos casos, por ejemplo, basta con ampliar un script de copia de seguridad con unas pocas líneas para mostrar el éxito o el fallo de una forma que se pueda visualizar fácilmente en Checkmk; esto significa que el «desarrollo interno» a veces se puede completar en solo unos minutos. En otros casos, necesitarás visualizar situaciones de carga con gráficos detallados; en tal situación, vale la pena invertir unas horas más.

2. Posibilidades de ampliación mediante programas propios

En las siguientes secciones se muestran los procedimientos disponibles para integrar tus propias extensiones en Checkmk, y dónde se lleva a cabo la recopilación y evaluación de datos en cada caso.

2.1. Local checks

Probablemente, la forma más sencilla de ampliar Checkmk es mediante el uso de local checks. Un programa ejecutado por el script del agente del host supervisado muestra el nombre, el estado y otra información necesaria en una sola línea. Para las local checks, Checkmk admite el descubrimiento automático de servicios. Se puede programar en cualquier lenguaje de programación sin necesidad de aprender una API.

  • Ejecución: íntegramente en el host sometido a monitorización. Debes asegurarte de que el intérprete adecuado esté disponible en todos los hosts que reciban una local check, cuando sea aplicable.

  • Umbrales: El site de Checkmk puede gestionar un par de umbrales inferior y superior (para transiciones a WARN y CRIT, respectivamente).

  • Métricas: Es posible definir varias métricas por servicio. Las unidades no se pueden gestionar explícitamente, sino que se asignan o se omiten automáticamente.

2.2. Check plugins basados en agentes nativos

Los check plugins basados en agentes evalúan los datos proporcionados por el agente Checkmk. Un plugin de agente recopila datos sin procesar y los prefiltra, pero no realiza un análisis de los datos recopilados. Esta recopilación de datos se puede realizar en cualquier lenguaje de programación. Es muy habitual que la salida sea un archivo JSON o en formato CSV. Sin embargo, también verás muchos plugins de agente que solo ejecutan comandos sin procesar del sistema Linux.

La evaluación se lleva a cabo entonces en el servidor Checkmk utilizando un check plugin escrito en Python, que hace uso de las API de Checkmk. De este modo, se puede determinar un estado de forma muy flexible. Es posible utilizar valores de umbral mínimo y máximo. Además, se pueden crear múltiples servicios y el estado de un servicio se puede verificar mediante múltiples comprobaciones. También es posible determinar tendencias e incluir valores anteriores. Los check plugins nativos admiten la creación automática de etiquetas y el inventario de HW/SW.

  • Ejecución: plugin de agente para la recopilación de datos en cualquier lenguaje de programación en el host supervisado, y posterior evaluación mediante un check plugin en el servidor Checkmk utilizando la API de Check.

  • Umbrales: Cualquier combinación de valores umbral para cada servicio.

  • Métricas: cualquier número de métricas por servicio con unidades.

2.3. Agentes especiales

Los agentes especiales son una extensión de los check plugins basados en agentes. En este caso, ningún plugin de agente recopila los datos sin procesar, sino que es un programa que se ejecuta en el servidor Checkmk el que recupera los datos de otra fuente y los convierte al formato de agente de Checkmk. Los agentes especiales se utilizan, por ejemplo, cuando un dispositivo que se va a supervisar proporciona datos relevantes para la monitorización en formato JSON o XML a través de una API-REST. Para ver ejemplos del uso de los agentes especiales que incluye Checkmk, consulta AWS, Azure o VMware.

Al programar, accedes a dos API: para la configuración de puertos o similares, Checkmk proporciona una API que te permite especificar dichos ajustes en la configuración. Para la consulta de datos en sí, utiliza la API-REST de la fuente externa. La evaluación en el servidor Checkmk se lleva a cabo tal y como se describe en la sección anterior sobre check plugins nativos.

  • Ejecución: Programa/script para la recopilación de datos y su posterior evaluación en el servidor Checkmk.

  • Umbrales: Cualquier combinación de valores umbral para cada servicio.

  • Métricas: Cualquier número de métricas por servicio con unidades.

2.4. Check plugins nativos basados en SNMP

Una variante de los check plugins basados en agentes son los check plugins para SNMP. La diferencia aquí es que no se solicita ni se evalúa ninguna sección de agente, sino que el agente SNMP solicita explícitamente ciertos OID de SNMP.

  • Ejecución: Colección de datos y posterior evaluación mediante un check plugin en el servidor Checkmk utilizando la API de Check.

  • Umbrales: Cualquier combinación de valores umbral para cada servicio.

  • Métricas: Cualquier número de métricas por servicio con unidades.

Dado que el protocolo SNMP es intrínsecamente muy ineficiente, recomendamos utilizar SNMP solo si no es posible acceder a los datos de monitorización de otra forma. Por ejemplo, si un dispositivo también proporciona los mismos datos a través de una API-REST, deberías crear un agente especial para ello.

2.5. Check plugins heredados de Nagios

Los check plugins de Nagios se pueden encontrar en dos lugares en Checkmk: Como comprobaciones activas, para comprobar la accesibilidad de ciertos servicios desde el servidor Checkmk, y como una extensión MRPE de los agentes de Windows o Linux para comprobar dichos servicios desde un host —si no se puede acceder al host o a los servicios desde el servidor Checkmk.

Se puede programar en cualquier lenguaje.

  • Ejecución: completamente en el host supervisado (a través de MRPE) o completamente en el servidor Checkmk (comprobación activa).

  • Umbrales: valores de umbral solo cuando se usa como check activo.

  • Métricas: Métricas solo cuando se usa como check activo.

Debido a una serie de desventajas, como la engorrosa resolución de problemas, solo recomendamos la reimplementación si se requiere una compatibilidad total con Nagios. En todos los demás casos, utiliza check plugins nativos o, para consultas sencillas, utiliza local checks. Puedes encontrar documentación detallada sobre los formatos de salida en Monitoring-Plugins.org.

3. Artículos adicionales

3.1. El directorio spool

Checkmk ofrece otro mecanismo más para generar datos del agente: Haz que un programa escriba directamente un archivo de texto en el formato del agente Checkmk. Almacenado en el directorio de spool, el agente Checkmk transfiere el contenido de este archivo junto con el resto de la salida del agente.

Con el directorio spool puedes, por ejemplo, hacer que los scripts de copia de seguridad escriban el estado y las estadísticas de una local check o de un check plugin directamente al finalizar. Esto evita tener que pasar por la evaluación de los archivos de registro.

Al desarrollar tus propios check plugins, los archivos spool ayudan a simular salidas concretas de tu plugin de agente.

3.2. El mecanismo piggyback

El mecanismo piggyback se utiliza cuando un host tiene información sobre otro. A continuación, se asigna una sección de agente con un formato especial al host correspondiente al evaluar la salida del agente.

En el caso de las máquinas virtuales, el mecanismo piggyback se utiliza para agrupar los datos recopilados por el software de virtualización con los datos de la monitorización dentro de la máquina virtual.

3.3. Paquetes de extensiones de Checkmk (MKPs)

Si has programado tus propias extensiones y quieres versionarlas y luego compartirlas, tienes la opción de empaquetar una extensión con sus archivos asociados en paquetes de extensión de Checkmk (MKPs). También debes usar este formato de paquete si quieres ofrecer estas extensiones en Checkmk Exchange.

3.4. La Bakery API

En muchos casos, querrás proporcionar a los plugins de agente una configuración adicional. O quizá quieras ejecutar pequeños scriptlets de instalación específicos en función de los ajustes realizados en la configuración de Checkmk.

Si utilizas Agent bakery para la distribución de paquetes de agentes, la Bakery API te proporciona una interfaz de programación con la que los ajustes realizados en Checkmk se pueden transferir fácilmente a otros hosts que se están supervisando.

4. Contribuir a Checkmk

Si programas tus propias extensiones, te recomendamos que primero las envíes al Checkmk Exchange. Aquí sigues siendo el propietario y la persona de contacto, y puedes publicar nuevas versiones fácilmente. Como los requisitos de calidad de código para el Exchange no son tan estrictos como para los check plugins que vienen con Checkmk, puedes probar nuevas ideas fácilmente ante un público amplio a través del Checkmk Exchange.

Si en algún momento crees que tu check plugin debería convertirse en parte integral de Checkmk, lee primero el documento «Contribuir a Checkmk».


Last modified: Wed, 03 Dec 2025 17:24:36 GMT via commit 97f517a2a
En esta página