====== 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 [[https://github.com/poldy79/FfsScripts/blob/master/carbon.py|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 "?" } },