Statusinformationen zum laufenden FF-DO-Betrieb
status.ffdo.de
Während der Meshviewer den aktuellen Zustand der FF-DO-Router anzeigt (auf einer geographischen Karte), ermöglicht http://status.ffdo.de/ einen Überblick über die zeitliche Entwicklung von Routerdaten, nämlich der Anzahl der clients und der load eines Routers. Stand 01/2024: Der Dienst steht nicht mehr zur Verfügung.
Dieser Dienst wird seit Anbeginn des FF-DO privat betrieben, läuft also nicht auf dem FF-DO-Blech.
Prometheus und Grafana
Weil die Visualisierung relevanter Betriebsdaten nicht nur der einzelnen Plasterouter, sondern auch (und gerade:) der “zentralen” FF-DO-Infrastruktur wichtig ist, gibt es seit Anfang 2017 Bemühungen, dies mit Hilfe von Prometheus und Grafana zu tun. Gründe für diese Auswahl sind Modularisierung von Datenhaltung und -bereitstellung einerseits und Visualisierung andererseits. Weiterhin vermeidet die Implementierung in einer Programmiersprache (Go), welche zu Maschinencode kompiliert wird, die Ineffizienz von Scriptsprachen.
Für den Richtfunk werden Prometheus und Grafana bereits genutzt (insb. zur Visualisierung von Bandbreitenmessungen), s. die Wiki-Seiten für die Richtfunkstandorte 1-4. Ebenso für den “neuen” Freifunk.
Supernodes
Siehe die Seite zum Monitoring.
“neuer” Status-Dienst
Hier werden, ähnlich wie bei status.ffdo.de, Informationen über einzelne FF-DO-Router, insb. die zeitliche Entwicklung veränderlicher Werte (clients, load, traffic, …) sichtbar gemacht, allerdings mit Hilfe von Prometheus und Grafana.
Wie funktioniert das?
In der Firmware der ffdo Router ist das Modul gluon-respondd aktiv. Dieses übermittelt periodisch einige Daten an einen ‘gluon-collector’ Service. So werden zB Hardware-Modell, Firmware-Version, Konfiguration (zB Name des Routers, Koordinaten, VPN-uplink?), Statistik (zB Anzahl clients).. übertragen. Dieser ‘collector’ Service läuft auf dem Map-Server.
Aus den Informationen wird eine Datei namens nodes.json zusammengestellt, die der Webbrowser für die Anzeige der FF-DO-Map verwendet.
Die o.g. nodes.json
des Map-Servers wird aber auch auf einer weiteren virtuellen Maschine (grafana.ffdo.de) ausgewertet. Genauer gesagt wird hier vom JSON-Format in eine textuelle Zeitreihendatei konvertiert, diese per node_exporter an den Datenbunker Prometheus verfüttert und schließlich diese Datenquelle mit Grafana visualisiert.
Prometheus speichert die Daten zur Zeit einen Monat lang.
Grafiken aus dem Dashboard kann man von Grafana (via phantomjs (sic!-)) auch zu PNG rendern lassen, zB so:
Verwendete Software
Außer den o.g. Komponenten (Map-Server/nodes.json, node_exporter, Prometheus, Grafana) braucht man noch
- eine Software, welche die
nodes.json
zu Zeitreihen konvertiert, und zwar ins Prometheus metrics exposition text format, - Dashboards, welche die von Prometheus gebunkerten Daten als humankompatible Webseiten sichtbar machen.
Beides findest Du bei Interesse in einem Software-Repository des FF-DO: nodes2grafana. Die Software lässt sich sehr leicht zur Benutzung durch andere FF-Communities anpassen, sofern diese das gleiche Format für ihre nodes.json
benutzen.
Zusätzlich wird noch ngnix verwendet, um grafana auch über standardisierte Webports von außen erreichbar zu machen.