Documentacion Monitor RPi

Resumen

Aplicacion web para monitorizar Raspberry Pi mediante SSH desde un contenedor dedicado. El dashboard muestra el ultimo estado calculado por el backend; el navegador no abre conexiones SSH.

Rutas

Configuracion

La configuracion persistente esta en /home/yamaray/docker/monitorRPi/data/config.json, montada dentro del contenedor como /data/config.json.

Generales

Dispositivos

Autenticacion SSH por clave asimetrica

Por dispositivo se puede usar password o clave asimetrica. Si el dispositivo usa authMethod: key, el backend usa la clave privada global del monitor y no usa el password.

Clave en el contenedor

Guarda la clave privada en la RPi donde corre el monitor:

/home/yamaray/docker/monitorRPi/ssh/monitor_rpi_ed25519
/home/yamaray/docker/monitorRPi/ssh/monitor_rpi_ed25519.pub

Protege permisos:

chmod 700 /home/yamaray/docker/monitorRPi/ssh
chmod 600 /home/yamaray/docker/monitorRPi/ssh/monitor_rpi_ed25519

El compose debe montar la carpeta como solo lectura:

- /home/yamaray/docker/monitorRPi/ssh:/ssh:ro

En el configurador general usa las rutas vistas desde el contenedor:

sshPrivateKeyPath: /ssh/monitor_rpi_ed25519
sshPublicKeyPath: /ssh/monitor_rpi_ed25519.pub

En cada dispositivo selecciona Auth SSH = Clave asimetrica. El dispositivo solo necesita IP/host, puerto y usuario SSH.

Clave publica en la Raspberry destino

En el usuario SSH remoto, pega la clave publica en:

~/.ssh/authorized_keys

Comandos tipicos en la Raspberry destino:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
nano ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

El nombre correcto del archivo es authorized_keys, no authorised_keys.

Prueba manual

docker exec -it monitor-rpi ssh -i /ssh/monitor_rpi_ed25519 -o IdentitiesOnly=yes -p 34000 pi@192.168.0.1

Si entra sin pedir password, el monitor podra usar esa clave para el scan.

API

GET /api/status

Devuelve el ultimo estado: resumen, dispositivos, umbrales, clientes activos e intervalo actual.

GET /api/config

Devuelve la configuracion completa.

POST /api/config

Guarda la configuracion completa y reinicia el ciclo de scan.

POST /api/reload

Recarga la configuracion desde disco.

POST /api/scan-now

Fuerza un scan SSH inmediato.

POST /api/client-heartbeat

Usado por el dashboard visible para activar el intervalo rapido.

POST /api/clients/clear

Limpia los clientes activos en memoria.

Escaneo Adaptativo

0 clientes visibles  -> idleScanIntervalSeconds
1+ clientes visibles -> refreshIntervalSeconds

Temperatura Top-Rack

Si una RPi tiene un sensor externo del rack, Node-RED puede escribir la lectura en un archivo JSON local.

{
  "temperatureC": 23.7,
  "sensor": "rack-top",
  "updatedAt": "2026-06-05T21:12:18.997Z"
}

En el configurador, en ese dispositivo, usa Archivo temp rack con una ruta como:

/home/yamaray/monitor-rpi/rack-temp.json

Docker

cd /home/yamaray/docker/monitorRPi
docker compose up -d --build