Salta al contingut

Categoria: IoT

Plataforma IoT amb MQTT gestionada: broker, fluxos, sèries temporals i taulers

Un broker MQTT, fluxos que transformen les dades, una base de dades de sèries temporals i taulers, peces obertes que gestionem com una sola plataforma al vostre compte.

On es munta
Al vostre compte, a nom vostre
Còpies
Amb restauració provada
Actualitzacions
Planificades i documentades
Llicència
Open source (Mosquitto, Node-RED, InfluxDB 3 Core, Grafana); EMQX 5.9 o posterior, BSL 1.1

En resum

Una plataforma IoT a mida reuneix peces de codi obert: un broker MQTT (Mosquitto o EMQX) que rep els missatges dels dispositius, Node-RED per a transformar-los i moure'ls, TimescaleDB o InfluxDB per a guardar les sèries temporals i Grafana per a taulers i alertes. La muntem al vostre compte amb TLS i permisos per dispositiu, i responem de les còpies, la vigilància i les actualitzacions del conjunt.

Què ens encarreguem de mantindre?

Una pila IoT feta amb peces obertes sol començar com una prova en un servidor i acabar en producció sense que ningú l’haja preparada per a això. El risc no és en cada peça, sinó en les unions: un flux de Node-RED que es para, un broker que descarta missatges o un disc que s’omple de telemetria.

  • Broker MQTT

    Mosquitto o EMQX amb TLS, autenticació per dispositiu i ACL per topic.

  • Node-RED

    Fluxos en un repositori, editor protegit i credencials xifrades.

  • Sèries temporals

    TimescaleDB o InfluxDB amb retenció i compressió segons l’ús.

  • Grafana

    Taulers per instal·lació i alertes de valors i de sensors muts.

  • Ingesta

    Missatges per segon, clients connectats i missatges descartats al broker.

  • Actualitzacions

    Versions de cada peça fixades, provades juntes i actualitzades per ordre.

Quina arquitectura recomanem?

Els dispositius publiquen per MQTT amb TLS al broker. Node-RED se subscriu als topics, valida i transforma els missatges i els escriu a la base de dades de sèries temporals; Grafana en llig les dades per als taulers i les alertes. Cada peça en el seu contenidor, la configuració al repositori i la base de dades amb còpies fora del servidor.

Situació El que muntem Per què
Centenars o pocs milers de dispositius Mosquitto, Node-RED, TimescaleDB i Grafana en un servidor Senzill, barat i fàcil de recuperar
Moltes connexions o cap tall tolerable EMQX en clúster amb la seua llicència, o diversos Mosquitto per grups de dispositius Més connexions i sense un únic punt de fallada
Només mesures per a taulers InfluxDB en lloc de TimescaleDB Escriptura i consultes de mètriques molt directes

El port MQTT sense xifrar no s’obri a internet. Des de Mosquitto 2.0, sense configuració explícita només escolta en local i no admet connexions anònimes, i així el deixem: cada listener, declarat i amb la seua autenticació.

Per a qui és?

  • Indústries amb màquines o sensors en planta: volen veure consums, temperatures o parades en taulers propis, sense pagar una plataforma per dispositiu.
  • Equips de producte que afegeixen telemetria: la seua aplicació necessita rebre dades d’equips en camp i prefereixen peces estàndard que coneixen.
  • Qui ja té la pila muntada a mà: funciona en un servidor, però sense còpies, sense TLS o sense ningú que l’actualitze.

Quins problemes trobem més sovint?

  • MQTT sense TLS i amb un usuari compartit: tots els dispositius fan servir la mateixa contrasenya i poden publicar en qualsevol topic.
  • Fluxos de Node-RED només al servidor: sense repositori ni còpia, un error en editar no té marxa arrere.
  • Telemetria sense retenció: la base de dades creix fins a omplir el disc i la ingesta es para.
  • Sensors muts que ningú no detecta: el tauler mostra l’últim valor i sembla que tot va bé.
  • Imatges amb l’etiqueta latest: un reinici canvia de versió sense que ningú l’haja provada.
  • Tot al mateix disc: la base de dades, les còpies i els registres comparteixen volum.

Com fem les còpies i les actualitzacions?

Copiem la base de dades de sèries temporals fora del servidor: TimescaleDB amb arxivat continu i recuperació a un moment concret, com en PostgreSQL gestionat, i InfluxDB amb les seues còpies pròpies. Els fluxos de Node-RED, la configuració del broker i les ACL, i els taulers de Grafana viuen al repositori. Restaurem periòdicament en un entorn de prova i comprovem que un missatge de prova arriba del broker al tauler.

Fixem la versió de cada peça, llegim les notes abans de canviar-la i provem el conjunt en un entorn a part. Actualitzem una peça cada vegada, començant per les que no guarden estat, i vigilem que la ingesta no baixe després del canvi.

Com és el suport dia a dia?

Les mètriques del broker, de Node-RED i de la base de dades van a Prometheus i Grafana, com expliquem en monitoratge amb Grafana i Prometheus, amb alertes de clients desconnectats, missatges descartats, sensors que deixen d’enviar i disc. Si després els missatges han de passar a altres sistemes en grans volums, els portem a Kafka. La vigilància automàtica és contínua; la resposta humana, el següent dia feiner en horari laboral, dins del SRE com a servei. Cada mes rebeu un informe amb versions, incidències, creixement de la telemetria i canvis fets.

Com encaixen les peces
  1. Dispositius i passarel·lesMQTT amb TLS
  2. Mosquitto o EMQXBroker amb ACL per topic
  3. Node-REDTransforma i encamina
  4. TimescaleDB o InfluxDBSèries temporals
  5. GrafanaTaulers i alertes

On ho muntem?

Al vostre compte, al proveïdor que ja feu servir o al que encaixe millor. Si les dades s'han de quedar a la UE, Hetzner i OVHcloud són les opcions europees.

Proveïdors on ho muntem

  • Hetzner
  • AWS
  • Google Cloud
  • Azure
  • DigitalOcean
  • OVH
  • Servidor propi
ProveïdorCom ho muntemA tindre en compte
HetznerServidors cloud amb les peces en Docker o en Kubernetes, en xarxa privada, i còpies en Object Storage de Hetzner.Molt econòmic per a telemetria; el broker i la base de dades els operem nosaltres.
AWSLes peces en EC2 o EKS, amb TimescaleDB en un PostgreSQL propi. AWS IoT Core pot fer de broker si us encaixa.AWS IoT Core cobra per missatge i connexió: el comparem amb un broker propi amb el vostre volum.
Google CloudLes peces en Compute Engine o GKE, amb còpies a Cloud Storage.
AzureLes peces en màquines virtuals o AKS, amb còpies a Blob Storage.Event Grid admet MQTT; el valorem si la resta de la vostra plataforma ja és a Azure.
DigitalOceanLes peces en Droplets o en DOKS, amb Spaces com a emmagatzematge d'objectes.
OVHLes peces en instàncies de Public Cloud o en Managed Kubernetes, amb Object Storage compatible amb S3.
Servidor propiLa plataforma en un servidor de la planta o de l'oficina, prop dels dispositius.Si la connexió a internet cau, les dades continuen guardant-se en local; les còpies van fora.

Què inclou

  • Broker MQTT amb Mosquitto, o EMQX quan necessiteu moltes connexions, amb TLS i usuaris o certificats per dispositiu.
  • Permisos per topic (ACL): cada dispositiu publica només en el que és seu i cada aplicació llig només el que necessita.
  • Node-RED amb l'editor protegit per contrasenya o pel vostre inici de sessió únic, i els fluxos guardats en un repositori.
  • TimescaleDB o InfluxDB per a la telemetria, amb retenció, compressió o reducció de dades antigues definides.
  • Grafana amb taulers per instal·lació i alertes de valors fora de rang o de sensors que deixen d'enviar.
  • Còpies de la base de dades, dels fluxos i de la configuració del broker, amb restauració de prova.
  • Mètriques del broker, de Node-RED i de la base de dades, amb alertes de connexions caigudes, missatges descartats i disc.
  • Actualitzacions de cada peça assajades juntes en un entorn a part, amb la plataforma descrita en codi.

Preguntes freqüents

Mosquitto o EMQX?

Mosquitto és lleuger, molt estable i suficient per a la majoria d'instal·lacions amb centenars o pocs milers de dispositius, però la seua versió oberta no forma clúster. EMQX escala a moltes més connexions i porta tauler, regles i clúster, però des de la versió 5.9 té llicència BSL 1.1: un sol node es pot fer servir gratis en producció i el clúster necessita llicència comercial. Les versions Open Source fins a la 5.8 continuen amb Apache 2.0, encara que sense versions noves.

TimescaleDB o InfluxDB per a la telemetria?

TimescaleDB és una extensió de PostgreSQL: consultes en SQL, unions amb les vostres altres taules i les mateixes còpies que qualsevol PostgreSQL. InfluxDB és una base de dades dedicada a sèries temporals, molt còmoda per a escriure i consultar mètriques. Si ja feu servir PostgreSQL o voleu creuar la telemetria amb dades de negoci, TimescaleDB; si només guardeu mesures i les mireu en Grafana, qualsevol de les dues serveix.

Node-RED serveix per a producció?

Sí, si es tracta com a codi: editor protegit, fluxos en un repositori amb revisió de canvis, credencials xifrades i un entorn de proves abans de tocar producció. El que no convé és editar fluxos en calent al servidor de producció sense còpia.

Per què una pila pròpia i no una plataforma IoT completa?

Una pila pròpia és més lleugera i no té llicències per dispositiu, i cada peça es pot canviar per una altra. A canvi, la gestió de dispositius, els taulers per als vostres clients i els permisos per usuari s'han de muntar. Si necessiteu tot això fet, una plataforma com ThingsBoard pot encaixar millor; us ho diem quan vegem el vostre cas.

Què passa amb els missatges si cau el broker?

Els dispositius ben configurats es reconnecten sols i, amb QoS 1 o 2 i sessions persistents, el broker lliura els missatges pendents als subscriptors quan torna. El que el dispositiu no guarde mentre no hi ha connexió es perd; per això revisem també la configuració dels clients, no només la del broker.

Expliqueu-nos el vostre cas

En una trucada gratuïta de 20 minuts veiem on sou i per on començar. Sense compromís.

Reservar una trucada de 20 minuts

Documentació oficial consultada

Les dades tècniques d'aquesta pàgina es basen en:

Revisat el

WhatsApp