Status.page 3.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. ---
  2. format: markdown
  3. title: Statusinformationen zum laufenden FF-DO-Betrieb
  4. ...
  5. # status.ffdo.de
  6. Während der [Meshviewer](https://map.ffdo.de/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.
  7. Dieser Dienst wird seit Anbeginn des FF-DO privat betrieben, läuft also nicht auf dem FF-DO-Blech.
  8. # Prometheus und Grafana
  9. 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](https://de.wikipedia.org/wiki/Go_(Programmiersprache))), welche zu Maschinencode kompiliert wird, die Ineffizienz von Scriptsprachen. (Der im Webbrauser ablaufende Teil der Visualisierung verwendet allerdings JavaScript ... "there is no alternative":(
  10. Für den Richtfunk werden Prometheus und Grafana bereits genutzt (insb. zur Visualisierung von Bandbreitenmessungen), s. die Wiki-Seiten für die [Richtfunkstandorte](/Technik/Richtfunk/Standorte/) 1-4. Ebenso für den ["neuen" Freifunk](/Technik/Routing/IGP-Kopplung-Roadmap).
  11. ## Supernodes
  12. Siehe die Seite zum [Monitoring](Supernodes/monitoring).
  13. ## "neuer" Status-Dienst
  14. 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.
  15. ### Wie funktioniert das?
  16. Auf dem [Map-Server](Supernodes/map-server) werden periodisch Betriebsdaten von den Freifunk-Routern im FF-DO erfasst: Hardware-Modell, Firmware-Version, Konfiguration (zB Name des Routers, Koordinaten, VPN-uplink?), Statistik (zB Anzahl clients). Aus diesen Informationen wird eine Datei namens `nodes.json` zusammengestellt, die der Webbrowser für die Anzeige der [FF-DO-Map](https://map.ffdo.de/) verwendet.
  17. Die o.g. `nodes.json` des Map-Servers wird aber auch auf einer weiteren virtuellen Maschine (vm23) ausgewertet. Genauer gesagt wird hier vom JSON-Format in eine textuelle Zeitreihendatei konvertiert, diese per node_exporter an den Datenbunker [Prometheus](https://prometheus.io/) verfüttert und schließlich diese Datenquelle mit [Grafana](https://grafana.org/) visualisiert. Grafiken aus dem [Dashboard](http://vm23.free.de:3000/dashboard/file/FF-DO-status.json?orgId=1) (zZ noch im Probebetrieb) kann man von Grafana (via phantomjs (sic!-)) auch zu PNG rendern lassen, zB so:
  18. <p align="center"><img src="http://vm23.free.de:3000/render/dashboard-solo/file/FF-DO-status-render.json?orgId=1&amp;panelId=1&amp;theme=light&amp;width=600&amp;height=250&amp;from=now-24h&amp;to=now" alt="FF-DO-status-render panelId=1"/></p>
  19. ### Verwendete Software
  20. Außer den o.g. Komponenten (Map-Server/nodes.json, node_exporter, Prometheus, Grafana) braucht man noch
  21. - eine Software, welche die `nodes.json` zu Zeitreihen konvertiert, und zwar ins [Prometheus metrics exposition text format](https://prometheus.io/docs/instrumenting/exposition_formats/#text-format-details),
  22. - Dashboards, welche die von Prometheus gebunkerten Daten als humankompatible Webseiten sichtbar machen.
  23. Beides findest Du bei Interesse in einem Software-Repository des FF-DO: [nodes2grafana](https://git.ffdo.de/altlast/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.