Ein paar Verständnisfragen zum Thema influxDB 2.x in docker bei DS218+

TobiHome

Benutzer
Mitglied seit
16. Dez 2023
Beiträge
9
Punkte für Reaktionen
0
Punkte
1
Zunächst einmal möchte ich mich für meine leienhaften Fragen entschuldigen. Ich bin komplett neu im Thema Synology, Docker und influx. Seit ca 4 Wochen kämpfe ich mich durch mein Projekt und bin aber jetzt an einem Punkt an dem ich nicht mehr so richtig weiter komme.

Mein aktuelles Ziel:
Also ich habe eine Home Automation von Loxone und möchte Daten von meiner PV Anlage über die Loxone via ioBroker in eine Datenbank in eine influx Datenbank im Synology Docker schicken. Grafana soll das alles später aufarbeiten.

Mein aktueller Stand:
Ich habe alles installiert und bin auch in der Lage Werte von der Loxone in eine influx Datenbank zu schicken. Soweit so gut. Jetzt habe ich aber noch ein paar Detail fragen:

1) Zur influx Installation
Ich habe bei der Installation von influx im Docker keine Ordner außerhalb des Dockers angegeben. Soweit ich das verstanden habe sind die Dateien nur irgendwo im Docker. Ich habe versucht die angelegte Datenbank (Bucket) in der File Station vom DSM zu finden aber da ist nichts zu sehen. Wahrscheinlich logisch wegen meiner Installation. Meine Frage ist nun:
a) Welche Nachteile hat es das ich keine Ordner außerhalb des Dockers angelegt habe?
b) Wie kann man die Datenbank im Docker finden?

2) Datensicherung
Wie ist das mit der Datensicherung im Docker? Ich habe Raid1 bei der Installation gewählt. Ich würde mal davon ausgehen, dass auch die Docker Installationen und somit auch die Influx Installation damit abgesichert ist. Kann es mir nicht egal sein, ob meine Datenbank Dateien innerhalb oder außerhalb des Dockers liegen? Das würde die Fragen oben nach der Identifikation des Buckets erübrigen. Soll das doch liegen wo es will ;-)
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Du musst schon die InfluxDB Verzeichnisse auf die DS mappen. Sonst ist bei einem Update des Containers alles wech.
Bei der InfluxDB2 ist das /etc/influxdb2 und /var/lib/influxdb2
Als Backup dann die gemappten Verzeichnisse mit Hyper Backup wegischern.
 

TobiHome

Benutzer
Mitglied seit
16. Dez 2023
Beiträge
9
Punkte für Reaktionen
0
Punkte
1
Danke erst einmal für deine Antwort.
Es wäre natürlich schön ein paar Hintergund Informationen zu erhalten.
Aus der Antwort höre ich raus, dass Docker-Container nicht mit dem Raid1 gesichert sind?!
Wie und warum kann sich denn ein Container updaten? Warum ist dann alles wech?
Um dort Sachen zu sichern muss ich die Dateien also außerhalb des Dockers speichern?!
Das gilt dann wahrscheinlich auch für andere Programme wie ioBroker und Grafana?

Das mappen der Verzeichnisse auf die DS kann man sicherlich nicht mehr nachträglich machen oder?
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Erstmal: Verstehe ein RAID bitte nicht als Sicherung. Du brauchst dennoch ein Backup.
Und erstmal speichert ein Docker-Container seine Dateien immer in sich selbst und hat keinen Zugriff auf die Daten des Hosts (also der DS). Wenn man nun das Docker-Image updatet, wird das alte weggeworfen und ein neues gezogen. Dann sind logischerweise alle Änderungen und Daten weg, die innerhalb des alten Images gelegen haben. Das ist schon mal das Grundprinzip, wie Docker funktioniert. Möchte man nun Daten dauerhaft behalten, muss man mit sogenannten Mappings dafür sorgen, dass Daten, die innerhalb des Containers in gewisse Pfade geschrieben werden, nicht im Container landen, sondern auf dem Host. Wenn meine InfluxDB z.B. Daten nach /etc/influxdb2 schreibt, landen diese Daten nicht im Container, sondern auf dem Host. Das ist dem Container aber egal, der weiß das gar nicht. Das macht alles der Docker-Dienst. Die Daten, die dann in diesem Verzeichnis auf dem Host liegen, sichere ich. Wenn nun der Host oder die Platte abraucht, installiere ich den Container einfach neu und mappe die gesicherten Daten wieder nach /etc/influxdb2. Dann ist der Container quasi wieder auf dem gleichen Stand wie davor.
Das mappen der Verzeichnisse auf die DS kann man sicherlich nicht mehr nachträglich machen oder?
Doch. Aber dann sind ebenfalls die Daten, die vorher an dem Pfad in dem Container selbst gelegen haben, weg.
Das gilt dann wahrscheinlich auch für andere Programme wie ioBroker und Grafana?
Ja. Das gilt für alle Docker-Container, die persistent Daten speichern sollen / müssen.
 

TobiHome

Benutzer
Mitglied seit
16. Dez 2023
Beiträge
9
Punkte für Reaktionen
0
Punkte
1
Super danke das war fürs Verständnis echt hilfreich.
Ich werde dann einfach nochmal neu installieren und hoffen das ich alles wieder ans Laufen bekomme.
Weißt du denn zufällig wie die Maggings für Grafana und ioBroker aussehen?
 

metalworker

Benutzer
Sehr erfahren
Mitglied seit
25. Apr 2023
Beiträge
3.200
Punkte für Reaktionen
1.147
Punkte
194
der Ablauf ist ja immer der geiche , auch für Grafana oder dem ioBroker.

Für die gibts auch viele Anleitungen im Netz.

Wichtig ist immer das du sauber mit den Ordnern Arbeitest , und diese dann in deine Sicherung einbindest
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
ioBroker leider keine Ahnung.
Für Grafana musst du /var/lib/grafana und /etc/grafana/grafana.ini mappen
 

Kachelkaiser

Benutzer
Sehr erfahren
Mitglied seit
22. Feb 2018
Beiträge
1.986
Punkte für Reaktionen
793
Punkte
134

TobiHome

Benutzer
Mitglied seit
16. Dez 2023
Beiträge
9
Punkte für Reaktionen
0
Punkte
1
Ich habe jetzt versucht influx, grafana und iobroker zu installieren mit korrekt mappings.
Leider lässt sich grafana nicht mehr installieren. Hatte ich beim ersten mal auch schon mal. Leider klappt es diesmal nicht.
Vielleicht kann mir jemand helfen.
Beim letzten mal ging es nachdem ich Node.js installiert hatte.
 

Anhänge

  • 1703381768722.png
    1703381768722.png
    116 KB · Aufrufe: 10

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
854
Punkte
154
Grafana kann in deinen gemappten Ordner nicht schreiben. Entweder die rechte richtig setzen oder einen User der drauf zugreifen kann setzen
 

TobiHome

Benutzer
Mitglied seit
16. Dez 2023
Beiträge
9
Punkte für Reaktionen
0
Punkte
1
Hallo
Frohe Weihnachten erst einmal. Das mit den Berechtigungen macht Sinn. Konnte aber keine Erklärung finden, wie (nach welchen Regeln) ich die setzten muss. Gerade habe ich gar keine Berechtigungen vergeben. influx und ioBroker hat das nicht interessiert. Vielleicht muss da aber auch noch was gesetzt werden.
1703411065669.png

1703411189580.png
 

alexhell

Benutzer
Sehr erfahren
Mitglied seit
13. Mai 2021
Beiträge
2.831
Punkte für Reaktionen
854
Punkte
154
Du wirst keinen User in DSM dazu finden.. grafana nutzt glaube ich die User ID 911. Du kannst normal (bei der GUI bei Synology weiß ich es nicht) eine User ID mitgeben, dann läuft es unter dem User. Die UI vom Container Manager ist leider nicht wirklich brauchbar. Such lieber eine Anleitung wie man es mit Docker-Compose macht. Dann musst du es zwar über SSH einrichten, aber es ist um einiges schneller einzurichten und leichter zu ändern
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.187
Punkte für Reaktionen
71
Punkte
68
Das nutzt hier leider nichts, Du musst Schreibrechte auf das Untevrerzeichnis für Grafana an Alle (genauer ID 472 geben. Das geht nicht über den Containermanager. Wenn Du /docker/grafana als Mounf für /var/lib/grafana konfiguriert hast, gehst Du am besten mit Root auf die Konsole und machst dort ein
chmod -R 0777 /volume1/docker/grafana
(wenn der shared Ordner Docker auf Volume1 liegt).

Alternativ:
chown -R 472 /volume1/docker/grafana
Bei mir liegen der Mount in /docker_shared/grafana_shared, dann sieht es beispielhaft so aus, wen der Container gestartet ist
1703412465621.png

Oder Du benutzt ein Docker Volume, z.b. "grafana-data:/var/lib/grafana". Das ist zwar einfacher zu konfigurieren, aber dafür nicht so transparent wie der Filesystem Mount
 

CoComp

Benutzer
Mitglied seit
01. Jan 2012
Beiträge
19
Punkte für Reaktionen
1
Punkte
3
ioBroker leider keine Ahnung.
Für Grafana musst du /var/lib/grafana und /etc/grafana/grafana.ini mappen
Ich hänge mich da mal ran, da ich meinen ersten grafana-Docker leider auch ohne ein gemountetes Volumen aufgesetzt habe.
Kann ich nicht nachträglich die betreffenden Verzeichnisse auf meinem Dockervolumen anlegen, mounten und die Dateien aus den Container in die neu angelegten und gemounteten Verzeichnisse kopieren/verschieben?
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
  • Like
Reaktionen: CoComp

CoComp

Benutzer
Mitglied seit
01. Jan 2012
Beiträge
19
Punkte für Reaktionen
1
Punkte
3
ioBroker leider keine Ahnung.
Für Grafana musst du /var/lib/grafana und /etc/grafana/grafana.ini mappen
Ich habe derzeit den grafana-Docker nach der Anleitung von mariushosting verwendet. In dieser ist aber nur der Ordner
Code:
/var/lib/grafana
gemappt, die Datei
Code:
/etc/grafana/grafana.ini
liegt im Container. Ich gehe davon aus, dass ich das nicht ohne weiteres nachträglich ändern kann.

Um bei Containerupgrades keine Daten zu verlieren---muss ich den Container mit beiden gemappten Ordnern/Dateien neu aufsetzen?

Wenn ja, wie muss ich das Script von Marius anpassen?
Code:
docker run -d --name=grafana \
-p 3010:3000 \
-v /volume1/docker/grafana:/var/lib/grafana \
--restart always \
grafana/grafana
chown -R 472:472 /volume1/docker/grafana
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Mitglied seit
28. Okt 2020
Beiträge
15.028
Punkte für Reaktionen
5.401
Punkte
564
Im Prinzip kannst du das so lassen. Vorausgesetzt den Ordner /volume1/docker/grafana gibt es bei dir. Die grafana.ini kannst du auch im Container ändern. Ist halt nach einem Update vielleicht wieder "zurückgeändert"
 

CoComp

Benutzer
Mitglied seit
01. Jan 2012
Beiträge
19
Punkte für Reaktionen
1
Punkte
3
Meine Idee war ja, mir diese manuelle Nacharbeit an der grafana.ini zu ersparen und dazu die grafana.ini einmalig aus dem Container in ein temporäres Verzeichnis außerhalb des Containers zu kopieren, den Container zu löschen und mit einem angepassten Marius-Script neu aufzusetzen und dann die "neue" grafana.ini mit der kopierten Version zu überschreiben.
Da ich aber kein Linux-Spezi bin, bräuchte ich dafür von euch eine Anpassung der Marius-Scriptes, um mit einer ausgelagerten garfana.ini zu starten.
 
Zuletzt bearbeitet von einem Moderator:

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.187
Punkte für Reaktionen
71
Punkte
68
kopiere das /etc/grafana Verzeichnis aus dem laufenden Container z.b. mit
docker cp -a grafana:/etc/grafana /volume1/docker/grafana.etc

und füge dann dem Start ein neuen Volume Mount darauf hinzu, z.B.
-v /volume1/docker/grafana.etc:/etc/grafana \
Hinweis:
- beim docker cp -a werden die Verzeichnisrechte mit kopiert, also root verwenden, ohne -a muss man sie nachträglich anpassen
- das Ziel (hier /volume1/docker/grafana.etc darf kein Unterverzeichnis von /volume1/docker/grafana sein, weil das ja schon selbst als Volume genutzt wird
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat