Integración domótica Checkmk, gratuita y de código abierto

Sus hosts y servicios de Checkmk en Gladys, con escenas cuando un host cae o falla un servicio.
Lleve su supervisión Checkmk a Gladys: cada host se convierte en un dispositivo (activo, servicios en WARN, CRIT y UNKNOWN, problemas sin gestionar, mantenimiento), un dispositivo «Checkmk» resume todo el sitio, y sus escenas reaccionan cuando un host cae o un servicio falla: una luz roja cuando el NAS está caído, un mensaje cuando un disco está en CRIT. Una escena también puede reconocer los problemas de un host, y un widget del panel lista los problemas en curso.
La integración lee la API REST de su sitio Checkmk en su red local, con un usuario de automatización. Nada pasa por una nube.
Probado con un Checkmk 2.5 Community real (imagen Docker oficial, un host supervisado por su agente, hosts DOWN y UNREACH, checks locales forzados a WARN y CRIT, un mantenimiento); de 2.2 a 2.4 solo a través de la misma API documentada. Sus comentarios son bienvenidos: github.com/guim31/gladys-checkmk/issues.
Lo que necesita
- Gladys Assistant 5.1.0 o posterior.
- Checkmk 2.2 o posterior, cualquier edición (Community, antes Raw, incluida), accesible desde la máquina de Gladys.
- Un usuario de automatización para Gladys. El rol "Normal monitoring user" basta: ve los hosts de sus grupos de contactos y puede reconocer sus problemas.
Primeros pasos
1. Cree un usuario de automatización
En Checkmk, abra Setup → Users → Add user:
- Username: por ejemplo
gladys; - Authentication: "Automation secret for machine accounts", y copie el secreto;
- Roles: "Normal monitoring user";
- Contact groups: los grupos de los hosts que desea seguir (
allpor defecto).
Guarde y luego active los cambios.
2. Configure la integración
En Gladys, abra la configuración de la integración:
- Dirección del sitio: la dirección con la que abre Checkmk, incluido el
nombre del sitio, por ejemplo
http://192.168.1.2/misitio. También sirve cualquier página del sitio copiada desde el navegador. - Usuario de automatización y Secreto de automatización: el usuario del paso 1.
- Carpeta (opcional): la ruta de una carpeta de Setup, por ejemplo
/homelab, subcarpetas incluidas. Es la ruta de la carpeta (su nombre en la URL), no siempre su título. Vacío: todos los hosts que el usuario puede ver. - Etiquetas de host (opcional):
clave:valorseparados por comas, por ejemplogladys:yes; un host debe llevarlas todas. Una clave sola acepta cualquier valor. - Intervalo de actualización: de 30 segundos a 5 minutos (1 minuto por defecto).
- Permitir reconocer desde escenas: desmárquelo para desactivar la acción de reconocimiento.
- Aceptar certificados autofirmados: para una dirección
https://cuyo certificado tampoco acepta su navegador. - Idioma de los nombres: idioma de los nombres de las funciones y de los resultados de las escenas.
Guarde y luego haga clic en Probar la conexión: muestra la versión de Checkmk, el número de hosts, de hosts caídos y de servicios con problemas.
3. Añada los dispositivos
Abra la pestaña Descubrir de la integración y añada los hosts que desea seguir, y el dispositivo «Checkmk» si quiere los totales. Los desencadenantes de escena funcionan para todos los hosts, añadidos a Gladys o no.
Los dispositivos
Cada host:
| Función | Valor |
|---|---|
| Host UP | 1 UP, 0 DOWN o UNREACH; vacío mientras el host está en PENDING |
| Servicios WARN | número de servicios en WARN |
| Servicios CRIT | número de servicios en CRIT |
| Servicios UNKNOWN | número de servicios en UNKNOWN |
| Problemas sin gestionar | problemas de host y de servicio ni reconocidos ni en mantenimiento |
| En mantenimiento | 1 mientras el host está en un periodo de mantenimiento programado |
El dispositivo Checkmk: Hosts DOWN (DOWN o UNREACH), Servicios WARN, Servicios CRIT, Servicios UNKNOWN y Problemas sin gestionar, sobre los hosts de la configuración.
Los valores se envían a Gladys solo cuando cambian, y si no, cada 6 horas.
Panel
El widget Problemas de Checkmk muestra tres casillas («Hosts DOWN», «Servicios CRIT», «Sin gestionar») y los problemas: hosts DOWN, luego UNREACH, luego servicios CRIT, UNKNOWN y WARN, los más recientes primero. Cada fila indica el servicio y su estado, el host, ✓ una vez reconocido y ⏸ en mantenimiento. Diez filas como máximo. Actualizar vuelve a leer Checkmk. En sus ajustes, elija hosts para mostrar solo los suyos (vacío: todos los hosts).
Escenas
Desencadenantes
- Un host cae: un host pasa a DOWN o UNREACH. Filtro: hosts (vacío: cualquiera). Variables: nombre del host, estado (DOWN, UNREACH). Un host que pasa de DOWN a UNREACH no se anuncia dos veces.
- Un host vuelve: un host anunciado como caído vuelve a estar UP. Variables: nombre del host, duración en minutos.
- Un servicio tiene un problema: un servicio entra en WARN, CRIT o UNKNOWN, o cambia entre ellos (de WARN a CRIT, por ejemplo). Filtros: hosts, estados (vacío: cualquiera; para «solo CRIT», elija CRIT). Variables: nombre del host, servicio, estado, salida del check.
- Un servicio vuelve a OK: un servicio anunciado con problema vuelve a OK. Filtros: hosts, el último estado de problema anunciado. Variables: nombre del host, servicio, último estado de problema, duración en minutos.
- Checkmk ya no responde: la API REST no responde dos veces seguidas (variables: dirección del sitio, error).
Los problemas ya presentes cuando arranca la integración no se anuncian, pero su fin sí. Solo cuentan los estados confirmados (HARD): mientras Checkmk repite un check (estado SOFT), no se anuncia nada. Un cambio que ocurre mientras Gladys o la integración se reinicia se anuncia una vez en la siguiente lectura. Un problema en mantenimiento (del servicio o de su host) no se anuncia, ya que Checkmk tampoco lo notifica; si sigue ahí cuando termina el mantenimiento, se anuncia entonces.
Acciones
- Reconocer los problemas de un host: reconoce en Checkmk el problema del host (DOWN, UNREACH) y cada uno de sus servicios con problemas aún no reconocidos, con un comentario (vacío: «Reconocido desde Gladys»). El reconocimiento es persistente (hasta que el host esté UP o el servicio OK) y no envía ninguna notificación. Devuelve el número de reconocimientos. Desactívela con «Permitir reconocer desde escenas».
- Leer los problemas: cuenta y lista los problemas de un host, o de todos, para las acciones siguientes: número, sin gestionar, hosts caídos, servicios CRIT, WARN y UNKNOWN, y la lista «host: problema».
Ideas de escenas
- Una luz roja cuando el NAS está caído: desencadenante «Un host cae», host
NAS → poner en rojo la lámpara del salón y enviar
{{triggerEvent.data.host}}: {{triggerEvent.data.state_name}}. - Solo los servicios críticos: desencadenante «Un servicio tiene un
problema», estado CRIT → mensaje
\{\{triggerEvent.data.host\}\} / \{\{triggerEvent.data.service\}\}: \{\{triggerEvent.data.output\}\}. - Informe matutino: todos los días a las 8:00, «Leer los problemas» → enviar el número y la lista cuando el número es mayor que 0.
- Desde el sofá: un botón del panel o un mando Zigbee ejecuta «Reconocer los problemas de un host» en el NAS.
Solución de problemas
- «usuario o secreto de automatización rechazado»: compruebe el usuario (un usuario de automatización, no uno con contraseña) y su secreto en Setup → Users, y que los cambios estén activados.
- «Checkmk no responde»: compruebe la dirección desde la máquina de Gladys.
localhostes el propio contenedor de la integración: utilice la dirección IP de la máquina de Checkmk. - «no hay ningún sitio Checkmk en esta dirección»: falta el nombre del
sitio en la dirección o es incorrecto: es la primera parte de la ruta,
/misitioenhttp://192.168.1.2/misitio/check_mk/. - «ningún host visible»: el núcleo de supervisión del sitio está detenido
(
omd status), o el usuario no está en ningún grupo de contactos de los hosts. - «certificado rechazado»: marque «Aceptar certificados autofirmados», o
utilice la dirección
http://en la red local. - Falta un host: está fuera de la carpeta o de las etiquetas, o no está en un grupo de contactos del usuario.
- Se rechaza el reconocimiento: el rol del usuario necesita el permiso para reconocer problemas ("Normal monitoring user" lo tiene).
Límites
- Un sitio Checkmk por integración (los hosts de los sitios remotos, cuando el usuario los ve desde el sitio central, están incluidos).
- Solo estados de hosts y de servicios: sin métricas ni inventario.
- «Un servicio vuelve a OK» también se activa cuando un servicio con problemas se retira de la supervisión; un host retirado de Checkmk o del alcance termina sin aviso.
- Como máximo 30 eventos de escena por lectura: un corte de red puede generar decenas a la vez; el resto sigue en las lecturas siguientes.
- Sin cuota en la API REST: cada lectura envía dos peticiones (tres una vez por hora, para la versión).
Sin relación con Checkmk GmbH. Checkmk es una marca registrada de Checkmk GmbH.
Parámetros de configuración
Estos son los parámetros que Checkmk te pide en su pantalla de configuración en Gladys.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Su sitio Checkmk | section | No | En Checkmk (2.2+), Setup → Users: cree un usuario con «Automation secret for machine accounts», rol «Normal monitoring user», en un grupo de contactos de los hosts. Después añada los hosts desde la pestaña Descubrir: los disparadores valen para todos. |
| Dirección del sitio | string | Sí | La dirección con la que abre Checkmk, con el nombre del sitio; la API REST se deduce de ella. |
| Usuario de automatización | string | Sí | |
| Secreto de automatización | secret | Sí | Basta un usuario de monitorización normal: ve los hosts de sus grupos de contactos y puede reconocerlos. |
| Carpeta (opcional) | string | No | Ruta de una carpeta de Setup, subcarpetas incluidas. Vacío: todos los hosts que ve el usuario. |
| Etiquetas de host (opcional) | string | No | clave:valor, separadas por comas; un host debe llevarlas todas. Solo una clave: cualquier valor. |
| Opciones | section | No | |
| Intervalo de actualización | select | No | Con qué frecuencia se lee Checkmk: dos o tres peticiones de API cada vez. |
| Permitir reconocer desde escenas | boolean | No | Desmarque para desactivar la acción de escena «Reconocer los problemas de un host». |
| Aceptar certificados autofirmados | boolean | No | Solo para una dirección https:// cuyo certificado tampoco reconoce su navegador. |
| Idioma de los nombres | select | No | Idioma de los nombres de las funciones (fijados al añadir un dispositivo) y de los resultados de escena. |
Cómo instalar Checkmk en Gladys
- En Gladys, abre Integraciones: Checkmk aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
- Haz clic en Instalar. Gladys descarga la imagen Docker (
ghcr.io/guim31/gladys-checkmk:1.0.1), la ejecuta en un entorno aislado del núcleo y genera la interfaz de la integración (dispositivos, descubrimiento y configuración). - Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
- También puedes instalarla directamente desde la URL de su repositorio: https://github.com/guim31/gladys-checkmk.
Checkmk requiere Gladys >=5.1.0. El catálogo de Gladys se actualiza cada hora, así que una nueva versión está disponible como máximo una hora después de publicarse.
¿Todavía no usas Gladys? Es gratuito y de código abierto: sigue la guía de instalación para empezar.
Sobre las integraciones externas
Checkmk es una integración externa: una integración comunitaria empaquetada como contenedor Docker y publicada en GitHub. Gladys la instala con un clic y la ejecuta en un entorno aislado del núcleo. La publica y mantiene guim31, no el equipo principal de Gladys.
- Explorar todas las integraciones, nativas y de la comunidad
- Crear y publicar tu propia integración externa
- Código fuente en GitHub — fuente de esta documentación