# ffdo Status Setup unter Linux Hier wird beschrieben wie das ffdo status System unter linux aufgesetzt werden kann. Dabei werden vorwiegend die Schritte beschrieben die notwendig sind um das System zu installieren und sich von der Installation von anderen Betriebssystemen unterscheiden. Also Basis dient ein [Ubuntu](https://ubuntu.com) System. Andere debian basierte Systeme sind sehr ähnlich und Distributionen mit rpm Nutzung sind ähnlich. ### Installation benötigter Programme #### Werkzeuge zum Erstellen von nodes2grafana nodes2grafana wird lokal gebaut. Die Basis der Entwicklung ist das Meta Paket **build-essential**: sudo apt-get -y install build-essential Zusätzlich wird noch **smlnj** benötigt: sudo apt-get -y install smlnj ml-lpt Mit dem Programm git kann man den Quellcode von nodes2grafana kopieren. Installieren von git: sudo apt-get -y install git #### Werkzeuge zum Erstellen von nodes2grafana Installation weiterer notwendiger Services sudo apt -y install prometheus prometheus-node-exporter grafana ### Erstellen von nodes2grafana #### nodes2grafana Erzeugen nodes2grafana wird lokal gebaut. Dazu muss der Quellcode geladen und übersetzt werden. Laden des nodes2grafana Quellcodes mit **git**: git clone https://git.ffdo.de/altlast/nodes2grafana.git Alternativ kann man auch das bereits vorhandene **wget** oder **curl** verwenden um den Quellcode von [nodes2grafana](https://git.ffdo.de/altlast/nodes2grafana/archive/master.tar.gz) als Paket zu laden. Das Paket muss dann an geeigneter Stelle entpackt werden. Übersetzen des Programms: cd nodes2grafana make -C conf && make cp conf/substitutions.conf.default conf/substitutions.conf.local vi conf/substitutions.conf.local ## Betrieb Nach der Übersetzung nodes2grafana kann nun das System in Betrieb genommen werden. ### Installation von nodes2grafana Installation von nodes2grafana sudo mv conf/substitutions.conf.local /etc/nodes2grafana.conf sudo make install ### prometheus-node-exporter anpassen prometheus-node-exporter Überprüfen: sudo prometheus-node-exporter -web.listen-address=localhost:9100 -collector.textfile.directory=/var/tmp/node_exporter -collectors.enabled=textfile Das kann folgende Ausgaben liebern, wenn schon ein prometheus-node-exporter service läuft: INFO[0000] Enabled collectors: file=node_exporter.go line=142 INFO[0000] - textfile file=node_exporter.go line=144 INFO[0000] Starting node_exporter v0.0.0.dev at localhost:9100 file=node_exporter.go line=176 FATA[0000] listen tcp 127.0.0.1:9100: bind: address already in use file=node_exporter.go line=179 In diesem Fall sollte man den Service prometheus-node-exporter stoppen: sudo systemctl stop prometheus-node-exporter.service prometheus-node-exporter testen: sudo prometheus-node-exporter -web.listen-address=localhost:9100 -collector.textfile.directory=/var/tmp/node_exporter -collectors.enabled=textfile Das muss man dann mit Cntrl-C abbrechen. Anschließend werden die default Start Parameter von prometheus-node-exporter angepasst: sudo vi /etc/default/prometheus-node-exporter Die ersten Zeilen sollten etwa so aussehen: # Set the command-line arguments to pass to the server. ARGS='-web.listen-address=localhost:9100 -collector.textfile.directory=/var/tmp/node_exporter -collectors.enabled=textfile' Jetzt ist der prometheus-node-exporter Service neu zu starten: sudo systemctl restart prometheus-node-exporter.service ### prometheus Installation anpassen Zuerst werden die Standard Startparameter angepasst: sudo vi /etc/default/prometheus # Set the command-line arguments to pass to the server. ARGS="-config.file=/etc/prometheus/prometheus.yml -storage.local.retention 336h0m0s" Die Konfigurationsdatei /etc/prometheus/prometheus.yml passt soweit. sudo vi /etc/prometheus/prometheus.yml Also direkt den Service (neu) starten: sudo systemctl restart prometheus.service Ein kleiner Test, ob prometheus soweit gut aussieht, bekommt man dann auf der Seite bekommen: [http://localhost:9100/metric] ### grafana Installtion anpassen Abschließend ist die grafana anzupassen: sudo vi /etc/grafana/grafana.ini Hiermit wird er anonyme Ledezugriff ermöglicht: #################################### Anonymous Auth ########################## [auth.anonymous] # enable anonymous access ;enabled = false enabled = true # specify organization name that should be used for unauthenticated users ;org_name = Main Org. org_name = ffdo # specify role for unauthenticated users ;org_role = Viewer org_role = Viewer So ziemlich am Ende sind zwei Zeilen anzupassen um de vordefinierten Übersichten in grafana bekannt zu machen: ... ;#################################### Dashboard JSON files ########################## [dashboards.json] enabled = true path group: '= /var/lib/grafana/dashboards Das Verzeichnis **/var/lib/grafana/dashboards** sollte bei der Installation von nodes2grafana bereits angelegt und gefüllt worden sein. Ansonsten muss man das per Hand machen: sudo mkdir /var/lib/grafana/dashboards sudo cp /var/db/grafana/dashboards/FF-DO-status* /var/lib/grafana/dashboards/ sudo chown -R grafana:grafana /var/lib/grafana/dashboards Jetzt ist der grafana Service neu zu starten: sudo systemctl restart grafana.service Jetzt muss man noch in grafana als Datenquelle der lokale prometheus Service eintragen werden. Eine detaillierte Anleitung gibt es auch unter [prometheus](http://docs.grafana.org/features/datasources/prometheus/) Grafana aufrufen: (http://localhost:3000') Dann als 'admin' einloggen, Password 'admin'. Anschließend unter [http://localhost:3000/datasources] eine neue Datenquelle hinzufügen: Name: prometheus-local (beliebig) Default: aktiviert Type: Prometheus Url: http://localhost:9090 Access: direct Auf 'Add' klicken.