|
@@ -1,43 +1,82 @@
|
|
|
-# nodes2grafana
|
|
|
-
|
|
|
-## Über diese Software
|
|
|
+# Über nodes2grafana
|
|
|
|
|
|
nodes2grafana ist ein Konverter für `nodes.json` -> prometheus Textformat. Mit dem erforderlichen Drumrum, incl. grafana Dashboards.
|
|
|
|
|
|
-### Herunterladen
|
|
|
+Die Software befindet sich zZ in Dortmund im Probebetrieb, s. die Dashboards [FF-DO-status](http://vm23.free.de:3000/dashboard/file/FF-DO-status.json) und [FF-DO-status-group](http://vm23.free.de:3000/dashboard/file/FF-DO-status-group.json). Sowie die Wiki-Seite zum FF-DO-[Status](http://url.free.de/ffdo/Technik/Netzinfrastruktur/Status).
|
|
|
|
|
|
-Den Inhalt dieses repository's kann man sich hier als tarball herunterladen: <https://git.ffdo.de/altlast/nodes2grafana/archive/master.tar.gz>.
|
|
|
+nodes2grafana ist aber nicht spezifisch für die Dorfmunder FF-Community, sondern kann durch Editieren einer Konfigurationsdatei (s.u.) von anderen Communities "umge*brand*et" werden:-) Zumindest, wenn die dortige `nodes.json` die gleiche Struktur hat wie in Dortmund. Ansonsten müsste der Konverter (`nodes2prom`) angepasst werden, d.h. z.Z.: umprogrammiert.
|
|
|
|
|
|
-Nach erfolgreichem `make` (s.u.) findet sich der tarball in `dist/nodes2grafana.txz`. Hat man lokale Modifikationen an der Software vorgenommen, so sind sie im tarball enthalten, sofern man `dist/Makefile.in` ggf. angepasst hat.
|
|
|
+# Installation
|
|
|
+
|
|
|
+## Herunterladen
|
|
|
|
|
|
-## Installation
|
|
|
+Den aktuellen Stand dieses repository's kann man sich hier als tarball herunterladen: <https://git.ffdo.de/altlast/nodes2grafana/archive/master.tar.gz>. Oder das repository mit `git` klonen: <https://git.ffdo.de/altlast/nodes2grafana.git>.
|
|
|
|
|
|
-### Benötigte Software
|
|
|
+Nach erfolgreichem `make` (s.u.) findet sich der tarball in `dist/nodes2grafana.txz`. Hat man lokale Modifikationen an der Software vorgenommen, so sind sie im tarball enthalten, sofern man `dist/Makefile.in` ggf. angepasst hat.
|
|
|
+
|
|
|
+## Benötigte Software
|
|
|
|
|
|
Benötigt wird außer den üblichen verdächtigen Un*x-utilities nur [SML/NJ](http://www.smlnj.org/). Das smlnj package sollte vollständig sein, d.h. auch `ml-build` und `heap2exec` enthalten. Dies ist beim FreeBSD port lang/smlnj der Fall.
|
|
|
|
|
|
-### Konfiguration
|
|
|
+## Konfiguration
|
|
|
|
|
|
-Zwecks Konfigurationsanpassung (Pfade, Metriknamen) die Datei `conf/substitutions.conf.default` nach `/etc/nodes2grafana.conf` kopieren und die zu ändernden Werte anpassen.
|
|
|
+Zwecks Konfigurationsanpassung (Pfade, Metriknamen, Community) die Datei `conf/substitutions.conf.default` nach `/etc/nodes2grafana.conf` kopieren und die zu ändernden Werte anpassen.
|
|
|
Zeilen, die gegenüber der substitutions.conf.default nicht geändert wurden, können auch weggelassen werden.
|
|
|
|
|
|
Will man nicht gleich im /etc herumschreiben sondern erstmal ausprobieren, kann man `conf/substitutions.conf.local` verwenden.
|
|
|
|
|
|
Anschließend:
|
|
|
|
|
|
-### Bauen
|
|
|
+## Bauen
|
|
|
|
|
|
- cd conf && make && cd .. && make
|
|
|
+ make -C conf && make
|
|
|
# make install
|
|
|
# make clean
|
|
|
# rm Makefile
|
|
|
|
|
|
Nach einem erfolgreichen `make` befinden sich im Verzeichnis `test/tmp` die Ergebnisse des Testlaufs (cd test && make).
|
|
|
|
|
|
+## Betreiben
|
|
|
+
|
|
|
+### nodes2prom
|
|
|
+
|
|
|
+Durch `make install` werden der Konverter `nodes2prom` und ein script `nodes2prometheus.sh` nach *BIN_DIR* installiert. Das script `fetch`t die nodes.json von der angegebenen *NODES_URL* und konvertiert sie mit `nodes2prom` zu einer .prom-Datei nach *EXPORT_DIR*. Das script sollte im Betrieb periodisch ausgeführt werden. S. `etc/crontab`.
|
|
|
+
|
|
|
+### node_exporter
|
|
|
+
|
|
|
+Es genügt, den `node_exporter` nur mit dem textfile-Kollektor laufen zu lassen, um die ....prom Datei aus dem *EXPORT_DIR* für Prometheus verfügbar zu machen:
|
|
|
+
|
|
|
+ node_exporter -web.listen-address=localhost:9100 -collector.textfile.directory=/var/tmp/node_exporter -collectors.enabled=textfile
|
|
|
+
|
|
|
+### prometheus
|
|
|
+
|
|
|
+In `prometheus.yaml` das "Scrapen" des lokalen node_exporter konfigurieren:
|
|
|
+
|
|
|
+ scrape_configs:
|
|
|
+ static_configs:
|
|
|
+ - targets: ['localhost:9100']
|
|
|
+
|
|
|
+Startparameter zB:
|
|
|
+
|
|
|
+ prometheus -config.file=/usr/local/etc/prometheus.yml -storage.local.path=/data/prometheus -storage.local.target-heap-size=536870912 -storage.local.chunk-encoding-version=2 -storage.local.retention 336h0m0s
|
|
|
+
|
|
|
+### grafana
|
|
|
+
|
|
|
+In `grafana.conf` die von nodes2grafana nach *DASHBOARD_DIR* installierten Dashboards freischalten:
|
|
|
+
|
|
|
+ [dashboards.json]
|
|
|
+ ;enabled = false
|
|
|
+ enabled = true
|
|
|
+ path = /var/db/grafana/dashboards
|
|
|
+
|
|
|
+Startparameter zB:
|
|
|
+
|
|
|
+ grafana-server -config=/usr/local/etc/grafana.conf -homepath=/usr/local/share/grafana/
|
|
|
+
|
|
|
# TODO
|
|
|
|
|
|
- Auch für GNU/Linux gängig machen (gmake, wget, sed etc., pax, install, ...)
|
|
|
-- status-group dashboard
|
|
|
- `graph.json` -> grafana
|
|
|
+- Bei Bedarf: Aus einer textuellen Spezifikation der Struktur der `nodes.json` den passenden Konverter generieren. (Sportlich, aber wenn man eh' schon mit [SML](http://www.smlnj.org/sml.html) unterwegs ist ... :)
|
|
|
- Doku:-)
|
|
|
|