====== Monitoring ======
===== zentrales Sternenlabor Monitoring =====
Fabaccess läuft im Docker auf einer VM auf dem Proxmoxcluster. Zusätzlich ist der Monitoring Stack mit Glances, cAdvisor und NodeExporter, wie auf den anderen LXC/VM, installiert. Das zentrale Prometheus und Grafana läuft auf der GalaxyGuardian LXC.Siehe [[https://wiki.sternenlabor.de/doku.php?id=dienste:start#intern|Monitoring - Intern]]
===== FabAccess lokales Monitoring - !!Work in progress !! =====
* Damit Fabaccess eigenständig arbeiten und seine Metriken auswerten kann, ist auf der Fabaccess VM ebenfalls [[http://fabaccess:3000/|Grafana@FabAccess]] und [[http://fabaccess:9090/targets|Prometheus@FabAccess]] als Docker Container installiert.
* In Prometheus werden die Endpunkte (Targets) der jeweiligen Services konfiguriert, von denen Metriken gesammelt werden. Grafana liest die gesammelten Daten aus und stellt diese in Dashboards dar.
* Die Prometheus-Endpunkte werden von einigen Services (z. B. cAdvisor oder Prometheus selbst) direkt bereitgestellt. Für FabAccess und MQTT wurden Exporter entwickelt, die Endpunkte zur Verfügung stellen und damit die Daten für Prometheus bereitstellen.
==== Grafana ====
In **[[http://fabaccess:3000/|Grafana@FabAccess]]** sind folgende Dashboard konfiguriert:
* Die Dashboards für Prometheus Metriken nutzen vorgefertigte [[https://grafana.com/grafana/dashboards/|Grafan Dashboards]]
* [[https://grafana.com/grafana/dashboards/22385|22385]] - FabAccess
* [[https://grafana.com/grafana/dashboards/14282|14282]] - Cadvisor exporter (Metriken über die Docker auf der FabAccess VM)
* [[https://grafana.com/grafana/dashboards/1860|1860]] - Node Exporter Full (Metriken über die FabAccess VM)
* [[https://grafana.com/grafana/dashboards/3662|3662]] - Prometheus 2.0 Overview (Metriken über Prometheus auf der FabAccess VM)
==== Prometheus ====
Die Retention Periode lässt sich nicht pro Target. Daher sind zwei Prometheus Container mit unterschiedlicher Retention Period erstellt.
=== Prometheus ===
* Die **[[http://fabaccess:9090/targets|Prometheus Targets@FabAccess]]** sind in in /etc/prometheus/prometheus.yml konfigueriert.
* Die Retention Periode für die Metriken ist **15 Tage**. Siehe command "--storage.tsdb.retention.time=15d" in der Portainer Stack Definition (docker-compose)
=== Prometheus Fabaccess ===
* Die **[[http://fabaccess:9091/targets|Prometheus Fabaccess Targets@FabAccess]]** sind in in /etc/prometheus_fa/prometheus.yml konfigueriert.
* Die Retention Periode für die Metriken ist **365 Tage**. Siehe command "--storage.tsdb.retention.time=365d" in der Portainer Stack Definition (docker-compose)
==== Prometheus Exporter ====
* Beispiel einer Installation und Konfiguration des FabAccess und MQTT Exporters **ohne Docker**: [[https://docs.fab-access.org/books/plugins-und-schnittstellen/page/monitoring-prometheus-grafana]]
* Prometheus Exporter Repositories
* FabAccess: [[https://gitlab.com/fabinfra/fabaccess/prometheus-exporter]]
* generischer Exporter für MQTT: [[https://github.com/kpetremann/mqtt-exporter]]
* Erstelle die Docker Images selbst und lade sie in Portainer hoch. Hier ein Beispiel für den fabaccess-exporter:
* Lade Repository auf einen PC, auf dem Docker installiert ist (z.B. Polarstern -> Linux Mint im Sternenlabor) und erstelle das Docker Image als .tar file
# load the repository
mkdir fabaccess-exporter-dockerbuild
cd fabaccess-exporter-dockerbuild
git clone https://gitlab.com/fabinfra/fabaccess/prometheus-exporter.git
# create image and save it as .tar file
cd fabaccess-exporter
docker build -t fabaccess-exporter:latest .
docker save -o fabaccess-exporter.tar fabaccess-exporter:latest
* **Lade das Docker Image via Portainer** auf die FabAccess VM:
* Öffne [[https://fabaccess:9443/|Portainer@fabaccess]]
* Gehe zu Images -> Import
* wechsel vom Advanced Mode zum Simple Mode
* Wähle das lokal gespeicherte.tar File
* Vergebe einen Image Name: fabaccess-exporter:latest;
* Upload
* **oder kopiere und lade das .tar file mittels CLI**
scp fabaccess-exporter.tar administrator@fabaccess:/home/administrator/
ssh administrator@fabaccess
docker load -i /home/administrator/fabaccess-exporter.tar
====== Logging ======
ToDo: Da müssen wir uns entscheiden, ob wir die Docker Logs direkt nutzen oder Loki. Wenn wir Loki nutzen könnten wir das zentrale Loki auf GalaxyGuardian nutzen oder eins auf der fabaccess VM installieren, wenn fabccess komplett eigenständig inkl. Monitoring, Logging und Alerting laufen soll.
====== Alerting ======
Das Alterting ist in Grafana definiert.