Status.page 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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.
  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. In der Firmware der ffdo Router ist das Modul [gluon-respondd](https://github.com/freifunk-gluon/gluon/tree/master/package/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.
  17. Dieser 'collector' Service läuft auf dem [Map-Server](Supernodes/map-server).
  18. Aus den Informationen wird eine Datei namens [nodes.json](https://map.ffdo.de/data/nodes.json) zusammengestellt, die der Webbrowser für die Anzeige der [FF-DO-Map](https://map.ffdo.de/) verwendet.
  19. 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](https://github.com/prometheus/node_exporter) an den Datenbunker [Prometheus](https://prometheus.io/) verfüttert und schließlich diese Datenquelle mit [Grafana](https://grafana.org/) visualisiert.
  20. [Prometheus](https://prometheus.ffdo.de/) speichert die Daten zur Zeit einen Monat lang.
  21. Grafiken aus dem [Dashboard](http://grafana.ffdo.de/dashboard/file/FF-DO-status.json?orgId=1) kann man von Grafana (via phantomjs (sic!-)) auch zu PNG rendern lassen, zB so:
  22. <p align="center"><img src="http://grafana.ffdo.de/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>
  23. ### Verwendete Software
  24. Außer den o.g. Komponenten (Map-Server/nodes.json, node_exporter, Prometheus, Grafana) braucht man noch
  25. - 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),
  26. - Dashboards, welche die von Prometheus gebunkerten Daten als humankompatible Webseiten sichtbar machen.
  27. 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.
  28. Zusätzlich wird noch ngnix verwendet, um grafana auch über standardisierte Webports von außen erreichbar zu machen.