Packages
  • telegram\_graphs: notificaciones de Telegram con gráficos (Checkmk 2.4.0 Community/Raw) Envía las notificaciones de Checkmk a un chat, grupo o canal de Telegram y adjunta, como álbum en respuesta al mensaje, los gráficos de rendimiento de las últimas 25 h del host o servicio notificado. También puede añadir los gráficos de otros servicios del mismo host (por ejemplo CPU, memoria o interfaces) cuando cae un host. Está basado en telegram\_notify 1.4.3 (el telegram.py del proyecto anterior) y portado a la API de Checkmk 2.4. INSTALACIÓN como usuario del sitio (OMD\[mysite\]:\~$) mkp add telegram\_graphs-2.0.0.mkp mkp enable telegram\_graphs 2.0.0 omd restart apache # para que la GUI cargue el nuevo ruleset En la edición Community también puede hacerse con Setup > Maintenance > Extension packages > Upload package. Se instalan dos ficheros: \~/local/share/check\_mk/notifications/telegram\_graphs → Script de notificación \~/local/lib/python3/cmk\_addons/plugins/telegram\_graphs/rulesets/telegram\_graphs.py → Parámetros en la GUI (Rulesets API cmk.rulesets.v1) CONFIGURACIÓN Cree un bot con @BotFather y guarde el token. Lo ideal es guardarlo en Setup > General > Passwords. Añada el bot al grupo o canal y obtenga el chat ID (en grupos es un número negativo, como -1001234567890). En Setup > Events > Notifications, cree una regla o Notification parameter con el método Telegram (con gráficos). Parámetros disponibles: Token del bot: Obligatorio. Puede ser explícito o venir del almacén de contraseñas. ID del chat: Si se deja vacío, se usa el atributo de usuario TELEGRAM\_CHAT\_ID del contacto, igual que en el plugin anterior. ID del tema: Para supergrupos con temas (message\_thread\_id). Envío silencioso: El texto llega sin sonido. Los gráficos llegan siempre en silencio. URL prefix: Activa los enlaces $LINKEDHOSTNAME$, $LINKEDSERVICEDESC$ y $GRAPH\_URL$. Plantillas host/servicio: HTML de Telegram con macros de Checkmk, con la misma plantilla por defecto que el plugin anterior. Enviar gráficos: Activado por defecto. Estados con gráficos: Por separado para servicios (OK/WARN/CRIT/UNKNOWN) y hosts (UP/DOWN/UNREACHABLE). Máximo de gráficos: 10 por defecto. Si son más de 10 se envían varios álbumes. Servicios adicionales: Expresiones regulares (CPU, Memory, Interface .\*...) de servicios del mismo host con métricas. Se buscan por Livestatus. Adjuntar servicios adicionales en: Notificaciones de host (por defecto), de servicio o ambas. Proxy: Proxy HTTP para llegar a api.telegram.org. CÓMO OBTIENE LOS GRÁFICOS El script usa cmk.notification\_plugins.utils.render\_cmk\_graphs, el mismo mecanismo que el correo HTML de Checkmk. Llama a "http://localhost://check\_mk/ajax\_graph\_images.py" autenticándose con el site internal secret, que es obligatorio desde la 2.3. No hay que crear usuarios de automatización. Checkmk fija el rango de los gráficos en 25 h para las notificaciones. DIFERENCIAS CON telegram\_notify 1.4.3 La GUI usa la Rulesets API de 2.4. La antigua cmk.gui.plugins.wato / notification\_parameter\_registry ya no existe en 2.4. Ya no depende de cmk.utils.site ni de mail.event\_templates, que también desaparecieron en 2.4. Las peticiones de gráficos van autenticadas, porque sin token ajax\_graph\_images.py responde vacío o con error. Primero se envía el texto, que es el que suena, y los gráficos van después como respuesta. Si fallan los gráficos, la notificación no se reintenta, así el texto no llega duplicado. Los códigos de salida siguen la convención de Checkmk: 0 enviado, 1 reintentar (429/5xx/red), 2 error definitivo. Las salidas del plugin se escapan (\, &) para que Telegram no rechace el mensaje con un 400. Es un paquete nuevo (telegram\_graphs) que convive con el anterior. Las reglas antiguas de telegram.py no se migran. DIAGNÓSTICO Log: \~/var/log/notify.log. Suba el nivel en Global settings > Notifications > Notification log level. Para probarlo, use Test notifications en Setup > Events > Notifications, o pulse Send custom notification en un servicio con gráficos.