|
|
8 سال پیش | |
|---|---|---|
| conf | 8 سال پیش | |
| dashboard | 8 سال پیش | |
| dist | 8 سال پیش | |
| etc | 8 سال پیش | |
| src | 8 سال پیش | |
| test | 8 سال پیش | |
| Makefile.in | 8 سال پیش | |
| README.md | 8 سال پیش |
nodes2grafana ist ein Konverter für nodes.json -> prometheus Textformat. Mit dem erforderlichen Drumrum, incl. grafana Dashboards.
Die Software befindet sich zZ in Dortmund im Probebetrieb, s. die Dashboards FF-DO-status und FF-DO-status-group. Sowie die Wiki-Seite zum FF-DO-Status.
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.
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.
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ötigt wird außer den üblichen verdächtigen Un*x-utilities nur SML/NJ. Das smlnj package sollte vollständig sein, d.h. auch ml-build und heap2exec enthalten. Dies ist beim FreeBSD port lang/smlnj der Fall.
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:
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).
Durch make install werden der Konverter nodes2prom und ein script nodes2prometheus.sh nach BIN_DIR installiert. Das script fetcht 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.
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
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
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/
graph.json -> grafananodes.json den passenden Konverter generieren. (Sportlich, aber wenn man eh' schon mit SML unterwegs ist ... :)