123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- ---
- format: markdown
- title: Statusinformationen zum laufenden FF-DO-Betrieb
- ...
- # status.ffdo.de
- 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.
- 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](https://de.wikipedia.org/wiki/Go_(Programmiersprache))), 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](/Technik/Richtfunk/Standorte/) 1-4. Ebenso für den ["neuen" Freifunk](/Technik/Routing/IGP-Kopplung-Roadmap).
- ## Supernodes
- Siehe die Seite zum [Monitoring](Supernodes/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](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.
- Dieser 'collector' Service läuft auf dem [Map-Server](Supernodes/map-server).
- 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.
- 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.
- [Prometheus](https://prometheus.ffdo.de/) speichert die Daten zur Zeit einen Monat lang.
- 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:
- <p align="center"><img src="http://grafana.ffdo.de/render/dashboard-solo/file/FF-DO-status-render.json?orgId=1&panelId=1&theme=light&width=600&height=250&from=now-24h&to=now" alt="FF-DO-status-render panelId=1"/></p>
- ### 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](https://prometheus.io/docs/instrumenting/exposition_formats/#text-format-details),
- - 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](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.
- Zusätzlich wird noch ngnix verwendet, um grafana auch über standardisierte Webports von außen erreichbar zu machen.
|