14. Mai 2024
Überwachen von Smart Cities mit Grafana, Timescale und Sentilo
Integrating open source into Sentilo: Improvements for smart cities
In der Firma entwickeln und pflegen wir Sentilo, eine Open-Source-Plattform für Sensoren und Aktoren für Smart Cities. Im Rahmen dieses Projekts suchen wir stets nach Möglichkeiten, Open-Source-Tools zu integrieren, die Zeit und Geld sparen und gleichzeitig die Effizienz der smart cities steigern.
Wie bei einem Puzzle bemühen wir uns, das „Open-Source“-Tool, das am besten zu jedem Anwendungsfall passt, zu integrieren, wenn neue Anforderungen entstehen. Ursprünglich haben wir Sentilo im Jahr 2012 als kleines IoT-Projekt in Zusammenarbeit mit der Stadtverwaltung von Barcelona entwickelt, und heute verfügen wir über ein ausgereiftes Produkt, das von einer vielfältigen Gemeinschaft von öffentlichen und privaten Einrichtungen unterstützt wird. Als Referenz verwaltet die Barcelona Sentilo-Instanz mehr als 7,5 Millionen Nachrichten pro Tag. SEIDOR betreut Sentilo für verschiedene Kunden, sowohl durch „On-Premises“-Bereitstellungen als auch als SaaS-Dienst über sein Spin-off Thingtia. Last but not least leiten wir die Sentilo-Community mit finanzieller Unterstützung der Stadtverwaltung von Barcelona.
Als Teil dieses Wachstums und mit dem Ziel, den Satz von Modulen zu erweitern, die die Plattform unterstützen, haben wir kürzlich Grafana und TimescaleDB integriert, die zu wichtigen Bestandteilen unserer Smart City-Lösung geworden sind. In diesem Artikel werde ich erklären, warum die Anfrage eines Kunden uns dazu veranlasst hat, neue anpassbare Visualisierungen mit Grafana zu erstellen, die dazu beigetragen haben, eine Vielzahl von Prozessen in Smart Cities zu verbessern.
Integration von Grafana und Timecale
Eines der Hauptziele von Sentilo ist, **Informationen an seine abonnierten Module** so schnell wie möglich zu liefern. Diese Module sind in der Regel andere externe Systeme oder Datenquellen, wie ein Energiemonitoringsystem oder ein unternehmenseigener Data Lake. Um dies zu erreichen, werden die von den Sensoren der Smart City gesammelten Daten im Speicher gespeichert, was uns eine hohe Leistung bietet... aber man muss bedenken, dass Speicher teuer ist. Dieses Datenrepository ist nur vorübergehend; wir brauchten Langzeitspeicherung für historische Daten.
Für einige unserer Sentilo-Implementierungen haben Benutzer ihre eigenen Data Lakes (Datenseen), daher haben wir eine Reihe von Connectors für verschiedene Zielspeicher wie Kafka, Elasticsearch und die gängigsten relationalen Datenbanken auf dem Markt. Diese Art von Konfiguration funktioniert jedoch nicht für alle Szenarien aufgrund ihres Volumens und/oder ihrer Kosten. Aus diesem Grund mussten wir, als einer unserer Kunden uns bat, sein historisches Repository von Grund auf neu zu erstellen und in seine Sentilo-Plattform zu integrieren, mehrere Lösungen evaluieren, um die passende Lösung für den Anwendungsfall bereitzustellen.
Wir brauchten etwas, das uns dabei hilft, die Informationen in Echtzeit zu verarbeiten und es uns ermöglicht, historische Daten zu erkunden und zu entdecken, durch ein interaktives visuelles Web-Tool. Wir hatten bereits Erfahrung mit der Verwendung von Grafana für das Systemmonitoring und kannten seine ausgezeichneten Funktionen und die Vielzahl integrierbarer Datenquellen. Daher haben wir nach Analyse anderer Marktoptionen und Durchführung mehrerer PoCs beschlossen, uns für die folgende Kombination zu entscheiden:
- Timescale. Diese Open-Source-Zeitreihendatenbank, die auf PostgreSQL basiert, bietet eine hohe Leistung und Skalierbarkeit, auch bei der Arbeit mit großen Datenmengen. Sie bietet uns auch eine bekannte Abfragesprache wie SQL.
- Grafana. Diese Open-Source-Visualisierungstool verfügt über eine Vielzahl leistungsstarker Dashboards. Darüber hinaus bietet es interessante Funktionen für unsere Anwendungsfälle wie die Möglichkeit zur Einbettung von Inhalten, Multi-User-Unterstützung und das Teilen von Dashboards.
Wie im Architekturdiagramm ersichtlich ist, basiert unsere Smart City-Plattform auf einer Kombination von Datenbanken, Sensoren, Connectors und Tools. Hier ist eine kurze Beschreibung, wie diese Teile interagieren:
- Sentilo **speichert Daten** von Sensoren in zwei verschiedenen Datenbanken: Redis für Echtzeitdaten und MongoDB für die Metadaten des Sensor-Katalogs.
- Die Sentilo-API **bietet Dienste** zur Interaktion mit dem Katalog und zum Veröffentlichen von Echtzeitdaten (1). Anschließend werden die Daten im entsprechenden Repository gespeichert (2).
- Ein benutzerdefinierter Sentilo-Connector, basierend auf einer gemeinsamen Agentenarchitektur, der den Datenfluss von Redis empfängt, **empfängt die Informationen und speichert sie** in TimescaleDB (3).
- **Die Sensor-Metadaten werden regelmäßig mit der Timescale-Datenbank synchronisiert**, unter Verwendung eines weiteren maßgeschneiderten Moduls (4).
- Sentilo bietet eine Web-Schnittstelle für verschiedene Verwaltungszwecke (5). Administratoren können **ihren Katalog verwalten und Echtzeitdaten visualisieren**. Und über Grafana können Benutzer die historische Datenbank erkunden und spezifische Dashboards erstellen (6).
- Sentilo enthält auch eine Bürger-Web-Schnittstelle, über die jeder Bürger **die Stadtkarte erkunden kann**, die Sensoren und ihre öffentlich zugänglichen Daten visualisieren kann.
Durch Grafana können wir reichhaltige und interaktive Visualisierungen anbieten, die auf spezifische Branchen oder Typologien zugeschnitten sind und nahtlos in die öffentliche Website der Plattform integriert werden können.
Diese Lösung wurde für die Sentilo-Instanzen der Barcelona Smart Region und für die Stadtverwaltung von Eivissa (Spanien) über Thingtia implementiert. Sie bietet uns ein interaktives Such- und Entdeckungsframework für große Datenmengen (Millionen) und lange Zeitrahmen (Jahre) mit optimaler Leistung und Reaktionszeit.
Die Grafana-Panels sind in den Standard-Sentilo-Public-Viewer integriert und sind mit verschiedenen Bereichen verbunden: Lärmmessung, Luftqualität, Bewässerung, Wasserquellen und Energiemonitoring. Unsere Kunden können ihre eigenen leistungsstarken Dashboards eigenständig erstellen und mit anderen Mitgliedern der Sentilo-Community teilen.
Verwendung von Grafana zur Gewinnung von Big Data-Wert
Natürlich muss immer berücksichtigt werden, dass bei der Arbeit mit großen Datenmengen und der Anwendung von Filtern die Abfragen optimiert, Indizes hinzugefügt oder die Daten begrenzt werden müssen, die das Panel verwalten kann, insbesondere wenn diese Funktionen öffentlich zugänglich sind. Dies ist wichtig, um die Kosten niedrig zu halten und schnelle Ergebnisse bei der Ausführung Ihrer Abfragen zu liefern.
Dennoch hat sich die Lösung als ein guter Ansatz für die Arbeit mit großen Datenmengen erwiesen. Sie hat uns geholfen, Daten zu erkunden und zu entdecken, und wir können wertvolle Informationen extrahieren, indem wir verschiedene Quellen kombinieren. Es ist auch eine gute Möglichkeit, leistungsstarke Dashboards zu erstellen, die problemlos in andere Websites der Stadt integriert werden können.
Wenn Sie mehr über die Funktionsweise von Sentilo erfahren möchten oder wie Sie es in Ihre eigenen Pläne für Smart Cities integrieren können, können Sie die Sentilo-Community konsultieren. Sie können den Code kostenlos herunterladen, ihn als SaaS verwenden oder uns kontaktieren, um eine maßgeschneiderte Lösung zu erstellen.
Share