@Alle
Hier nun eine kleine Zusammenfassung aus all den hier im Thread zusammengetragenen Ideen. Vielen Dank an alle, die hier tatkräftig mitgeholfen haben.
Die Installation von Grafana im Container Manager (Docker) einer Synology erfordert einige Vorkehrungen. Der bevorzugte Weg sollte die Verwendung einer sog. compose.yml Datei sein, die im Wesentlichen eine Art Bauanleitung für die gewünschte Installation darstellt. Im Folgenden wird auch nur diese Lösung beschrieben. Die Installationen über compose.yml werden als Projekte realisiert.
Da nach jedem Neustart der Synology oder des Containers alle Daten verloren gehen, muss man dafür Sorge tragen, dass die Konfigurationsdaten in /etc/grafana (insbesondere grafana.ini) und die in /var/lib/grafana mit den Panels und Dashboards außerhalb des Containers in einem externen Verzeichnis auf der Synology gesichert werden. Dabei sind zwei Fälle zu unterscheiden ..
Nur die Daten in /var/lib/grafana werden persistent in einem externen Verzeichnis auf der Synology gespeichert. Der Inhalt der Datei grafana.ini wird über Umgebungsvariablen angepasst. Sowohl das Verzeichnis mit den Konfigurationsdaten /etc/grafana als auch jenes mit den Daten /var/lib/grafana werden in externen Verzeichnissen auf der Synology persistent gespeichert.Die im Folgenden vorausgesetzte Verzeichnisstruktur auf der Synology, welche die persistente Daten aufnehmen soll, sieht folgendermaßen aus ..
.. /docker/grafana/config
.. /docker/grafana/data
Diese Verzeichnisse sollten mit Zugriffsrechten für Everyone für Lesen und Schreiben versehen sein. Der oft zu findende Hinweis, chown -R 472:472 /volume2/docker/grafana zu verwenden, ist leider nicht zielführend.
Eine dritte Methode wäre, lediglich die Datei grafana.ini zu mappen. Dies wird in dieser Anleitung jedoch (noch) nicht beschrieben.
1.Methode:
Das nachfolgende Beispiel zeigt die nötigen Anpassungen für die Einbindung der Panels und Dashboards in die VIS von ioBroker, wobei ggf. nötige Anpassungen der Datei grafana.ini über Umgebungsvariablen bereitgestellt werden ..
services: grafana: image: grafana/grafana-oss container_name: grafana restart: unless-stopped ports: - '3000:3000' environment: - GF_SECURITY_COOKIE_SAMESITE=disabled - GF_SECURITY_ALLOW_EMBEDDING=true - GF_AUTH_ANONYMOUS_ENABLED=true - GF_AUTH_ANONYMOUS_ORG_NAME=Main Org. - GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer volumes: - /volume2/docker/grafana/data:/var/lib/grafanaDie Syntax zum Aufbau der Umgebungsvariablen ..
Alle Variablen beginnen mit dem Präfix GF_. Danach folgt der Bereich oder Abschnitt aus der grafana.ini-Konfigurationsdatei, der verändert werden soll, in Großbuchstaben (z.B. SECURITY, SERVER, AUTH). Anschließend folgt der Name der Option aus der grafana.ini (ebenfalls in Großbuchstaben!) angefügt mit Unterstrichen. der Wert der jeweiligen Variable wird mit = eingefügt. Alle Elemente werden stets mit Unterstrichen von einander getrennt notiert.ein Beispiel: Das Admin-Passwort in der Sektion [security] der grafana.ini wird gesetzt mit: GF_SECURITY_ADMIN_PASSWORD=<mein Passwort>
2.Methode
Hier lautet die compose.yml wie folgt ..
services: grafana: image: grafana/grafana-oss container_name: grafana restart: unless-stopped ports: - '3000:3000' volumes: - /volume2/docker/grafana/data:/var/lib/grafana - /volume2/docker/grafana/config:/etc/grafanaLeider funktioniert das Ganze so nicht ohne Weiteres. Das externe Verzeichnis ../grafana/config darf nicht leer sein, sondern muss bereits eine gültige Struktur, wie sie in einem internen Verzeichnis /etc/grafana vorliegt, enthalten.
Bleibt die Frage, wie man das config Verzeichnis korrekt gefüllt bekommt. Hier ein mögliches Vorgehen ..
Man verwendet für eine temporäre Installation die compose.yml mit folgendem Inhalt .. services: grafana: image: grafana/grafana-oss container_name: grafana restart: unless-stopped ports: - '3000:3000' volumes: - /volume2/docker/grafana/data:/var/lib/grafana - /volume2/docker/grafana/config:/etc/grafana0Das Verzeichnis /etc/grafana0 ist (normalerweise) in keinem Image von Grafana vorhanden. Es dient sozusagen als Vorlagenspeicher für das spätere /etc/grafana. Obwohl das Verzeichnis intern nicht existiert, kann es im externen Verzeichnis config auf der Synology gefüllt werden. Hierzu ..
verbindet man sich über das Terminal via ..sudo docker exec -it grafana /bin/bash
.. mit Grafana im Container Manager, wobei grafana dem Namen des Grafana-Containers entspricht. Im Terminal kopiert man nun mittels
cp -r /etc/grafana/* /etc/grafana0/ den Inhalt von ../grafana/config in das externe Verzeichnis.
Der letzte Schritt sorgt dafür, dass das externe Verzeichnis ../docker/grafana/config mit korrekten Daten der Standardkonfiguration von Grafana gefüllt wurde.
Nun gilt es den Grafana-Container wieder zu löschen und man kann anschließend mittels ..
services: grafana: image: grafana/grafana-oss container_name: grafana restart: unless-stopped ports: - '3000:3000' volumes: - /volume2/docker/grafana/data:/var/lib/grafana - /volume2/docker/grafana/config:/etc/grafana.. die gewünschte Installation erzeugen, bei der nun das interne Verzeichnis /var/bin/grafana auf das externe ../docker/grafana/data und das interne /etc/grafana auf das externe Verzeichnis ../docker/grafana/config gemappt wurde.