QNap Docker Mosquitto einrichten

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Murdock79
Beiträge: 46
Registriert: 26. Nov 2021 15:26
Answers: 0
Wohnort: Braunschweig

Re: QNap Docker Mosquitto einrichten

Beitrag von Murdock79 »

Hallo,
ich musste meine NAS neu installieren und dabei die Container Station neu machen.
openhab machte gar keine Probleme und ich habe alle Einstellung wie vor der Neuinstallation.
Aber diesen komische mosquitto kriege ich einfach nicht zum laufen.
Habe mich an meinen obigen Post gehalten und alles so wie beim letzten Mal gemacht.

Tja die Console zeigt:

Code: Alles auswählen

1648455570: mosquitto version 2.0.14 starting
1648455570: Config loaded from /mosquitto/config/mosquitto.conf.
1648455570: Starting in local only mode. Connections will only be possible from clients running on this machine.
1648455570: Create a configuration file which defines a listener to allow remote access.
1648455570: For more details see https://mosquitto.org/documentation/authentication-methods/
1648455570: Opening ipv4 listen socket on port 1883.
1648455570: Opening ipv6 listen socket on port 1883.
1648455570: Error: Address not available
1648455570: mosquitto version 2.0.14 running
1648456574: mosquitto version 2.0.14 terminating
Scheinbar wird die config gestartet und auf den Port 1883 gelauscht.
Der Fehler Error: Address not available verstehe ich einfach nicht.
mit Mqttfx ist der Mosquitto nicht erreichbar.
Hat jemand eine Ahnung was ich jetzt noch tun kann?? Habe schon x-Mal neu installiert, ohne Erfolg.
Muss ich vielleicht noch an meiner FritzBox oder in der Shell irgendwas machen?

Grüße
Murdock

------------------------------------------------------------------------------------------------
"O Jahrhundert, o Wissenschaften!
Es ist eine Lust zu leben, wenn auch nicht in der Stille.
Die Studien blühen, die Geister regen sich.
Barbarei nimm dir einen Strick und mache dich auf Verbannung gefasst."
(Ulrich von Hutten/1515)

Benutzeravatar
rfu
Beiträge: 24
Registriert: 8. Okt 2021 15:41
Answers: 0

Re: QNap Docker Mosquitto einrichten

Beitrag von rfu »

openHAB 3.3.0 im docker

Murdock79
Beiträge: 46
Registriert: 26. Nov 2021 15:26
Answers: 0
Wohnort: Braunschweig

Re: QNap Docker Mosquitto einrichten

Beitrag von Murdock79 »

So, ich habe es hinbekommen. Zwar noch ohne Authentifizierung aber der Mosquitto läuft.
Hier nochmal eine genaue Anleitung für alle die vielleicht Probleme haben.
1. Schritt: Anlegen von 3 Verzeichnissen im Containerverzeichnis: config, log und data
( Bei mir in Container/mosquitto/ --> "data" "log" "config")
2. Schritt: Erstellen einer mosquitto.conf Datei mit folgenden Inhalt:

Code: Alles auswählen

persistence true
persistence_location /mosquitto/data/
allow_anonymous true
user mosquitto
listener 1883
log_dest file /mosquitto/log/mosquitto.log
log_dest stdout
3. In der Container Station
- Erstellen -> Suchfenster -> mosquitto-eclipse -> Docker Hub -> Install eclipse-mosquitto
- ohne Einstellungen erstmal einfach installieren, dann unter Übersicht wieder löschen.
- Erstellen -> Suchfenster -> mosquitto-eclipse -> Lokal -> Eclipse-mosquitto installieren
4. Einstellungen bei der Installation:
- erstes Fenster optional Name ändern, sonst alles lassen:
Befehl: /usr/sbin/mosquitto -c /mosquitto/config/mosquitto.conf
Eingangspunkt: /docker-entrypoint.sh

- unter erweitert:
- -> Netzwerk: Hostname vergeben
-> MAC-Adresse (gekreuzte Pfeile)
-> Netzwerkmodus Bridge -> statische IP vergeben
- unter Freigabeordner im mittleren Teil Freigabeordner angeben:
1. Feld 2. Feld
Container/mosquitto/config /mosquitto/config
Container/mosquitto/data /mosquitto/data
Container/mosquitto/log /mosquitto/log
Schließlich das Ganze dann erstellen.
Jetzt sollte es gehen.

Ich hoffe, das hat euch geholfen.

------------------------------------------------------------------------------------------------
"O Jahrhundert, o Wissenschaften!
Es ist eine Lust zu leben, wenn auch nicht in der Stille.
Die Studien blühen, die Geister regen sich.
Barbarei nimm dir einen Strick und mache dich auf Verbannung gefasst."
(Ulrich von Hutten/1515)

Murdock79
Beiträge: 46
Registriert: 26. Nov 2021 15:26
Answers: 0
Wohnort: Braunschweig

Re: QNap Docker Mosquitto einrichten

Beitrag von Murdock79 »

Eine Sache, die noch nicht so ganz stimmt:
Ich habe in der mosquitto.conf die Zeile

Code: Alles auswählen

pid_file /var/run/mosquitto.pid
weggelassen.
Zwar funktioniert das mqtt, aber ich erhalte die Meldung

Code: Alles auswählen

Client <unknown> disconnected due to malformed packet.
Die pid _file brauche ich scheinbar, finde diese aber nicht unter /var/run/
Jemand eine Idee?

------------------------------------------------------------------------------------------------
"O Jahrhundert, o Wissenschaften!
Es ist eine Lust zu leben, wenn auch nicht in der Stille.
Die Studien blühen, die Geister regen sich.
Barbarei nimm dir einen Strick und mache dich auf Verbannung gefasst."
(Ulrich von Hutten/1515)

Hulli
Beiträge: 4
Registriert: 8. Mär 2020 15:52
Answers: 0

Re: QNap Docker Mosquitto einrichten

Beitrag von Hulli »

Murdock79 hat geschrieben: 28. Mär 2022 14:02 Eine Sache, die noch nicht so ganz stimmt:
Ich habe in der mosquitto.conf die Zeile

Code: Alles auswählen

pid_file /var/run/mosquitto.pid
weggelassen.
Zwar funktioniert das mqtt, aber ich erhalte die Meldung

Code: Alles auswählen

Client <unknown> disconnected due to malformed packet.
Die pid _file brauche ich scheinbar, finde diese aber nicht unter /var/run/
Jemand eine Idee?
Hi Zusammen,

ich habe das gleiche Problem.
Leider kann er bei mir den Pid File erst garnicht erstellen.
Meckert immer.
Liegt wahrscheinlich daran, daß er im Dokker den Pfad var/run garnicht hat. Zumindest habe ich ihn nicht gefunden. Und im QNAP darf er wohl nicht auf var/run zugreifen, da das außerhalb des Dokkers ist.

Ich bekomme das irgendwie nicht zum laufen.
Weiß da jemand mehr???

lg Hulli

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: QNap Docker Mosquitto einrichten

Beitrag von udo1toni »

Ich denke nicht, dass der Parameter überhaupt gesetzt werden muss. Ich habe ebenfalls einen Docker Container mit mosquitto für Testzwecke aufgesetzt. Die Konfiguration sieht so aus:

Code: Alles auswählen

listener 1883
allow_anonymous true

persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log

## Authentication ##
# allow_anonymous false
# password_file /mosquitto/config/password.txt
Was die Passworte betrifft, so kann man hier schön sehen, dass man zum einen oben allow_anonymous auf false setzen muss (alternativ oben auskommentieren und unten das Kommentarzeichen # entfernen), zum zweiten muss in der letzten Zeile die Raute # entfernt werden.
Zum Schluss braucht man noch eine Password-Datei, hier im config-Ordner unter dem Namen password.txt. Der Inhalt dieser Datei besteht meines Wissens aus Wertepaaren, jeweils Username und zugehöriges Passwort. Dabei wird das Passwort aber verschlüsselt gespeichert. Am einfachsten nutzt man das Tool mosquitto_passwd um ein Passwort anzulegen. Das Tool ist auch im Container vorhanden, in den man sich über Docker einloggen muss.

Die beschriebene Fehlermeldung sieht für mich danach aus, als versuche ein Client, sich mit dem Broker zu verbinden und das geht schief. das PID-File dient bei einer gewöhnlichen Installation dazu, zu prüfen, ob ein Programm läuft. Es ist oftmals wesentlich einfacher zu prüfen, ob eine Datei /var/run/mosquitto/mosquitto.pid vorhanden ist oder nicht. Der Inhalt der Datei ist dann tatsächlich die pid des Hauptprozesses. weder die Datei noch der Mechanismus dafür ist für die Funktion von mosquitto in irgendeiner Weise relevant (kann aber sein, dass z.B. Systemd die Datei auswertet um z.B. dern Prozess neu zu starten. Unter Docker funktioniert das aber komplett anders, also unerheblich im aktuellen Kontext :)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Murdock79
Beiträge: 46
Registriert: 26. Nov 2021 15:26
Answers: 0
Wohnort: Braunschweig

Re: QNap Docker Mosquitto einrichten

Beitrag von Murdock79 »

Hast du die Rechte im Docker mosquitto Ordner gesetzt.
Hatte aber auch Schwierigkeiten.
Ich weiß auch nicht direkt, wieso. Aber irgendwann hat es dann funktioniert.
hier meine kleine Anleitung:
Habe mich am Video https://www.youtube.com/watch?v=kQ159NLCJts orientiert,
wobei ich allerdings eclipse-mosquitto verwendet habe.
Ich habe den mount Pfad der 3 Dateien so gemacht:
/Container/config
/Container/data
/Container/log
die mosquitto.conf mit dem Qnap Editor erstellt

Code: Alles auswählen

pid_file /var/run/mosquitto.pid
persistence true
persistence_location /mqtt/data/
allow_anonymous true
user mosquitto
port 1883
log_dest file /mqtt/log/mosquitto.log
log_dest stdout
und als Netzwerk hier allerdings noch Bridge verwendet.
und schauen, dass du in deiner FB o.ä. Auch den 1883 Port gesetzt hast.
wenn es nicht klappt, nochmal melden, dann gleichen wir deine Einstellungen mit meinen ab.
Grüße

------------------------------------------------------------------------------------------------
"O Jahrhundert, o Wissenschaften!
Es ist eine Lust zu leben, wenn auch nicht in der Stille.
Die Studien blühen, die Geister regen sich.
Barbarei nimm dir einen Strick und mache dich auf Verbannung gefasst."
(Ulrich von Hutten/1515)

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: QNap Docker Mosquitto einrichten

Beitrag von udo1toni »

Bitte nicht einfach in der FRITZ!Box irgendwelche Ports setzen!

Es gibt genau gar keinen Grund, in der FRITZ!Box Portfreigaben einzurichten, solange man nicht sehr spezielle Anforderungen hat.
Und wenn dies der Fall sein sollte, wäre es besser, man weiß ganz genau, was man tut.

Für Kommunikation innerhalb des LAN benötigt man niemals eine Portfreigabe in der FRITZ!Box.
Kommunikation von Außen ins Netz sollte man nur mit äußerster Vorsicht nutzen, möglichst gar nicht, aber wenn, dann entweder über einen SSH Tunnel oder alternativ über ein VPN.
Beide Varianten sind dann unbedingt mit starker Verschlüsselung zu sichern, im Fall von SSH z.B. Anmeldung nur mit Schlüsseldatei, keinesfalls mit Passwort.
Im Fall von VPN bei der FRITZ!Box am besten das integrierte IPSec verwenden, das ist sehr komfortabel einzurichten (jedenfalls gegenüber 95% der anderen IPSec Lösungen) - oder auf Wireguard ausweichen - allerdings müsste man dazu einen Wireguard Server hinter der FRITZ!Box einrichten oder auf die Laborfirmware ausweichen, Wireguard kommt erst mit einem der nächsten Updates für die FRITZ!Box als reguläre Funktion.
Es gibt für alle gebräuchlichen Clients Wireguard Clients, ob nun Windows, Linux, Android, iOS... und das ist tatsächlich kinderleicht einzurichten. Für IPSec gibt es ebenfalls viele Clients, die allerdings nicht alle die Konfiguration von der FRITZ!Box lesen können - aber es gibt meines Wissens auch einen extra IPSec Client von AVM, der das kann (und auch den zumindest für die populären Systeme).
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Murdock79
Beiträge: 46
Registriert: 26. Nov 2021 15:26
Answers: 0
Wohnort: Braunschweig

Re: QNap Docker Mosquitto einrichten

Beitrag von Murdock79 »

Das stimmt wirklich. schwierig wird es aber leider, wenn man Deutsche Glasfaser hat und nur eine ipv6 hat und von extern ipv4 zugreifen muss und das externe Netzwerk kein vpn zulässt .
Aber abgesehen davon würde man ja den 1883 nicht extern sondern nur intern öffnen. Aber du sagst, dass man das gar nicht braucht. Das muss ich gleich mal testen.

------------------------------------------------------------------------------------------------
"O Jahrhundert, o Wissenschaften!
Es ist eine Lust zu leben, wenn auch nicht in der Stille.
Die Studien blühen, die Geister regen sich.
Barbarei nimm dir einen Strick und mache dich auf Verbannung gefasst."
(Ulrich von Hutten/1515)

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: QNap Docker Mosquitto einrichten

Beitrag von udo1toni »

Du kannst intern nichts öffnen, weil intern nichts geblockt ist. Das ginge auch gar nicht, da der interne Datenverkehr allenfalls elektrisch über die FRITZ!Box geht (von LAN Port zu LAN Port oder auch von LAN zu WLAN oder umgekehrt, aber eben nicht geroutet)
Allenfalls könnte eine Firewall auf einem der beteiligten Rechner dicht sein, was aber im vorliegenden Fall auch auszuschließen ist - die QNAP hat gewöhnlich keine Firewall, in der man erst manuell Ports freischalten muss.

Wenn man einen reinen IPv6 Zugang hat, braucht man einen DynDNS Eintrag, der auch IPv6 ausliefert - und natürlich einen 6to4 Tunnel :) Da werden sich die Entwickler noch etwas die Köpfe zerbrechen müssen, wie das kundenfreundlicher gestaltet werden kann.
Eigentlich ein Armutszeugnis, wo schon seit 1995 dran rum entwickelt wird, dass man noch nicht mal eine simple Verbindung zwischen zwei Stacks hin bekommt. Aber der Adressraumn reicht, um jedem Atom im bekannten Universum keine Ahnung wie viele Adressen zuzuweisen. Toll. ;)

Ansonsten kann man natürlich für die eigenen Dienste auch alles per IPv6 bereitstellen oder selbst einen 4to6 Endpoint einrichten - nicht, dass ich das schon getan hätte :) ich habe noch einen popeligen VDSL Dualstack Anschluss der Telekom, da brauche ich sowas nicht...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten