Inhaltsverzeichnis
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 Monitoring - Intern
FabAccess lokales Monitoring - !!Work in progress !!
- Damit Fabaccess eigenständig arbeiten und seine Metriken auswerten kann, ist auf der Fabaccess VM ebenfalls Grafana@FabAccess und 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 Grafana@FabAccess sind folgende Dashboard konfiguriert:
- Die Dashboards für Prometheus Metriken nutzen vorgefertigte Grafan Dashboards
Prometheus
Die Retention Periode lässt sich nicht pro Target. Daher sind zwei Prometheus Container mit unterschiedlicher Retention Period erstellt.
Prometheus
- Die 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 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
- 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 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.