Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Grafana
    5. Schreibrechte auf grafana.ini in Docker

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Schreibrechte auf grafana.ini in Docker

    This topic has been deleted. Only users with topic management privileges can see it.
    • L
      legro @Codierknecht last edited by legro

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

      Warum per externer Datei? Nimm doch den eingebauten Editor.

      2fcec7df-4986-441d-8fcd-087daac38bb9-image.png

      Das Projekt muss danach neu erstellt werden.

      Wir müssen aufpassen, den Überblick nicht zu verlieren. Dein Vorschlag, alles über Umgebungsvariablen zu regeln, ist eine Lösung; der Vorschlag von @OliverIO beruht m.E. auf dem Versuch, /etc/grafana auf mein externes Verzeichnis ../grafana2/data zu mappen.

      Wenn wir all das umgesetzt bekämen, hätten wir am Ende gar gleich zwei Lösungen für mein Problem.

      OliverIO 1 Reply Last reply Reply Quote 0
      • OliverIO
        OliverIO @legro last edited by

        @legro
        Na das mit den umgebungsvariablen hatte codierknecht und ich ziemlich am Anfang schon vorgeschlagen. Darauf bist du aber nicht eingegangen, weil ich davon ausgegangen bin das es dir nicht gefallen hat, bin ich dann den anderen Weg mit dir gegangen.

        Ich gehe davon aus, das man den Text immer vollständig liest und bei Dingen die man da nicht versteht nachfragt.

        L 2 Replies Last reply Reply Quote 1
        • L
          legro @OliverIO last edited by

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

          .., weil ich davon ausgegangen bin das es dir nicht gefallen hat, bin ich dann den anderen Weg mit dir gegangen.

          Ich wusste zu dem Zeitpunkt noch nichts damit anzufangen.

          Ich gehe davon aus, das man den Text immer vollständig liest und bei Dingen die man da nicht versteht nachfragt.

          Dann hoffe ich mal, dass du auch meine letzte Antwort gelesen hast.😉

          Warum sollte ich die Datei compose.yaml ändern? Nach der von dir vorgeschlagenen Änderung und dem Neustart des Containers ist noch immer /etc/grafana1 gemappt.

          Muss/soll ich den Container löschen und neu erstellen?

          Codierknecht 1 Reply Last reply Reply Quote 0
          • Codierknecht
            Codierknecht Developer Most Active @legro last edited by Codierknecht

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

            Muss/soll ich den Container löschen und neu erstellen?

            Nimm dieses Docker-Compose:

            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:
                  - /volume1/docker/grafana/data:/var/lib/grafana
            

            pack das in den Editor in der GUI, passe den Pfad an und beim Speichern wählst Du die Option "neu erstellen".

            bf489291-70dd-4cb9-92df-b76808b7a2cf-image.png

            Man muss da gar nicht an Dateien rumeditieren. Geht alles über das UI.

            L 1 Reply Last reply Reply Quote 0
            • L
              legro @Codierknecht last edited by

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

              Nimm dieses Docker-Compose: ..

              Nachdem ich nun um die Verwendung von Umgebungsvariablen weiß, will ich das Ganze auch verstehen. Was ich glaube verstanden zu haben ..

              • 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.
              • Alle Elemente werden stets mit Unterstrichen von einander getrennt notiert.

              Beispiel: Somit sollte das Admin-Passwort in der Sektion [security] der grafana.ini heißen: GF_SECURITY_ADMIN_PASSWORD=<mein Passwort>

              Ist das so richtig?

              Codierknecht 1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @legro last edited by Codierknecht

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

                Ist das so richtig?

                So verstehe ich das auch. Die Doku ist da ein bisschen unübersichtlich.

                Gib mir ein paar Minuten ... ich probiere das aus.

                Edit
                Sieht so aus, als würde das funktionieren 😁

                1 Reply Last reply Reply Quote 1
                • L
                  legro @OliverIO last edited by

                  @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?.

                  OliverIO 1 Reply Last reply Reply Quote 0
                  • OliverIO
                    OliverIO @legro last edited by 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 1 Reply Last reply Reply Quote 0
                    • L
                      legro @OliverIO last edited by

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

                      OliverIO L 2 Replies Last reply Reply Quote 0
                      • OliverIO
                        OliverIO @legro last edited by

                        @legro

                        genau

                        1 Reply Last reply Reply Quote 0
                        • L
                          legro @legro last edited by 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 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/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.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          893
                          Online

                          32.0k
                          Users

                          80.5k
                          Topics

                          1.3m
                          Posts

                          4
                          61
                          276
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo