---
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. 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](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&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>

### 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. 

