README.ubuntu.md 6.5 KB

ffdo Status Setup unter Linux

Hier wird beschrieben wie ein ffdo Status System mit nodes2grafana auf GNU/Linux aufgesetzt werden kann. Im Folgenden werden vorwiegend die Schritte beschrieben, die sich von der Installation auf anderen Betriebssystemen unterscheiden.

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

Mit dem Programm git kann man den Quellcode von nodes2grafana kopieren.

Installieren von git:

sudo apt-get -y install git

Die Basis der Entwicklung ist das Meta Paket build-essential:

sudo apt-get -y install build-essential

(Es darf ggf. auch etwas weniger sein: sudo apt-get -y install make xz-utils reicht.)

Zum Kompilieren wird schließlich noch smlnj benötigt:

sudo apt-get -y install smlnj ml-lpt

Services für den Betrieb von nodes2grafana

Installation der für einen Status-Dienst nötigen Services:

sudo apt -y install prometheus prometheus-node-exporter grafana

nodes2grafana bauen

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 anschließend entpackt werden.

Konfigurieren und Übersetzen des Programms:

cd nodes2grafana
make -C conf
cp conf/substitutions.conf.default conf/substitutions.conf.local
vi conf/substitutions.conf.local
make -C conf && make

nodes2grafana installieren

Installation von nodes2grafana:

 sudo mv conf/substitutions.conf.local /etc/nodes2grafana.conf
 sudo make install

Betrieb

Nach der Installation von nodes2grafana kann nun der Status-Dienst in Betrieb genommen werden.

prometheus-node-exporter anpassen

Zuerst prüfen, ob schon ein node_exporter läuft:

netstat -l -n | grep :9100

und/oder

systemctl status prometheus-node-exporter.service

Die default Startparameter in /etc/default/prometheus-node-exporter sind ausreichend. Eine angepasste, minimalistische Start-Konfiguration sähe zB so aus:

# Set the command-line arguments to pass to the server.
ARGS="-web.listen-address=localhost:9100 \
      -collectors.enabled=textfile \
      -collector.textfile.directory=/var/lib/prometheus/node-exporter"

Also ggf.

sudo vi /etc/default/prometheus-node-exporter

sowie anschließend

sudo systemctl restart prometheus-node-exporter.service

Einen kleinen Test, ob der node_export soweit gut aussieht, bekommt man dann auf der Seite http://localhost:9100/metrics.

prometheus Installation anpassen

Zunächst kann man bei Bedarf die Standard Startparameter anpassen:

 sudo vi /etc/default/prometheus

Das ist zB dann nötig, wenn die eingesammelten Zeitreihen länger oder kürzer gespeichert werden sollen als der default von 15 Tagen (s. -storage.local.retention). Oder wenn der hostname des OS nicht zu einer IP-Adresse aufgelöst werden kann, zB weil er keinen A record im DNS hat, dann die IP Adresse bei -web.external-url setzen. Beispiel:

 # Set the command-line arguments to pass to the server.
 ARGS="-storage.local.retention 24h0m0s \
       -web.external-url http://31.172.33.14:9090/"

Wenn man etwas geändert hat:

sudo systemctl restart prometheus.service

Die Konfigurationsdatei /etc/prometheus/prometheus.yml passt soweit. Denn sie enthält bereits einen Eintrag, um den lokalen node_exporter zu scrapen:

- job_name: node
  # If prometheus-node-exporter is installed, grab stats about the local
  # machine by default.
    static_configs:
      - targets: ['localhost:9100']

Wenn man doch noch etwas an der Konfiguration ändern möchte:

sudo vi /etc/prometheus/prometheus.yml

sowie anschließend die Konfiguration (neu) laden:

sudo systemctl reload prometheus.service

Einen kleinen Test, ob prometheus soweit gut aussieht, bekommt man dann auf den Seiten:

grafana Installation anpassen

Abschließend ist die grafana Konfiguration anzupassen:

sudo vi /etc/grafana/grafana.ini

Hiermit wird der anonyme Lesezugriff 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 = /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 -p dashboards/FF-DO-status*.json /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

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

(Falls nur grafana, nicht aber prometheus auf einer öffentlich erreichbaren IP-Adresse lauscht, dann darf hier nicht direct gewählt werden, sondern proxy.)

Auf 'Add' klicken.

Dabei auf Fehlermeldungen achten, und bei grünem Licht (Datasource OK) die FF-DO-Dashboards ausprobieren.