Dies ist eine alte Version des Dokuments!
Yanic & Meshviewer
Wir betreiben fuer unsere Karte eine Yanic-Installation auf ffs03. Wir benutzen als Datenbank fuer Yanic influxdb und als Karte meshviewer.
Yanic
Yanic sammelt in unserem Netz die respondd-Daten von allen Nodes ein. Sie werden dann in folgenden Formaten zur Verfuegung gestellt:
- in der influxdb fuer Statistiken im Grafana und auf der Karte
- fuer die Karte (Meshviewer) als JSON
- die rohen eingesammelten Daten als so genannte raw.json (nur mit Authentifizierung)
- fuer den FFS-Monitor
- fuer das Konvertierskript auf yanic
Konvertierskript
Aus historischen Gruenden™ gibt es auf yanic ein Konvertierskript carbon.py, das die raw.json von Yanic aus dem Dateisystem liest und in collectd-Format konvertiert. Collectd wird dann wiederrum per Prometheus gescraped.
Ja, das muesste mal™ jemand aufraeumen.
Meshviewer
apt install npm
git clone https://github.com/ffsh/meshviewer.git cd meshviewer npm install ./node_modules/.bin/yarn ./node_modules/.bin/yarn run gulp
- dann landet eine Application unter build
Eine Buildumgebung fuer Meshviewer liegt auf ffs-yanic01 unter /opt/meshviewer. Die erzeugten Dateien aus dem Build-Verzeichnuss muessen nach /var/www/html/meshviewer kopiert werden.
In der meshviewer Config haben wir fuer das Segment und die PLZ benutzerdefinierte Felder hinterlegt. Die interessanten Codezeilen sind:
{ 'name': 'node.segment', 'value': function(d) { var seg = null d.addresses.forEach(function(addr) { if (addr.startsWith("fd21:b4dc")) { addr_split = addr.split(":") if (addr_split.length > 2) { seg = addr_split[2].replace("4b", "") } } }) if (!seg) { return "?" } return seg } }, { 'name': 'node.zip', 'value': function(d) { if (d.custom_fields && d.custom_fields.zip) { return d.custom_fields.zip } return "?" } },