README.ubuntu.md 6.0 KB

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 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 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

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.