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.
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
Installation weiterer notwendiger Services
sudo apt -y install prometheus prometheus-node-exporter grafana
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
Nach der Übersetzung nodes2grafana kann nun das System in Betrieb genommen werden.
Installation von nodes2grafana
sudo mv conf/substitutions.conf.local /etc/nodes2grafana.conf
sudo make install
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
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]
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.