Monitoring im Freifunk (Yanic)

Als ein Bremer Freifunker, bin ich einer der Hauptentwickler, der Monitoring-Software.

Diesen Blogeintrag hab ich für Freifunk Bremen geschrieben:

Mit der neuen Webseite hat sich auch vieles im Bereich Monitoring verändert.

Hintergrund

In der Vergangenheit gab es die Software Alfred, um von den Knoten Information zu bekommen. Doch diese Software wird von Gluon aus technischen Gründen bald nicht mehr weiter eingesetzt. Bereits Anfang letzten Jahres wurde in Gluon mit der neuen Statusseite der Knoten einiges an der Bereitstellung von Information umgebaut. Die dadurch entstandene Software respondd wird genutzt, um Nachbarknoten zu finden und die Statusseite zu füllen.

Entwicklung

Durch den unausgesprochenen Status, dass Alfred veraltet ist, musste nun ein Ersatz her. Hierfür kamen corny und ich auf die Idee, dafür eine Software zu entwickeln. Die Wahl der Sprache fiel auf Go, da sie sich für nebenläufige Netzwerkanwendungen bestens eignet.

Als Datenbank zum Abspeichern der Werte entschieden wir uns für InfluxDB. Sie ist zum Abspeichern von Messwerten über Zeit gedacht, benutzt eine Sprache angelehnt an SQL und bietet eine Bibliothek für Go. Zudem sollte die Software auch die Möglichkeit bieten, die Daten für die bisherige Kartensoftware aufbereitet zu liefern. Außerdem sollte sie zukunftssicher geschrieben worden sein, damit sie einfach erweitert werden kann, um die eingesammelten Daten für möglicherweise noch kommende weitere Software zur Visualisierung bereitzustellen.

Letztes Jahr auf der Breminale fand der erste große Test statt. Dort erfüllte die Software ihre Aufgabe bereits sehr gut. Es sind allerdings kleine Probleme aufgetaucht, die den direkten Einsatz im Freifunk Bremen verzögerten. Die bestanden hauptsächlich aus zeitlicher Verarbeitung. Dies lag vor allem an der verbindungslosen Kommunikation, mit der respondd Daten austauscht. Um diese Probleme noch genauer und über einen längeren Zeitraum zu beobachten, haben wir zunächst eine kleine Instanz zum Entwickeln im Bremer Freifunk-Netz aufgesetzt. Zur Lösung führen nun verschiedene Mechanismen in unserer Software. Doch auch die Gluon-Entwickler haben unabhängig von uns in respondd eine Verbesserung für dieses Problem implementiert.

Zum Zeitpunkt der Veröffentlichung der neuen Webseite hielten wir unsere Software für ausgereift genug, um sie mit der neuen Webseite vorrangig einzusetzen und damit Alfred bei uns zu ersetzen.

Der umständliche Name respondd-collector wurde auf Wunsch vieler Freifunker und nach längerer Diskussion geändert. Der neue Name Yanic steht für „Yet another node info collector“, da gleichzeitig auch in anderen Communities ähnliche Software entstanden ist. Eine vergleichbare Software ist HopGlass Server.

Auswirkung unserer Entwicklung auf andere Communities

Nach einem größeren Refactoring ist Yanic nun modular und unterstützt unterschiedliche Datenbanksysteme. In der GPN17 hat der Freifunker andir Graphite-Support integriert.

Denn durch die moderne grafische Aufbereitung mit Grafana, haben ein paar Communities bereits Interesse an unserer Software geäußert. Nach aktuellem Wissensstand nutzen folgende Communities bereits Yanic: - Freifunk Regensburg - Freifunk im Ennepe-Ruhr-Kreis - Freifunk Frankfurt am Main - Freifunk Hannover - Freifunk Hochstift - Freifunk in Mainz, Wiesbaden & Umgebung - Freifunk Uelzen - Freifunk Gera Greiz - Freifunk Westpfalz - und wahrscheinlich viele, von den wir es nicht wissen 😃

Auch die freundschaftliche Konkurrenz, die nach Alfred nun an Hopglass entwickeln, äußern mit einem Fork Interesse an Yanic.

Darstellung als Graphen

Wie bereits erwähnt, ist Grafana ein sehr gutes und modernes Tool zur Darstellung von Graphen. Hier mal eine, um höchstens fünf Minuten verzögerte, Live-Darstellung unseres Netzes direkt von Grafana:

Dies und vieles mehr kann man nun mit den eingesammelten Daten tun. Ihr dürft Euch auch gerne dort mal austoben, eine Registrierung ist nicht notwendig. Der Benutzer lautet „ffhb“ und das Passwort „wellenfunk“, doch bitte beachtet folgende Regeln:
Lasst Eure Dashboards mit „[Privat]“ anfangen, und verändert keine Dashboards von anderen. Fragt bei den Dashboards ohne „[Privat]“ den Rest der Bremer Community (die man gern im IRC, Mailingliste oder auf ein Treffen erreicht) bevor ihr sie verändert.
(Falls diese Regeln nicht funktionieren, müssen wir leider eine verpflichtende Authentifizierung einführen.)

Tipp

Es wurde oft angeregt eine Software einzurichten, welche einen beim Ausfall seines Knotens benachrichtigt. Dies ist tatsächlich mit Grafana sehr rudimentär (und etwas kompliziert) möglich, indem man unter Alerting einen eigenen E-Mail-Eintrag erstellt. Daraufhin setzt man auf sein Dashboard in einem Graphen als Alert einen Grenzwert und eine Benachrichtigung zu seinem zuvor angegeben Kontakt.
Beachtet: Die E-Mail-Adressen sind frei zugänglich. Außerdem könnten durch „Schwankungen“ im Freifunk viele E-Mails ankommen.

Die offizielle Anleitung von Grafana auf Englisch.


Tut mir leid, dass es zu diesem Thema erst jetzt einen Beitrag gibt. Die Entwicklung von Yanic nimmt sehr viel Zeit in Anspruch, wodurch ich auch in anderen Freifunk Angelegenheiten etwas weniger präsent bin.

Ihr könnt Euch schon mal freuen, dass hoffentlich bald einen weiteren Beitrag zur aktuellen Karte geben wird!