Wie InfluxDB richtig konfigurieren/starten?

Raptor05

Benutzer
Mitglied seit
23. Mai 2018
Beiträge
18
Punkte für Reaktionen
2
Punkte
9
Hallo liebe Community,

bin noch relativ frisch in der Welt von Docker. Ich wollte nun die InfluxDB auf meiner DS installieren. Leider komme ich damit nicht so klar.
Was ich bisher gemacht habe:
  1. Unter Registrierung das influxdb Paket heruntergeladen (Link)
  2. Unter Abbild das Image gestartet
  3. Habe den Port 8086 auf 8086 abgebildet
  4. Den Pfad "/var/lib/influxdb" einem Ordner auf der NAS zugewiesen
  5. Container gestartet

2018-12-01 18_54_13-Nukular.jpg

Ich hätte jetzt angenommen, dass ich unter http://meine-ip:8086 irgendetwas zu sehen bekomme, aber bekomme nur ein "Die Website ist nicht erreichbar"

Was muss ich denn da noch machen? Werde aus der Dokumentation leider nicht wirklich schlau. Und habe auch ansonsten im Internet nichts gefunden, was mir bei meinem Wissensstand irgendwie helfen könnte...

Wäre sehr dankbar für Hilfe!
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.473
Punkte für Reaktionen
357
Punkte
103
Ich weiss ja nicht, wie weit Du die Beschreibung auf DockerHub gelesen hast, aber das was unter "Configuration" steht, sieht für mich nach der Ursache aus, dass der Dienst nicht richtig läuft.. Ohne Shell-Zugang wirst Du hier nicht weit kommen.
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.165
Punkte für Reaktionen
63
Punkte
68
Auf Port 8086 gibt es auch nichts zu sehen, das ist der Datenbank-API-Port. Evtl. macht es Sinn, sich erstmal an der Getting started Doku entlang zu hangeln...:confused:
 

Raptor05

Benutzer
Mitglied seit
23. Mai 2018
Beiträge
18
Punkte für Reaktionen
2
Punkte
9
Ich weiss ja nicht, wie weit Du die Beschreibung auf DockerHub gelesen hast, aber das was unter "Configuration" steht, sieht für mich nach der Ursache aus, dass der Dienst nicht richtig läuft.. Ohne Shell-Zugang wirst Du hier nicht weit kommen.

Was genau meinst du denn unter "Configuration"? Ich habe auch schon versucht, den Container per SSH Konsole zu installieren, da kam aber der Fehler, dass der Ordner für den Pfad nicht existieren würde, obwohl ich ihn aber vorher extra angelegt habe.. und da steht wie man Umgebungsvariablen setzt, aber nicht welche ich brauche... woher soll ich das denn wissen?
 

Raptor05

Benutzer
Mitglied seit
23. Mai 2018
Beiträge
18
Punkte für Reaktionen
2
Punkte
9
Auf Port 8086 gibt es auch nichts zu sehen, das ist der Datenbank-API-Port. Evtl. macht es Sinn, sich erstmal an der Getting started Doku entlang zu hangeln...:confused:

Das habe ich versucht, bin aber schon daran gescheitert mich mit der dort beschriebenen CLI zu verbinden. Wie komme ich an die denn ran über die NAS? Das ist irgendwie auch nirgends beschrieben leider. Über SSH habe ich es nicht hinbekommen.
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.165
Punkte für Reaktionen
63
Punkte
68
Wie komme ich an die denn ran über die NAS?
z.B. in der Docker Gui auf Details des Containers geben, Tab Terminal und dort auf den Erstellen Button clicken. Dann das entstandene "bash" anklicken und im Terminal influx eingeben.

Oder auf der DS Komandozeile als root "docker exec -ti InfluxDB influx" ausführen, wenn InfluxDB der Containername ist.
 

Raptor05

Benutzer
Mitglied seit
23. Mai 2018
Beiträge
18
Punkte für Reaktionen
2
Punkte
9
Ich glaube jetzt habe ich gerade etwas ziemlich doofes gemacht...
Ich habe die installation jetzt wie beschrieben in der Bash Konsole hinbekommen und dort auch Datenbanken angelegt. Soweit so gut.

Dann wollte ich diese ominöse Konfigurationsdatei "/etc/influxdb/influxdb.conf" bearbeiten, habe diese aber nirgends gefunden. Im Internet habe ich dann gelesen, dass dieser "etc" Ordner gemountet werden kann.
Also habe ich die Anleitung befolgt und mich über SSH eingeloggt und "sudo mount --bind / /etc" eingegeben. Das war scheinbar ein Fehler. Anschließend war die Web UI weg, SSH hat gesagt "Who are you?" und hat alle Verbindungen abgelehnt. Und alle Gemeinsamen Ordner sind scheinbar weg. Ich habe momentan gar keine Möglichkeit mehr auf die NAS zuzugreifen, außer über SAMBA.

Bitte um Hilfe!!
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.165
Punkte für Reaktionen
63
Punkte
68
Du hast den Befehl doch nicht etwa auf dem NAS statt im Container ausgeführt? Auch dort wäre es falsch. Aua! Ein Reboot solte helfen

Das Mounten von Docker Volumes, also das Einblenden von Files aus dem Dockerhost in den Container macht man nicht mit mount, sondern mit Docker, z.B. in der Gui Tab Volumes. Auf der DS legt mann sich z.B. im Share docker ein neues Verzeichnis an, legt dort seine influxdb.conf rein und weisst diese dann bei ausgeschalteten Container mit Bearbeiten- Tab Volumes Datei hinzufügen dem Container als /etc/influxdb/influxdb.conf zu.

BTW: Ein wenig Grundlagen-Lektüre würde viele "steht nirgendwo" fragen beanten. Das steht oft nicht explizit dabei, weil es halt Standard ist.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.473
Punkte für Reaktionen
357
Punkte
103
Also habe ich die Anleitung befolgt und mich über SSH eingeloggt und "sudo mount --bind / /etc" eingegeben. Das war scheinbar ein Fehler. Anschließend war die Web UI weg, SSH hat gesagt "Who are you?" und hat alle Verbindungen abgelehnt. Und alle Gemeinsamen Ordner sind scheinbar weg. Ich habe momentan gar keine Möglichkeit mehr auf die NAS zuzugreifen, außer über SAMBA.
*Schmunzel* Du hast das root Verzeichnis Über das bestehende /etc-Verzeichnis gemountet. Alles nicht so schlimm: NAS neustarten und alles ist wieder gut.

Tommi2day hat schon recht: ohne zu verstehen wie Docker benutzt werden will. Ebenso sollte man verstehen, dass jedes Docker Image zu einer Anwendung individuel zu nutzen ist. Die DockerHub Beschreibungen sind ja nicht umsonst meist so umfangreich. Docker Images ohne Beschreibung solte man meiden.
 

Raptor05

Benutzer
Mitglied seit
23. Mai 2018
Beiträge
18
Punkte für Reaktionen
2
Punkte
9
Reboot hat geholfen, danke :)

Auf der DS legt mann sich z.B. im Share docker ein neues Verzeichnis an, legt dort seine influxdb.conf rein und weisst diese dann bei ausgeschalteten Container mit Bearbeiten- Tab Volumes Datei hinzufügen dem Container als /etc/influxdb/influxdb.conf zu.

Und wenn ich die Datei nicht selbst habe, sondern die des Containers bearbeiten will? Verweise ich dann auf den leeren Ordner und der Container erstellt die Datei beim starten dann an dem Ort?

Hat von euch jemand denn Empfehlungen für eine solche Grundlagen-Lektüre?
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.473
Punkte für Reaktionen
357
Punkte
103
  • Like
Reaktionen: CptGambit

Raptor05

Benutzer
Mitglied seit
23. Mai 2018
Beiträge
18
Punkte für Reaktionen
2
Punkte
9
Vielen Dank, da werde ich mich wohl mal einarbeiten müssen.

Nochmal eine Verständnis-Frage zu dem InfluxDB Container:
Unter folgender Anleitung steht, man solle die Konfig-Datei /etc/influxdb/influxdb.conf bearbeiten. Wie komme ich denn an die ran? Ich habe zwei Dinge versucht:
  1. Eine leere Datei mit dem Namen "influxdb.conf" erstellt und unter Bearbeiten den Pfad "/etc/influxdb/influxdb.conf" darauf gemappt. Dann konnte der Container aber nicht mehr starten, da die Konfiguration wohl nicht leer sein darf.
  2. Dann habe ich einen neuen Ordner erstellt und den Pfad "/etc/influxdb" daran gebunden.Anschließend habe ich über SSH den Befehl "docker run --rm influxdb influxd config > influxdb.conf" ausgeführt, wie hier unter Configuration beschrieben ausgeführt. Leider beinhaltet der Ordner aber trotzdem keine Config Datei...

Wie komme ich denn an diese Config Datei ran?
 
Zuletzt bearbeitet von einem Moderator:

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.165
Punkte für Reaktionen
63
Punkte
68
Der Befehl muss das mapping enthalten, woher soll er sonst wissen, das es lokal landen soll. " /volume1/docker/influxdb" ist der Pfad auf dem NAS, wo die Datei landen soll.

docker run -v /volume1/docker/influxdb:/etc/influxdb --rm influxdb influxd config > /etc/influxdb/influxdb.conf

Oder den Default aus dem Internet ziehen und gleich am richtigen Platz bearbeiten.Steht übrigens in der Doku :

sample configuration file on Githubl
 
Zuletzt bearbeitet:

Raptor05

Benutzer
Mitglied seit
23. Mai 2018
Beiträge
18
Punkte für Reaktionen
2
Punkte
9
Der Befehl hat leider auch nicht funktioniert, die Datei ist an dem angegebenen Pfad nicht aufgetaucht. Aber über die Default Datei hat es funktioniert :)
 
Zuletzt bearbeitet von einem Moderator:

ViperRt10

Benutzer
Mitglied seit
16. Aug 2009
Beiträge
1.459
Punkte für Reaktionen
30
Punkte
74
darf ich das nochmal hochholen, der Link zur default datei fkt. nicht, gäbe es einen neuen? meine Suche ist leider nicht fruchtend...
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.165
Punkte für Reaktionen
63
Punkte
68
Das Sample im Github wurde wohl entfernt. Man kann sich die default Konfiguration aber immer noch generieren lassen. Es gibt dabei unterschiede zwischen InfluxDB1.x und 2.x. Siehe auch in der Beschreibung der Images in https://hub.docker.com/_/influxdb fast ganz unten (Configuration)
 

ViperRt10

Benutzer
Mitglied seit
16. Aug 2009
Beiträge
1.459
Punkte für Reaktionen
30
Punkte
74
Das genau verstehe ich nicht, der CLI Befehl verbindet die conf aus dem Docker mit der Außenwelt, sprich meinem volue1/....
nun muss ich ihm eine conf bereit stellen, dass er das verbindet, das ist mir nicht klar warum, er soll doch die aus dem container dort verbinden, bzw. bereitstellen (oder ist keine im Container drin?)
auf der HP finde ich dazu keine Möglichkeit mir eine zu generieren. Ich verstehe nur wie ich die Settings machen kann, aber ein file braucht es.
?
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.473
Punkte für Reaktionen
357
Punkte
103
Nehmen wir an, dein Volume für influxdb ist: /volume1/docker/influxdb, dann erzeugst Du die config.yml wie folgt:
Code:
docker run --rm influxdb:2.0 influxd print-config > /volume1/docker/influxdb/config.yml

Dann editierst Du die Config und startest den Container dann damit:
Code:
docker run -p 8086:8086 -v /volume1/docker/influxdb/config:/etc/influxdb2/ influxdb:2.0
Falls weitere Volumes notwendig sein müssen, die natürlich ergänzen.

Das mit der config.yml ist optional... Man kann sich die auch erzeugen lassen durch ENV Variablen.
Hier das Beispiel aus der Dockerhub Beschreibung mit angepassten Volume-Pfaden:
Code:
$ docker run -d -p 8086:8086 \
      -v /volume1/docker/influxdb/data:/var/lib/influxdb2 \
      -v /volume1/docker/influxdb/config.yml:/etc/influxdb2/config.yml \
      -e DOCKER_INFLUXDB_INIT_MODE=setup \
      -e DOCKER_INFLUXDB_INIT_USERNAME=my-user \
      -e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \
      -e DOCKER_INFLUXDB_INIT_ORG=my-org \
      -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \
      -e DOCKER_INFLUXDB_INIT_RETENTION=1w \
      -e DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=my-super-secret-auth-token \
      influxdb:2.0

Allerdings solltet ihr es euch gut überlegen, ob ihr auf influxdb2 gehen wollte. Die Abfragesprache ist eine Andere: statt influxQL nun Flux - beide nicht komatibel zueinander. Eure Client-Anwendungen muss explizit Influxdb2 support haben, damit sie damit funktioniert.

Achtung: wenn ihr eine bestehen 1.x Datenbank auf 2.x migrieren wollt, solltet ihr unbedingt der dazugehörigen Information in der Dockerhub Beschreibung folgen!.

Update: Mir ist gerade aufgefallen das ich das in einem anderen Thread vor ein paar Tagen schon geschrieben hab - nur weniger ausführlich.

Update2: Bei Influxdb 1.8 gibt es diese Parameter scheinbar nicht (oder sie sind nicht dokumentiert):
Da wäre die Erzeugung der config dann:
Code:
docker run --rm influxdb:1.8 influxd config >  /volume1/docker/influxdb/config.yml

Und die Nutzung:
Code:
docker run -p 8086:8086 -v  /volume1/docker/influxdb/config.yml:/etc/influxdb/influxdb.conf:ro influxdb:1.8 -config /etc/influxdb/influxdb.conf
Auch hier gilt: das Data Volume muss noch ergänzt werden.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: ViperRt10

ViperRt10

Benutzer
Mitglied seit
16. Aug 2009
Beiträge
1.459
Punkte für Reaktionen
30
Punkte
74
@haydibe danke für deine ausführliche Antwort!

Ich muss unter 2.0 bleiben, dh ich habe mir das Image von 1.7.0 geladen.

mit dem CLI Befehlt:


docker run --rm influxdb:1.7 influxd print-config > /volume1/docker/influxdb/config.yml

bekomme ich einen Fehler "unknown command "print-config" " dh der fkt. für meine Version nicht?

wenn ich es mit 2.0 versuche, schreibt er
Unable to find image 'influxdb:2.0' locally


2.0: Pulling from library/influxdb


d960726af2be: Pulling fs layer

und legt eine yaml ins Verzeichnis ab. Die wird mir verm. nichts bringen.

schön langsam kapier ichs...

Generate the default configuration file:

$ docker run --rm influxdb:1.8 influxd config > influxdb.conf

das ist mein Befehlt für die 1.7, dh dort muss ich noch den Speicherort reinbringen

docker run --rm influxdb:1.7 influxd config > /volume1/docker/influxdb/influxdb.conf

Ergebnis:
Merging with configuration at: /etc/influxdb/influxdb.conf

Bildschirmfoto 2021-05-13 um 06.41.46.png

YIPPI.... Super, dh nun konfigurieren.

(sehe gerade das hast du in deinem Beitrag weiter unten beschrieben, hab natürlich step by step gemacht und gelesen...)
 
Zuletzt bearbeitet:

ViperRt10

Benutzer
Mitglied seit
16. Aug 2009
Beiträge
1.459
Punkte für Reaktionen
30
Punkte
74
meine nächste Hürde:
$ docker run -d -p 8086:8086 \
-v /volume1/docker/influxdb/data:/var/lib/influxdb2 \
-v /volume1/docker/influxdb/config.yml:/etc/influxdb2/config.yml \
-e DOCKER_INFLUXDB_INIT_MODE=setup \
-e DOCKER_INFLUXDB_INIT_USERNAME=my-user \
-e DOCKER_INFLUXDB_INIT_PASSWORD=my-password \
-e DOCKER_INFLUXDB_INIT_ORG=my-org \
-e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \
-e DOCKER_INFLUXDB_INIT_RETENTION=1w \
-e DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=my-super-secret-auth-token \
influxdb:2.0
betrifft die 2.0
wenn ich auf 1.7 bleibe sind die "Docker_Influxdb_...." anderes oder, das ist in der Beschreibung nicht deutlich
noch eine Verständnisfrage: ORG und Bucket, Org=irgend ein Name?, Bucket ist der Name meiner DB = iobroker ?

ich bin nun hier gelandet: https://docs.influxdata.com/influxdb/v1.8/administration/config/
https://docs.influxdata.com/influxd...thentication_and_authorization/#authorization
das ist was ich am Raspi machen muss, um mir admin, user, db anzulegen:
sudo service influxdb start
sudo influx
CREATE USER "admin" WITH PASSWORD '1234' WITH ALL PRIVILEGES
CREATE USER "user" WITH PASSWORD '1234'
CREATE DATABASE "iobroker"
GRANT ALL ON "iobroker" TO "user"
exit

sudo nano /etc/influxdb/influxdb.conf

[http]
enabled = true
bind-address = ":8086"
auth-enabled = true
log-enabled = true
write-tracing = false
pprof-enabled = false
https-enabled = false
https-certificate = "/etc/ssl/influxdb.pem"

sudo service influxdb restart

gut, wie bekomme ich das jetzt in die yaml?

wenn ich die BA verstehe, dann kann ich den container mal starten und in dessen Shell die Einstellungen vornehmen, würdet ihr das auch so machen?

Authenticate with credentials in the influx sheel

Start the influx shell and run the auth command. Enter your username and password when prompted.

> influx
Connected to http://localhost:8086 version 1.4.x
InfluxDB shell 1.8.x
> auth
username: todd
password:
>

habe gerade gesehen, dass er im Docker bereits einen Container angelegt hat
Bildschirmfoto 2021-05-13 um 07.27.31.png
 

Anhänge

  • influxdb.conf.txt
    3,4 KB · Aufrufe: 16
Zuletzt bearbeitet:


 

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