Monitorea tus servicios con Uptime Kuma y Home Assistant

Monitorea tus servicios con Uptime Kuma y Home Assistant
Photo by Scott Rodgerson / Unsplash

Hace un par de meses tengo el inconveniente que cuando se va la luz, mi mini-pc se apaga y es necesario encenderlo manualmente. Esto me implica que siempre debo estar pendiente verificando si todo esta funcionado. O eso era lo que debía hacer hasta ayer que configuré un par de cosas en mi homelab 😃. Acá les cuento lo que hice.

Contexto

Primero que todo, un par de cosas a manera de contexto.

  • Tengo un RPi5 al que llamaremos Bimo.
  • A mi mini-pc lo llamaremos Freya.
  • Cuando se corta la luz, bimo se reinicia automáticamente.
  • Cuando se corta la luz, Freya se queda apagado.
  • Podría configurar en la BIOS de freya para que siempre que la luz se corte, se vuelva a encender, pero, todo esto lo hago porque prefiero esperar unos minutos a que la electricidad se nivele y pueda iniciarse.

Teniendo en cuenta esto, necesito algo que me permita esperar unos minutos y cuando ya considere que todo esta funcionando, ahí si encender a Freya.

Manos a la obra

El plan es:

  • Usar Uptime Kuma para crear un monitor y detectar cuando el servicio esta abajo
  • Usar HomeAssistant para crear una automatización que ejecute el comando para encender el minipc luego de ciertas precondiciones.

Parte 1. Instalar y configurar UptimeKuma

Uptime Kuma es un proyecto open-source que permite monitorear recursos. Para ver más información puedes visitar su github, https://github.com/louislam/uptime-kuma.

Para su instalación usé docker:

services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    volumes:
      - /home/manre/data:/app/data
    ports:
      - 2351:3001
    restart: unless-stopped

Luego configuré un monitor de tipo HTTP, este monitor estará revisando si la aplicación esta arriba cada 5 minutos.

Ahora pasamos a revisar HomeAssistant

Parte 2. Configurar Uptime Kuma en HomeAssistant

Para realizar esta configuración instalé el addon de Uptime Kuma desde HACS, https://github.com/meichthys/uptime_kuma

Luego, añadí la integración y la configuré con la información de UptimeKuma. Esto hizo que aparecieran dos nuevas entidades que nos ayudarán a crear la automatización:

Teniendo un sensor por cada entidad que monitoreo, ya ahora es facil pasar a crear la automatización.

Parte 3. Crear automatización en HomeAssistant

Acá ya es más sencillo, creé una nueva automatización que:

  • Detecta cuando el sensor cambia de estado ON a OFF durante 7 minutos.
  • Me envía una notificación por telegram
  • Envía paquete Wake On LAN para despertar a Freya
  • Envía notificación a telegram informando que se terminó la ejecucicón.
alias: Monitor Proxmox
description: Revisa el estado de proxmox, si cambia de estado envía notificación
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.uptimekuma_proxmox
    from: "on"
    to: "off"
    for:
      hours: 0
      minutes: 7
      seconds: 0
conditions: []
actions:
  - action: notify.manre_telegram_bot
    metadata: {}
    data:
      message: No veo a Freya u.u
      title: "[[ha]] Kumita y Proxmox"
  - action: wake_on_lan.send_magic_packet
    metadata: {}
    data:
      broadcast_port: 9
      mac: AA:BB:CC:EE:FF:GG
  - action: notify.manre_telegram_bot
    metadata: {}
    data:
      title: "[[ha]] Kumita y Proxmox"
      message: ... Despertando a Freya
mode: single

Y listo, así culmina la configuración que hice para despertar a Freya cuando se va la luz.