1. Ziehen Sie das Bild
2. Ausführen des Images
3. Rufen Sie die emq-Serviceseite auf Geben Sie Erstkonto: admin, Passwort: public 4. emq konfigurieren (für V3.1.0)Konfigurieren Sie die Berechtigungen für emq-Benutzer. emq unterstützt auch die Authentifizierung mehrerer Datenbanken, darunter mongo, redis, pgsql usw. Wenn Sie interessiert sind, können Sie es selbst studieren. # Geben Sie den Container ein. Sie können /bin/bash nicht verwenden, um docker exec -it emq /bin/sh einzugeben. 1. Deaktivieren Sie zunächst die anonyme Authentifizierung (sie ist standardmäßig aktiviert und jeder kann sich anmelden). # Bearbeiten Sie die Konfigurationsdatei vi /opt/emqttd/etc/emq.conf # Ändern Sie allowAnonymous True -> false allow_anonymous = false 2. Erstellen Sie eine MySQL-Tabelle mit Benutzern und Berechtigungen. Sie können einen MySQL-Container ziehen oder ihn direkt in MySQL in Ihrem Ubuntu erstellen DATENBANK ERSTELLEN emq charset utf8; verwende eqm; Tabelle erstellen mqtt_user ( id int(11) unsigned NOT NULL AUTO_INCREMENT, Benutzername varchar(100) DEFAULT NULL, Passwort varchar(100) DEFAULT NULL, salt varchar(20) DEFAULT NULL, is_superuser tinyint(1) STANDARD 0, Erstellungsdatum/-zeit DEFAULT NULL, Primärschlüssel (ID), EINZIGARTIGER SCHLÜSSEL mqtt_username (Benutzername) )ENGINE=MyISAM STANDARD-CHARSET=utf8; Tabelle erstellen mqtt_acl ( id int(11) unsigned NOT NULL AUTO_INCREMENT, allow int(1) DEFAULT NULL COMMENT '0: verweigern, 1: erlauben', ipaddr varchar(60) DEFAULT NULL KOMMENTAR 'IpAddress', Benutzername varchar (100) DEFAULT NULL COMMENT 'Benutzername', clientid varchar(100) DEFAULT NULL KOMMENTAR 'ClientId', Zugriff int(2) NOT NULL KOMMENTAR '1: abonnieren, 2: veröffentlichen, 3: pubsub', topic varchar(100) NOT NULL DEFAULT '' COMMENT 'Themenfilter', PRIMÄRSCHLÜSSEL (id) )ENGINE=InnoDB STANDARD-CHARSET=utf8; 3. ACL-Regeln einfügen - ACL-Regeln Tipps: !!! Stellen Sie es nicht direkt gemäß dem folgenden Beispiel ein. Überprüfen Sie zuerst die ACL-Regeln und konfigurieren Sie es dann entsprechend Ihrer eigenen Situation. INSERT INTO `mqtt_acl` (`id`, `allow`, `ipaddr`, `username`, `clientid`, `access`, `topic`) WERTE (1,1,NULL,'$alle',NULL,2,'#'), (2,0,NULL,'$alle',NULL,1,'$SYS/#'), (3,0,NULL,'$alle',NULL,1,'Gleichung #'), (5,1,'127.0.0.1',NULL,NULL,2,'$SYS/#'), (6,1,'127.0.0.1',NULL,NULL,2,'#'), (7,1,NULL,'Dashboard',NULL,1,'$SYS/#'); 4. Geben Sie den Benutzer ein. Ab sofort müssen alle abonnierenden und veröffentlichenden Clients die Benutzerüberprüfung bestehen (bitte konvertieren Sie den SHA256-Wert selbst). # Sie können einen Superadministrator konfigurieren (der Superadministrator hat das Recht, alle Themen zu abonnieren und Push-Zugriffe darauf zu gewähren, unabhängig von den ACL-Regeln). in mqtt_user („Benutzername“, „Passwort“) Werte einfügen („admin“, „03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4“); Aktualisieren Sie mqtt_user und setzen Sie is_superuser=1, wobei id = Superadministrator-ID; ps: Beachten Sie, dass auth.mysql.password_hash (Standard ist sha256) Wenn es sha256 ist, müssen Sie den verschlüsselten Wert beim Hinzufügen eines neuen Benutzers manuell übergeben. Wenn es klar ist, muss es nicht verschlüsselt werden und wird im Klartext gespeichert. 5. Ändern Sie die MySQL-Konfigurationsdatei von emq vi /opt/emqttd/etc/plugins/emq_auth_mysql.conf auth.mysql.server = IhreMySQL-IP:3306 auth.mysql.Benutzername = root auth.mysql.password = xxxxxxxx auth.mysql.database = emq 6. Starten Sie emq neu /opt/emqttd/bin/emqx stoppen /opt/emqttd/bin/emqx starten /opt/emqttd/bin/emqttd_ctl plugins load emq_auth_mysql #Öffnen Sie das MySQL-Authentifizierungs-Plugin
Beschreibung der Felder in der Regeltabelle:
%u: Benutzername %c: Kunden-ID Beispiel -- Nicht alle Benutzer können Systemthemen abonnieren. INSERT INTO mqtt_acl (allow, ipaddr, username, clientid, access, topic) VALUES (0, NULL, '$all', NULL, 1, '$SYS/#'); -- Clients unter 10.59.1.100 erlauben, Systemthemen zu abonnieren. INSERT INTO mqtt_acl (allow, ipaddr, username, clientid, access, topic) VALUES (1, '10.59.1.100', NULL, NULL, 1, '$SYS/#'); -- Clients das Abonnieren des Themas /smarthome/+/temperature verbieten INSERT INTO mqtt_acl (allow, ipaddr, username, clientid, access, topic) VALUES (0, NULL, NULL, NULL, 1, '/smarthome/+/temperature'); -- Erlauben Sie dem Client, das Thema /smarthome/${clientid}/temperature zu abonnieren, das seine eigene Client-ID enthält. INSERT INTO mqtt_acl (allow, ipaddr, username, clientid, access, topic) VALUES (1, NULL, NULL, NULL, 1, '/smarthome/%c/temperature'); Dies ist das Ende dieses Artikels über die Verwendung von Docker zum Erstellen eines MQTT-Servers. Weitere Informationen zum Docker MQTT-Server finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
>>: Probleme mit Sperren in MySQL
Vorwort Hier sind die Schritte zur Installation u...
<br />Der Inhalt wurde aus dem Internet repr...
In diesem Artikelbeispiel wird der spezifische Co...
Vorwort Der SQL-Modus wirkt sich auf die von MySQ...
Lassen Sie uns zunächst einige gängige Anwendungs...
Inhaltsverzeichnis Partitionierungsmechanismus SE...
Vorwort In vielen MySQL-Test-Szenarien müssen ein...
Es ist peinlich zu sagen, dass ich lange bei Baidu...
1. Lassen Sie uns zunächst das relevante Wissen z...
Erstens: 4 Möglichkeiten, CSS einzuführen Es gibt...
Der Zweck der Einrichtung eines MySQL-Abfragecach...
Awk ist eine Anwendung zur Verarbeitung von Textd...
Web-Frontend 1 Studierendenausweis Name Geschlech...
Inhaltsverzeichnis 1. Oberflächliche Kopie 1. Obj...
1. Laden Sie zunächst die neueste Version von MyS...