NEWS
[gelöst] Grafana in Docker: admin Rechte gehen nicht mehr
-
@chrisham sagte in Grafana in Docker: admin Rechte gehen nicht mehr:
schauen, ob ich dann irgendwie noch die Dashboard-Daten wieder rüberretten kann (evtl. über Datenbank-Tabellen kopieren, binäre Datenbanken sind da nicht so geschmeidig, einfach text-dateien haben da doch Vorteile....
Das heißt, du hast kein Backup gemacht? Das ist natürlich schlecht, da in der offensichtlich defekten grafana.db auch deine Dashboards stecken. Was ich gerade getestet habe: du könntest auch noch die Zeile mit dem User "admin" in der "user" Tabelle komplett löschen. Nach einem Neustart wird der wieder angelegt und du kannst ein Passwort vergeben. Vielleicht bringt das noch was.
Ob man Dateien direkt mappen muss, ist eher Geschmackssache, ich wurde das Mappen des Verzeichnisses /etc/grafana: vorziehen. Dann kann man sich das einzelne Mappen der Dateien sparen.
/volume1/docker/grafana2/etc/:/etc/grafana/
Diese Environment-Variablen stecken schon im Image, die kannst du komplett weglassen:
PATH=/usr/share/grafana/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin GF_PATHS_CONFIG=/etc/grafana/grafana.ini GF_PATHS_DATA=/var/lib/grafana GF_PATHS_HOME=/usr/share/grafana GF_PATHS_LOGS=/var/log/grafana GF_PATHS_PLUGINS=/var/lib/grafana/plugins GF_PATHS_PROVISIONING=/etc/grafana/provisioning
Ich kann mir nicht vorstellen, dass diese Umgebungsvariable (mit Leerzeichen) korrekt ist:
GF_AUTH_access enabled=true
Wo hast du das her, was soll das bewirken?
Auch diese Variable hier würde ich rausschmeißen und in der Grafana.ini definieren, wo auch der Rest der Parameter drin steckt. Dann hast du EINE Stelle, wo du Einstellungen machst:
GF_AUTH_org_name=CH_Smart
-
@chrisham sagte in Grafana in Docker: admin Rechte gehen nicht mehr:
2.) also ich verstehe die Container-Technologie schon so, dass ich alle Daten, die ich für meine Konfiguration anpasse, persistent
Moin,
nein, denn genau da liegt ja der Vorteil, ein Docker Container ist zustandslos und bekommt seine Aufgabe/Funktion durch eine von Außen aufgeprägtes Environment!
In Deinem Fall, der Maintainer der Docker Images, hat schon alles so zusammengebaut, dass esout of the Box
lauffähig ist, einzig Deine Dashboards, Panels, liegen im persistenten Speicherbereich, somit kannst Du mit einem Klick den alten Container wegschmeißen und einen neuen erstellen.
Wenn Du jetzt etwas an einer Konfiguration ändern musst, wie z. B. zugriff für Anonymous, dann macht man das genau über diese Environment Variablen,- GF_xyz
Wenn Du dort etwas fest aus Deinem Verzeichnis vorgibst z. B.
grafana.ini
, dann musst Du die Änderungen auch da machen, denn die überschreiben das mitgegebene Environment, wie man sieht, doppelt gemoppelt.
Zum anderen gibt es im Docker Image vom Maintainer auch schon Environment Variablen, die als Default gesetzt sind, die muss man imCompose
File nicht nochmal setzen, doppelt gemoppelt, erst wenn Deine Installation so sehr, von der original abweicht, hast Du über die Environment Variablen die Möglichkeit sie an Deine Gegebenheit anzupassen.Ich an Deiner Stelle, würde immer mit einem Standard anfangen und nicht daran herumfummeln, denn der, der das Docker Image erstellt hat, hat sich schon etwas dabei gedacht
Ein ganz einfaches und lauffähigesCompose
version: '3.8' services: grafana: network_mode: "host" restart: always image: grafana/grafana:latest container_name: grafana-6 ports: - "3000:3000" volumes: - /volume1/docker/grafana2:/var/lib/grafana
@chrisham sagte in Grafana in Docker: admin Rechte gehen nicht mehr:
- GF_AUTH_access
Alle Environment Variablen werden großgeschrieben und beinhalten keine Leerzeichen, ich bezweifle, dass es diese Env Var überhaupt gibt
- GF_AUTH_access enabled=true
Lies Dir bitte die Seiten durch, die ich oben schon angepinnt habe.
VG
BerndP.S.: oh, da ist ja noch jemand schon so früh unterwegs, guten Morgen
-
@dp20eic sagte in Grafana in Docker: admin Rechte gehen nicht mehr:
oh, da ist ja noch jemand schon so früh unterwegs, guten Morgen
Moin. Na, wenigstens sind wir uns in der Antwort halbwegs einig.
EDIT: Nur deine Minimal-Config ist mir ein wenig ZU minimal. Das /etc Verzeichnis würde ich schon noch mappen.
-
@marc-berg sagte in Grafana in Docker: admin Rechte gehen nicht mehr:
Das /etc Verzeichnis würde ich schon noch mappen.
Moin,
Verbesserungen, entstehen ja, durch kontroverse Ansichten
Solange ich nicht an die im
/etc/grafana/grafana.xyz
Dateien mit einem Editor ran muss, wüsste ich nicht wieso!
Genau dafür gibt es ja die Env. Var.!
Ich bin mir nicht sicher, ob das ein vorstellbares Szenario ist, aber Du persistierst die/etc/grafana
in der Version XYZ, aber die neue Version XYZZ möchte die jetzt aber nicht mehr im.ini
Format, sondern als.yson
, heißt aber immer noch/etc/grafana/grafana.ini
, dann kann es ja sein, das der Container nicht mehr startet, weil das Format nicht passt, beim Bau des neuen XYZZ Containers wurde Dir dann vielleicht/hoffentlich eine/etc/grafana.ini.new
abgelegt dann kann man ja wenigstens vergleichen, wenn man den Fehler erkennt.
Ist das/etc/grafana
nicht persistiert, dann passiert nichts, der neue Container XYZZ startet und nimmt die Env. Var.Aber gut, ich bin da vielleicht auch einfach anders gestrickt
@marc-berg sagte in Grafana in Docker: admin Rechte gehen nicht mehr:
Nur deine Minimal-Config ist mir ein wenig ZU minimal.
Na, dem Mann kann doch geholfen werden
version: "3.9" x-environment: &oncall-environment DATABASE_TYPE: sqlite3 BROKER_TYPE: redis BASE_URL: $DOMAIN SECRET_KEY: $SECRET_KEY FEATURE_PROMETHEUS_EXPORTER_ENABLED: ${FEATURE_PROMETHEUS_EXPORTER_ENABLED:-false} PROMETHEUS_EXPORTER_SECRET: ${PROMETHEUS_EXPORTER_SECRET:-} REDIS_URI: redis://redis:6379/0 DJANGO_SETTINGS_MODULE: settings.hobby CELERY_WORKER_QUEUE: "default,critical,long,slack,telegram,webhook,retry,celery,grafana" CELERY_WORKER_CONCURRENCY: "1" CELERY_WORKER_MAX_TASKS_PER_CHILD: "100" CELERY_WORKER_SHUTDOWN_INTERVAL: "65m" CELERY_WORKER_BEAT_ENABLED: "True" GRAFANA_API_URL: http://grafana:3000 services: engine: image: grafana/oncall restart: always ports: - "8080:8080" command: sh -c "uwsgi --ini uwsgi.ini" environment: *oncall-environment volumes: - oncall_data:/var/lib/oncall depends_on: oncall_db_migration: condition: service_completed_successfully redis: condition: service_healthy celery: image: grafana/oncall restart: always command: sh -c "./celery_with_exporter.sh" environment: *oncall-environment volumes: - oncall_data:/var/lib/oncall depends_on: oncall_db_migration: condition: service_completed_successfully redis: condition: service_healthy oncall_db_migration: image: grafana/oncall command: python manage.py migrate --noinput environment: *oncall-environment volumes: - oncall_data:/var/lib/oncall depends_on: redis: condition: service_healthy redis: image: redis:7.0.5 restart: always expose: - 6379 volumes: - redis_data:/data deploy: resources: limits: memory: 500m cpus: "0.5" healthcheck: test: ["CMD", "redis-cli", "ping"] timeout: 5s interval: 5s retries: 10 prometheus: image: prom/prometheus hostname: prometheus restart: always ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml - prometheus_data:/prometheus profiles: - with_prometheus grafana: image: "grafana/${GRAFANA_IMAGE:-grafana:latest}" restart: always ports: - "3000:3000" environment: GF_SECURITY_ADMIN_USER: ${GRAFANA_USER:-admin} GF_SECURITY_ADMIN_PASSWORD: ${GRAFANA_PASSWORD:-admin} GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS: grafana-oncall-app GF_INSTALL_PLUGINS: grafana-oncall-app volumes: - grafana_data:/var/lib/grafana deploy: resources: limits: memory: 500m cpus: "0.5" profiles: - with_grafana volumes: grafana_data: prometheus_data: oncall_data: redis_data:
VG
Bernd -
@dp20eic , @Marc-Berg : Danke euch. Da bin ich ja fast froh, dass ihr euch auch nicht ganz einig seid bzgl.
a) was kommt in grafana.ini: @Marc-Berg schlägt vor den org-Name in grafana.ini reinzunehmen, @dp20eic schlägt vor das alles über Env-var zu machen...
b) soll eine config-datei wie grafana.ini innerhalb oder außerhalb (persistent) vom Container abgelegt werdenUpdate der Container kann m.E. für beides ein Argument sein: wenn es tatsächlich Konfigurationen gibt, die man anpasst und nicht über docker-compose (Env-var) machen kann, also in grafana.ini, dann möchte man die eher persistent halten. Wenn jetzt aber Container-Provider das Format ändert, dann könnte das natürlich problematisch sein, aber hier muss man einen Tod sterben. Ich lasse sie jetzt mal außerhalb, kann das auch wieder ändern.
jetzt habe ich neu aufgesetzt:
grafana: network_mode: "host" restart: always image: grafana/grafana:latest container_name: grafana-6 ports: - "3000:3000" volumes: - /volume1/docker/grafana2:/var/lib/grafana - /volume1/docker/grafana2/etc/grafana.ini:/etc/grafana/grafana.ini - /volume1/docker/grafana2/views/index.html:/usr/share/grafana/public/views/index.html environment: - GF_SECURITY_ADMIN_USER=${GRAFANA_USER:-admin} - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD:-admin} - GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=grafana-oncall-app - GF_INSTALL_PLUGINS=grafana-oncall-app - GF_AUTH_org_name=CH_Smart
@dp20eic : die Env-vars muss man aber schon mit "-" Zeichen am Anfang eintragen und mit "=" Zeichen...?
Ansonsten muss ich jetzt halt meine Dashboards neu aufsetzen, soviel hatte ich da noch nicht gemacht, und dann auch regelmäßiger backups machen, hab mir heute gleich python-script mit chron-job geschrieben um 1x täglich die .db zu sichern.
Ein .db Merge wird sicher kompliziert, das wären ja zahlreiche tabellen, die man da rüberkopieren müsste....
-
@chrisham sagte in Grafana in Docker: admin Rechte gehen nicht mehr:
jetzt habe ich neu aufgesetzt:
Moin,
Du bist Dir sicher, was Du da machst?
Es sieht für mich so aus, dass Du nur abschreibst, Dir aber keine Gedanken darüber machst, was da die einzelnen Befehle oder Zeilen im Compose File bedeuten!
Zum Beispiel:- GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=grafana-oncall-app - GF_INSTALL_PLUGINS=grafana-oncall-app
Ich glaube nicht, dass Du
OnCall
nutzt!
Oder, hast Du eine eigene Login-Page?- /volume1/docker/grafana2/views/index.html:/usr/share/grafana/public/views/index.html
VG
Bernd -
@dp20eic said in Grafana in Docker: admin Rechte gehen nicht mehr:
@chrisham sagte in Grafana in Docker: admin Rechte gehen nicht mehr:
jetzt habe ich neu aufgesetzt:
Moin,
Du bist Dir sicher, was Du da machst?
Es sieht für mich so aus, dass Du nur abschreibst,Ja, coding besteht zu 90% aus Abschreiben, und ich steh dazu, dafür gibt es OSS, github und solche Foren,...
Lieber gut abgeschrieben als schlecht selbst gemacht, und dennoch lernt man viel dabei, ich beschäftige mich mit so viel unterschiedlichen Themen, da mache ich gerne den Kompromiss, dass ich an manchen Stellen nur soweit selbst in die Tiefe gehe wie für meinen Anwendungsfall notwendig oder ausreichend, meine Prioritäten sind nicht, in solchen Foren zu glänzen, sondern meine Ziele zu erreichen...Dir aber keine Gedanken darüber machst,
... mache ich, zu gegebener Zeit....
was da die einzelnen Befehle oder Zeilen im Compose File bedeuten!
Zum Beispiel:
- GF_PLUGINS_ALLOW_LOADING_UNSIGNED_PLUGINS=grafana-oncall-app - GF_INSTALL_PLUGINS=grafana-oncall-app
Ich glaube nicht, dass Du
OnCall
nutzt!...noch nicht, kann aber noch werden...
Oder, hast Du eine eigene Login-Page?
- /volume1/docker/grafana2/views/index.html:/usr/share/grafana/public/views/index.html
diese Datei habe ich ausverlagert, da ich für lovelace-Visu auch Anpassungen benötige, da muss im Header Anpassungen gemacht werden.
VG
Bernd -
@chrisham sagte in Grafana in Docker: admin Rechte gehen nicht mehr:
coding besteht zu 90% aus Abschreiben
Oh, da hat jemand dieses Buch gelesen:
-
@chrisham sagte in Grafana in Docker: admin Rechte gehen nicht mehr:
Ja, coding besteht zu 90% aus Abschreiben, und ich steh dazu, dafür gibt es OSS, github und solche Foren
Moin,
nicht falsch verstehen, das ist alles nicht persönlich gemeint. Nur, wenn ich mit etwas neuem Anfange und das ist fast täglich, irgendein Thema, dann
@chrisham sagte in Grafana in Docker: admin Rechte gehen nicht mehr:
...noch nicht, kann aber noch werden...
fange ich aber nicht mit etwas an, was ich nicht brauche oder erst in ferner Zukunft, erschwere mir damit aber vielleicht den Einstieg, weil ich schon alles verbiege und versuche anzupassen, eine Fehlersuche ist auch mit einem schlanken Ansatz einfachen.
Und weil ich ja ein Korinthenkacker bin
Hint
Wenn Du schon Plugins beim Erstellen des Containers mit angibst, dann würde ich ja das dann auch persistieren, denn das sind Nutzdaten, wie Data sources, Dashboards, Panels- /volume1/docker/grafana2/plugins:/var/lib/grafana/plugins
@chrisham sagte in Grafana in Docker: admin Rechte gehen nicht mehr:
diese Datei habe ich ausverlagert, da ich für lovelace-Visu auch Anpassungen benötige, da muss im Header Anpassungen gemacht werden.
Solche Sachen, könnte man ja dann auch mal mit kundtun, dann muss ich auch weniger schreiben
Aber ich denke, wir verlieren den Fokus auf das eigentliche Thema und ich möchte auch niemanden bekehren, Leitmotto,
jeder so wie er möchte, Leben und leben lassen
VG
Bernd -
@dp20eic Ich bin da ganz entspannt, ich habe mich daran gewöhnt, in Foren hier und da mal "nette Hinweise" zu bekommen oder auch Belehrungen, das ist doch ok. Meist halt von den Leuten, die tiefe Expertise haben, und das sind genau die Leute, die einem auch weiterhelfen können. Ist auch verständlich, wenn ich bei anderen Themen Leute etwas "unbeholfen" sehe, dann kitzelt es mich auch, sie auf ihr Unwissen hinzuweisen. Nur damit kommt man auch weiter...
Für mich zählt immer, möglichst schnell mein Ziel zu erreichen, auch wenn ich ggf. zu viel mache. Später entscheide ich dann ob bzw. wo es sich lohnt es nochmals sauber zu machen, da bin ich schlicht Kosten/Nutzen orientiert, ich benötige weder einen Schönheitspreis, noch die Anerkennung von irgendjemand, was zählt, wieviel ich innerhalb einer bestimmten Zeit hinbekomme.
Plugins: danke, habe ich mit eingebaut.
index.html: war für mich jetzt nicht relevant für diesen Thread, es ging ja um das Login-problem bei Grafana.
jedenfalls jetzt läuft wieder alles, influxdb, grafana, lovelace visu...
ist zwar hier off-topic, aber so sieht die main-page meiner aktuellen visu aus (auch alles noch work-in-progress):
Bestimmt hat irgendjemand hier auch wieder etwas zu kritisieren, aber es ist (weitgehend) so wie ich es mir vorstellt. Noch etwas ausbauen und ich kann auch mobil auf diese Visu wechseln (dann alles über VPN ohne Security-Risiken), und dann endlich den mobilen Zugriff über den Server eines Fremdanbieters (der leider Zugriff nur über offenen Port ermöglicht) abschalten. Alles läuft dann hier lokal auf meinem eigenen Server....
-
@chrisham sagte in Grafana in Docker: admin Rechte gehen nicht mehr:
Bestimmt hat irgendjemand hier auch wieder etwas zu kritisieren
Ja, ich! Das ist Dreckswetter ...
-
@chrisham sagte in Grafana in Docker: admin Rechte gehen nicht mehr:
Bestimmt hat irgendjemand hier auch wieder etwas zu kritisieren,
Moin,
nein, das ist einfach Geschmackssache, ich habe überhaupt kein Talent was Visualisierungen angeht, bin da ein totaler Visualisierunglegastheniker.
VG
Bernd -
-
@chrisham sagte in Grafana in Docker: admin Rechte gehen nicht mehr:
Später entscheide ich dann ob bzw. wo es sich lohnt es nochmals sauber zu machen, da bin ich schlicht Kosten/Nutzen orientiert, ich benötige weder einen Schönheitspreis, noch die Anerkennung von irgendjemand, was zählt, wieviel ich innerhalb einer bestimmten Zeit hinbekomme.
Ohne hier belehrend um die Ecke kommen zu wollen:
Ich beschäftige mich viel mit Dingen wie "Clean Code".
Einer der Kernpunkte: Code (und dazu gehört im weiteren Sinne auch sowas wie Konfiguration) wird nur äußerst selten sofort in der endgültigen Form geschrieben. Also: Refactoring ... Pfadfinderregel: "Hinterlasse Code immer besser als Du ihn vorgefunden hast".
Also so schnell wie möglich "schön machen" ... hilft!Der Punkt ist nämlich: Code wird zu 80% gelesen und wesentlich seltener geschrieben.
Das Problem ist die Wartung. Nicht selten muss man nach Wochen und Monaten nochmal da ran. Wenn man sich dann denkt "welcher Vollhorst hat das denn verbrochen?" um dann festzustellen "huch, war ja ich selbst" hat man ein Problem.Viel schlimmer ist dann, wenn man Dinge einfach nur blind aus irgendwelchen dubiosen Quellen kopiert hat. Wenn man dann nicht verstanden hat, was da überhaupt passiert, hat das Kopieren so ziemlich NULL geholfen. Man muss dann ja wieder suchen, wo das Problem liegt.
Ich halte mich da grundsätzlich eher an den Grundsatz: "Perfektion ist nicht erreicht, wenn man nichts mehr hinzufügen kann, sondern wenn nichts mehr wegzulassen ist"
YAGNI: You Ain’t Gonna Need It!
KISS: Keep it simple, stupid!Mein Wort zum Sonntag
-
@codierknecht Ja, ich weiß, und kenne ich alles. Hab auch beruflich mit SW-Engineering zu tun. Generell hat man sich über die (nicht-) funktionalen Anforderungen (Safety, Security, Wartbarkeit,...) an sein System/Programm/Code klar zu werden. Allerdings kann die Priorisierung unterschiedlich ausfallen, das hängt auch von dem Umfeld/Einsatzgebietes der Software ab. Und da habe ich für meine private Projekte andere Kriterien als im beruflichen Umfeld. So wie ich hier arbeit, würde ich das im professionellen Umfeld nicht akzeptieren. Ich muss mir nur darüber bewusst sein, welche Qualität ich erreichen möchte und dann auch damit leben. Dennoch dokumentiere ich auch im privaten Umfeld relativ viel, so dass ich im wesentlichen die Schritte, später wieder nachvollziehen kann, oder zumindest aus welchen Quellen ich die Ideen übernommen habe. Sehr oft fängt man einfach mal mit einem Youtube-Video an und dann macht man "monkey-see-monkey-do", um erstmal was zum Laufen zu bekommen, dann entscheide ich, ob ich wirlich jede einzelne Code-Zeile, jeden einzelnen Parameter noch im Detail verstehen kann oder ob ich es einfach mal dabei belasse. Zumindest habe ich mit der Dokumentation der Quelle später die Möglichkeit nachzuvollziehen woher es kam. Es ist auch eine Frage des verfügbaren Zeitbudgets (neben Beruf, Familie, noch ein paar andere private Verpflichtungen oder Aktivitäten,,...) hat man auch nicht beliebig viel Zeit.
-
@marc-berg zurück zum ursprünglichen Problem (nachdem wir etwas abgeschweift waren): es scheint, selbst nach komplettem Neuaufsetzen von grafana immer noch / wieder zu existieren, also da scheint was grundsätzlich nicht zu stimmen bei dem ganzen user config:
Nachdem die initial User-Creation (admin/admin) erfolgte und ich danach Passwort änderte, schien erstmal wieder alles i.O. Doch dann "wagte ich es", diesmal tatsächlich ohne etwas an der ganzen setup/konfig geändert zu haben, mich einmal aus- und wieder einzuloggen: und siehe da: wieder das gleiche Problem:- er sagt "logged in"
- aber: keine Menüs, keine Dashboards, und wieder login-menu angezeigt:
Nun habe ich ja zum Glück meine Backups, kopiere also die zuletzt funktionierende .db wieder ins grafana-verzeichnis, und kann mich dann wieder einmal einloggen, aber dann beginnt das spiel von neuem: einmal ausloggen und vorbei...
Ich kümmere mich gerne mal auch um clean code, aber das scheint was grundsätzlicheres zu sein, hab mir auch nochmals im detail die grafana-doku durchgelesen, aber da finde ich nichts, was irgendwie mit diesem Problem zu tun haben könnte. Langsam nervt mich das ganze Grafana-Zeugs, mit keinem anderen Docker-Image hatte ich solche Probleme und dann noch dieses hässliche .db format.... - er sagt "logged in"
-
@chrisham sagte in Grafana in Docker: admin Rechte gehen nicht mehr:
Langsam nervt mich das ganze Grafana-Zeugs, mit keinem anderen Docker-Image hatte ich solche Probleme und dann noch dieses hässliche .db format....
Jo, da du offensichtlich ziemlich allein mit diesem Problem bist, MUSS es einfach an Grafana liegen …
Wenn das Problem auch nach einer Neuinstallation fortbesteht, bringt mich das zu meiner allerersten Vermutung zurück, dass es am Client liegt. Was passiert, wenn Du vom Smartphone aus zugreifst?
-
@marc-berg Also bei Smartphone (und nun auch probiert: auf PC mit allen anderen Browsern): kann ich mich auch das erste mal gar nicht einloggen (also nachdem wieder .db Backup drüberkopiert wurde): Wieder das Phänomen dass er sagt: "Logged in", aber er verbleibt in dem Login-Dialog.....
-
@chrisham also bedeutet:
- bei Brave-Browser funktioniert das einmalige einloggen, dann nach ausloggen wieder das Problem
- bei Edge, Chrome: auch das erstmalige einloggen funktioniert nicht
-
@chrisham sagte in Grafana in Docker: admin Rechte gehen nicht mehr:
kann ich mich auch das erste mal gar nicht einloggen (also nachdem wieder .db Backup drüberkopiert wurde)
Das heißt, wir reden jetzt nicht mehr von einer frischen Installation ohne Anpassungen?