Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Grafana
  5. Schreibrechte auf grafana.ini in Docker

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.3k

Schreibrechte auf grafana.ini in Docker

Scheduled Pinned Locked Moved Grafana
67 Posts 6 Posters 3.2k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L legro

    @oliverio

    Nun möchte ich auch deinen Lösungsvorschlag verstehen. Könntest du mich bitte dabei unterstützen?

    Wenn ich das Ganze richtig verstanden habe ..

    • Es ist (warum auch immer) nicht möglich das Docker interne Verzeichnis /etc/grafana auf ein externes Verzeichnis auf der Synology (../grafana2/config) zu mappen.
    • Daher wird das in Docker nicht existierende interne Verzeichnis /etc/grafana1 auf das externe ../grafana2/config gemappt.
    • Nun kann man im Terminal mittels ..
      sudo docker exec -it grafana2 /bin/bash
      cp -r /etc/grafana/* /etc/grafana1/ den Inhalt in das externe Verzeichnis ../grafana2/config kopieren.
      Im der Terminal der Synology kann ich nun grafana.ini nach Belieben anpassen.

    So weit, so gut. Und nun?

    Ich sehe nun nur die Möglichkeit erneut im Terminal intern den Inhalt des externen Verzeichnisses nun umgekehrt nach /etc/granfana zu kopieren, wobei es in meinem Fall ausreicht, grafana.ini zu überschreiben/kopieren.

    Ich sehe keine Möglichkeit durch Änderungen von compose.yml das externe Verzeichnis auf das interne /etc/grafana zu mappen.

    Was habe ich ggf. noch immer nicht verstanden?.

    OliverIOO Offline
    OliverIOO Offline
    OliverIO
    wrote on last edited by OliverIO
    #58

    @legro

    • in /etc/grafana liegen für grafana wichtige dateien ohne die das system nicht startet
    • wenn du nun ein leeres verzeichnis auf deinem LOKALEN dateisystem mappst, dann ist das verzeichnis IM container ebenfalls leer, ergo system startet nicht
    • der zwischenschritt mit /etc/grafana1 legt das zunächst leere verzeichnis unter diesem namen IN DEN container, du kopierst die dateien, änderst das mapping wieder auf /etc/grafana, so sind nun alle notwendigen dateien für grafana unter /etc/grafana verfügbar + sie liegen auch in deinem LOKALEN verzeichnis in dem du die bearbeiten kannst.

    ein docker image besteht aus verschiedenen schichten/layers, die sich der reihe nach ergänzen aber auch überlagern können, so das am ende für das betriebssystem aber nur eine einzige sicht darauf besteht.

    ich habe mal einen blogartikel gefunden, der das etwas visuell darstellt
    https://iammathew.com/blog/understanding-docker-images/filesystem

    das verzeichnis /etc/grafana mit seinen dateien ist nachdem du dein lokales verzeichnis da drauf gemountet hast immer noch da, da es aber von dem mount zu deinem lokalen leeren verzeichnis überlagert wird, halt für das betriebssystem leer und ohne die dateien mag grafana halt nicht starten.

    um notwendige dateien vollautomatisch auch in einem leeren gemounteten Verzeichnis nach aussen bereitzustellen, müsste der imageersteller etwas machen (bei container start prüfen ob alle notwendigen dateien da sind und die fehlenden kopieren) das machen aber viele nicht.

    wie schon gesagt, die grafana leute haben eher den environment weg eingeschlagen.

    Meine Adapter und Widgets
    TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
    Links im Profil

    L 1 Reply Last reply
    1
    • OliverIOO OliverIO

      @legro

      • in /etc/grafana liegen für grafana wichtige dateien ohne die das system nicht startet
      • wenn du nun ein leeres verzeichnis auf deinem LOKALEN dateisystem mappst, dann ist das verzeichnis IM container ebenfalls leer, ergo system startet nicht
      • der zwischenschritt mit /etc/grafana1 legt das zunächst leere verzeichnis unter diesem namen IN DEN container, du kopierst die dateien, änderst das mapping wieder auf /etc/grafana, so sind nun alle notwendigen dateien für grafana unter /etc/grafana verfügbar + sie liegen auch in deinem LOKALEN verzeichnis in dem du die bearbeiten kannst.

      ein docker image besteht aus verschiedenen schichten/layers, die sich der reihe nach ergänzen aber auch überlagern können, so das am ende für das betriebssystem aber nur eine einzige sicht darauf besteht.

      ich habe mal einen blogartikel gefunden, der das etwas visuell darstellt
      https://iammathew.com/blog/understanding-docker-images/filesystem

      das verzeichnis /etc/grafana mit seinen dateien ist nachdem du dein lokales verzeichnis da drauf gemountet hast immer noch da, da es aber von dem mount zu deinem lokalen leeren verzeichnis überlagert wird, halt für das betriebssystem leer und ohne die dateien mag grafana halt nicht starten.

      um notwendige dateien vollautomatisch auch in einem leeren gemounteten Verzeichnis nach aussen bereitzustellen, müsste der imageersteller etwas machen (bei container start prüfen ob alle notwendigen dateien da sind und die fehlenden kopieren) das machen aber viele nicht.

      wie schon gesagt, die grafana leute haben eher den environment weg eingeschlagen.

      L Offline
      L Offline
      legro
      wrote on last edited by legro
      #59

      @oliverio

      Vielen Dank für deine Rückmeldung.

      Mittlerweile konnte ich anhand einiger Quellen ebenfalls eine Antwort finden - durch die hier geführte Diskussion wusste ich schließlich, nach was ich suchen muss. Demnach darf das externe Verzeichnis, das auf das interne /etc/grafana gemappt werden soll, nicht leer sein, sondern muss bereits die korrekte Struktur beinhalten.

      Damit wird die oben ausgegebene Fehlermeldung (grafana.ini nicht gefunden) verständlich.

      Dein Vorschlag ist also goldrichtig. Indem man /etc/grafana auf das externe Verzeichnis kopiert, kann bei einer Neuinstallation das externe Verzeichnis auf das interne /etc/grafana gemappt werden.

      Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
      Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

      OliverIOO L 2 Replies Last reply
      0
      • L legro

        @oliverio

        Vielen Dank für deine Rückmeldung.

        Mittlerweile konnte ich anhand einiger Quellen ebenfalls eine Antwort finden - durch die hier geführte Diskussion wusste ich schließlich, nach was ich suchen muss. Demnach darf das externe Verzeichnis, das auf das interne /etc/grafana gemappt werden soll, nicht leer sein, sondern muss bereits die korrekte Struktur beinhalten.

        Damit wird die oben ausgegebene Fehlermeldung (grafana.ini nicht gefunden) verständlich.

        Dein Vorschlag ist also goldrichtig. Indem man /etc/grafana auf das externe Verzeichnis kopiert, kann bei einer Neuinstallation das externe Verzeichnis auf das interne /etc/grafana gemappt werden.

        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        wrote on last edited by
        #60

        @legro

        genau

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        1 Reply Last reply
        0
        • L legro

          @oliverio

          Vielen Dank für deine Rückmeldung.

          Mittlerweile konnte ich anhand einiger Quellen ebenfalls eine Antwort finden - durch die hier geführte Diskussion wusste ich schließlich, nach was ich suchen muss. Demnach darf das externe Verzeichnis, das auf das interne /etc/grafana gemappt werden soll, nicht leer sein, sondern muss bereits die korrekte Struktur beinhalten.

          Damit wird die oben ausgegebene Fehlermeldung (grafana.ini nicht gefunden) verständlich.

          Dein Vorschlag ist also goldrichtig. Indem man /etc/grafana auf das externe Verzeichnis kopiert, kann bei einer Neuinstallation das externe Verzeichnis auf das interne /etc/grafana gemappt werden.

          L Offline
          L Offline
          legro
          wrote on last edited by legro
          #61

          @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 drei 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.
          • Statt das gesamte interne Verzeichnis /etc/grafana zu mappen, wird nur die Datei grafana.ini gemappt. (Wird hier nicht dokumentiert)

          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.

          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/grafana
          

          Die 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/grafana
          

          Leider 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/grafana0
          

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

          Meine Empfehlung

          Ich bevorzuge grundsätzlich die 2. Methode, die es erlaubt, die Datei grafana.ini komfortabel mit dem Editor der Synology zu bearbeiten.

          Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
          Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

          L CodierknechtC 2 Replies Last reply
          0
          • L legro

            @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 drei 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.
            • Statt das gesamte interne Verzeichnis /etc/grafana zu mappen, wird nur die Datei grafana.ini gemappt. (Wird hier nicht dokumentiert)

            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.

            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/grafana
            

            Die 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/grafana
            

            Leider 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/grafana0
            

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

            Meine Empfehlung

            Ich bevorzuge grundsätzlich die 2. Methode, die es erlaubt, die Datei grafana.ini komfortabel mit dem Editor der Synology zu bearbeiten.

            L Offline
            L Offline
            legro
            wrote on last edited by
            #62

            @Homoran

            Wäre diese kleine Anleitung nicht an anderer Stelle besser aufgehoben?

            Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
            Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

            HomoranH 1 Reply Last reply
            0
            • L legro

              @Homoran

              Wäre diese kleine Anleitung nicht an anderer Stelle besser aufgehoben?

              HomoranH Do not disturb
              HomoranH Do not disturb
              Homoran
              Global Moderator Administrators
              wrote on last edited by
              #63

              @legro Ich habe keine Zeit mich da jetzt reinzuarbeiten.
              Das einzige was ich in diesem Thread festgestellt habe, ist dass es eigentlich um Docker geht.
              Dein Grafana ist nur ein Beispiel

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              1 Reply Last reply
              0
              • L legro

                @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 drei 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.
                • Statt das gesamte interne Verzeichnis /etc/grafana zu mappen, wird nur die Datei grafana.ini gemappt. (Wird hier nicht dokumentiert)

                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.

                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/grafana
                

                Die 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/grafana
                

                Leider 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/grafana0
                

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

                Meine Empfehlung

                Ich bevorzuge grundsätzlich die 2. Methode, die es erlaubt, die Datei grafana.ini komfortabel mit dem Editor der Synology zu bearbeiten.

                CodierknechtC Offline
                CodierknechtC Offline
                Codierknecht
                Developer Most Active
                wrote on last edited by Codierknecht
                #64

                @legro

                Beim Verfahren über das extern gemappte Verzeichnis für /etc/grafana sollte man aber im Hinterkopf behalten:
                Das funktioniert nur, solange sich am Aufbau von z.B. der grafana.ini nix ändert.
                Wenn die auf die Idee kommen, die Struktur zu ändern oder auch nur neue Einträge vorzunehmen die für den Start notwendig sind, gibt's Ärger.

                Aus genau diesem Grund ist der Weg über die Umgebungsvariablen eindeutig vorzuziehen!

                "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                HmIP|ZigBee|Tasmota|Unifi
                Zabbix Certified Specialist
                Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                L 1 Reply Last reply
                0
                • CodierknechtC Codierknecht

                  @legro

                  Beim Verfahren über das extern gemappte Verzeichnis für /etc/grafana sollte man aber im Hinterkopf behalten:
                  Das funktioniert nur, solange sich am Aufbau von z.B. der grafana.ini nix ändert.
                  Wenn die auf die Idee kommen, die Struktur zu ändern oder auch nur neue Einträge vorzunehmen die für den Start notwendig sind, gibt's Ärger.

                  Aus genau diesem Grund ist der Weg über die Umgebungsvariablen eindeutig vorzuziehen!

                  L Offline
                  L Offline
                  legro
                  wrote on last edited by
                  #65

                  @codierknecht

                  Dann sollte ich besser meine Empfehlung nochmals überdenken und die dritte Methode priorisieren.:face_with_rolling_eyes:

                  Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                  Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                  crunchipC 1 Reply Last reply
                  0
                  • L legro

                    @codierknecht

                    Dann sollte ich besser meine Empfehlung nochmals überdenken und die dritte Methode priorisieren.:face_with_rolling_eyes:

                    crunchipC Away
                    crunchipC Away
                    crunchip
                    Forum Testing Most Active
                    wrote on last edited by
                    #66

                    @legro ich verstehe den ganzen "Aufriss" immer noch nicht. Ne Installationbeschreibung hatte ich doch bei https://forum.iobroker.net/post/1289577 gezeigt. Das sollte doch auch bei dir funktionieren.
                    Andernfalls ist auch auf offizieller Seite der Weg mit Umgebungsvariablen dargestellt
                    Konfigurieren eines Grafana-Docker-Images | Grafana-Dokumentation https://share.google/IBLRevuuN9A7t1Q8T

                    umgestiegen von Proxmox auf Unraid

                    L 1 Reply Last reply
                    0
                    • crunchipC crunchip

                      @legro ich verstehe den ganzen "Aufriss" immer noch nicht. Ne Installationbeschreibung hatte ich doch bei https://forum.iobroker.net/post/1289577 gezeigt. Das sollte doch auch bei dir funktionieren.
                      Andernfalls ist auch auf offizieller Seite der Weg mit Umgebungsvariablen dargestellt
                      Konfigurieren eines Grafana-Docker-Images | Grafana-Dokumentation https://share.google/IBLRevuuN9A7t1Q8T

                      L Offline
                      L Offline
                      legro
                      wrote on last edited by
                      #67

                      @crunchip sagte in Schreibrechte auf grafana.ini in Docker:

                      @legro ich verstehe den ganzen "Aufriss" immer noch nicht. ..

                      Richtig! Tut mir leid, ich vergaß ..

                      Nie verzagen, crunchip fragen.:confounded:

                      Nach über vier Jahren Leidenszeit unter Qivicon/MSH vor den Telekomikern zu ioBroker geflüchtet.
                      Raspberry Pi 4 mit 8GB + ArgonOneM.2 + 120GB SSD + Coordinator CC26X2R1 + ioBroker + piVCCU3

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      858

                      Online

                      32.4k

                      Users

                      81.5k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe