Saltar al contenido principal

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

Integración Checkmk para Gladys Assistant

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 (all por 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:valor separados por comas, por ejemplo gladys: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ónValor
Host UP1 UP, 0 DOWN o UNREACH; vacío mientras el host está en PENDING
Servicios WARNnúmero de servicios en WARN
Servicios CRITnúmero de servicios en CRIT
Servicios UNKNOWNnúmero de servicios en UNKNOWN
Problemas sin gestionarproblemas de host y de servicio ni reconocidos ni en mantenimiento
En mantenimiento1 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. localhost es 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, /misitio en http://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ámetroTipoObligatorioDescripción
Su sitio CheckmksectionNoEn 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 sitiostringSíLa dirección con la que abre Checkmk, con el nombre del sitio; la API REST se deduce de ella.
Usuario de automatizaciónstringSí
Secreto de automatizaciónsecretSíBasta un usuario de monitorización normal: ve los hosts de sus grupos de contactos y puede reconocerlos.
Carpeta (opcional)stringNoRuta de una carpeta de Setup, subcarpetas incluidas. Vacío: todos los hosts que ve el usuario.
Etiquetas de host (opcional)stringNoclave:valor, separadas por comas; un host debe llevarlas todas. Solo una clave: cualquier valor.
OpcionessectionNo
Intervalo de actualizaciónselectNoCon qué frecuencia se lee Checkmk: dos o tres peticiones de API cada vez.
Permitir reconocer desde escenasbooleanNoDesmarque para desactivar la acción de escena «Reconocer los problemas de un host».
Aceptar certificados autofirmadosbooleanNoSolo para una dirección https:// cuyo certificado tampoco reconoce su navegador.
Idioma de los nombresselectNoIdioma de los nombres de las funciones (fijados al añadir un dispositivo) y de los resultados de escena.

Cómo instalar Checkmk en Gladys​

  1. En Gladys, abre Integraciones: Checkmk aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
  2. 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).
  3. Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
  4. 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.

Suscríbete a la newsletter de Gladys Assistant

Unos pocos correos al mes sobre nuevas versiones y novedades del proyecto. Enviados por Pierre-Gilles Leymarie, fundador del proyecto. Puedes darte de baja cuando quieras 🙂