

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# MQTT 5-Broker (EMAX)
<a name="mqtt-broker-emqx-component"></a>

Die EMQX MQTT-Broker-Komponente (`aws.greengrass.clientdevices.mqtt.EMQX`) verarbeitet MQTT-Nachrichten zwischen Client-Geräten und einem Greengrass-Core-Gerät. Diese Komponente stellt eine modifizierte Version des EMQX MQTT 5.0-Brokers bereit. [https://www.emqx.com/en/mqtt/mqtt5](https://www.emqx.com/en/mqtt/mqtt5) Stellen Sie diesen MQTT-Broker bereit, um MQTT 5-Funktionen bei der Kommunikation zwischen Client-Geräten und einem Kerngerät zu verwenden. Weitere Informationen zur Auswahl eines MQTT-Brokers finden Sie unter. [Wählen Sie einen MQTT-Broker](choose-local-mqtt-broker.md)

Dieser Broker implementiert das MQTT 5.0-Protokoll. Es umfasst Unterstützung für Ablaufintervalle von Sitzungen und Nachrichten, Benutzereigenschaften, gemeinsame Abonnements, Themenaliase und mehr. MQTT 5 ist abwärtskompatibel mit MQTT 3.1.1. Wenn Sie also den [ Moquette MQTT 3.1.1-Broker ausführen](mqtt-broker-moquette-component.md), können Sie ihn durch den EMQX MQTT 5-Broker ersetzen, und die Client-Geräte können sich weiterhin wie gewohnt verbinden und arbeiten.

<a name="note-local-mqtt-broker-mqtt-5-features"></a>

**Anmerkung**  <a name="client-device-component-context"></a>
Client-Geräte sind lokale IoT-Geräte, die eine Verbindung zu einem Greengrass-Core-Gerät herstellen, um MQTT-Nachrichten und Daten zur Verarbeitung zu senden. Weitere Informationen finden Sie unter [Interagieren Sie mit lokalen IoT-Geräten](interact-with-local-iot-devices.md).

**Topics**
+ [Versionen](#mqtt-broker-emqx-component-versions)
+ [Typ](#mqtt-broker-emqx-component-type)
+ [Betriebssystem](#mqtt-broker-emqx-component-os-support)
+ [Voraussetzungen](#mqtt-broker-emqx-component-requirements)
+ [Abhängigkeiten](#mqtt-broker-emqx-component-dependencies)
+ [Konfiguration](#mqtt-broker-emqx-component-configuration)
+ [Lokale Protokolldatei](#mqtt-broker-emqx-component-log-file)
+ [Lizenzen](#mqtt-broker-emqx-component-licenses)
+ [Änderungsprotokoll](#mqtt-broker-emqx-component-changelog)

## Versionen
<a name="mqtt-broker-emqx-component-versions"></a>

Diese Komponente hat die folgenden Versionen:
+ 2.0.x
+ 1.2.x
+ 1.1.x
+ 1.0.x

## Typ
<a name="mqtt-broker-emqx-component-type"></a>

<a name="public-component-type-generic"></a>Diese <a name="public-component-type-generic-phrase"></a> Komponente ist eine generische Komponente (`aws.greengrass.generic`). Der [ Greengrass-Kern ](greengrass-nucleus-component.md) führt die Lifecycle-Skripte der Komponente aus. 

<a name="public-component-type-more-information"></a>Weitere Informationen finden Sie unter [Komponententypen](develop-greengrass-components.md#component-types).

## Betriebssystem
<a name="mqtt-broker-emqx-component-os-support"></a>

Diese Komponente kann auf Kerngeräten installiert werden, auf denen die folgenden Betriebssysteme ausgeführt werden:
+ Linux
+ Windows

## Voraussetzungen
<a name="mqtt-broker-emqx-component-requirements"></a>

Für diese Komponente gelten die folgenden Anforderungen:
+ Das Kerngerät muss in der Lage sein, Verbindungen auf dem Port anzunehmen, an dem der MQTT-Broker betrieben wird. Diese Komponente führt den MQTT-Broker standardmäßig auf Port 8883 aus. Sie können bei der Konfiguration dieser Komponente einen anderen Port angeben.

  <a name="mqtt-broker-configuration-mqtt-bridge-requirement"></a>Wenn Sie einen anderen Port angeben und die [ MQTT-Bridge-Komponente verwenden, ](mqtt-bridge-component.md) um MQTT-Nachrichten an andere Broker weiterzuleiten, müssen Sie MQTT Bridge v2.1.0 oder höher verwenden. Konfigurieren Sie ihn so, dass er den Port verwendet, an dem der MQTT-Broker arbeitet.

  <a name="mqtt-broker-configuration-ip-detector-requirement"></a>Wenn Sie einen anderen Port angeben und die [ IP-Detector-Komponente ](ip-detector-component.md) zur Verwaltung von MQTT-Broker-Endpunkten verwenden, müssen Sie IP Detector v2.1.0 oder höher verwenden. Konfigurieren Sie ihn so, dass er den Port meldet, an dem der MQTT-Broker arbeitet.
+ Auf Linux-Kerngeräten wurde Docker auf dem Kerngerät installiert und konfiguriert:
  + <a name="docker-engine-requirement"></a>[Docker Engine ](https://docs.docker.com/engine/) 1.9.1 oder höher ist auf dem Greengrass-Core-Gerät installiert. Versionen bis einschließlich 29.6.0, wie 20.10, 24.0, 25.0 und 27.5, funktionieren mit der Core-Software. AWS IoT Greengrass Sie müssen Docker direkt auf dem Kerngerät installieren, bevor Sie Komponenten bereitstellen, auf denen Docker-Container ausgeführt werden.
  + <a name="docker-daemon-requirement"></a>Der Docker-Daemon wurde gestartet und läuft auf dem Kerngerät, bevor Sie diese Komponente bereitstellen. 
  + Der Systembenutzer, der diese Komponente ausführt, muss über Root- oder Administratorrechte verfügen. Alternativ können Sie diese Komponente als Systembenutzer in der `docker` Gruppe ausführen und die `requiresPrivileges` Option dieser Komponente so konfigurieren, dass der EQMX-MQTT-Broker ohne Berechtigungen ausgeführt wird. `false`
+ Die Ausführung der EMQX MQTT-Broker-Komponente wird in einer VPC unterstützt.
+ Die EMQX MQTT-Broker-Komponente wird auf der Plattform nicht unterstützt. `armv7`

## Abhängigkeiten
<a name="mqtt-broker-emqx-component-dependencies"></a>

Wenn Sie eine Komponente bereitstellen, werden AWS IoT Greengrass auch kompatible Versionen ihrer Abhängigkeiten bereitgestellt. Das bedeutet, dass Sie die Anforderungen für die Komponente und alle ihre Abhängigkeiten erfüllen müssen, um die Komponente erfolgreich bereitzustellen. In diesem Abschnitt werden die Abhängigkeiten für die [ veröffentlichten Versionen ](#mqtt-broker-emqx-component-changelog) dieser Komponente sowie die semantischen Versionseinschränkungen aufgeführt, die die Komponentenversionen für jede Abhängigkeit definieren. Sie können die Abhängigkeiten für jede Version der Komponente auch in der [AWS IoT Greengrass Konsole ](https://console.aws.amazon.com/greengrass) anzeigen. Suchen Sie auf der Seite mit den Komponentendetails nach der ** Liste der ** Abhängigkeiten.

------
#### [ 2.0.2 – 2.0.3 ]

In der folgenden Tabelle sind die Abhängigkeiten für die Versionen 2.0.2 und 2.0.3 dieser Komponente aufgeführt.


| -Abhängigkeit | Kompatible Versionen | Typ der Abhängigkeit | 
| --- | --- | --- | 
| [Authentifizierung auf dem Client-Gerät ](client-device-auth-component.md) | > =2,2,0 <2,6,0 | Weich | 

------
#### [ 2.0.1 ]

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.1 dieser Komponente aufgeführt.


| -Abhängigkeit | Kompatible Versionen | Typ der Abhängigkeit | 
| --- | --- | --- | 
| [Authentifizierung auf dem Client-Gerät ](client-device-auth-component.md) | > =2,2,0 <2,6,0 | Hart | 

------
#### [ 2.0.0 ]

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.0 dieser Komponente aufgeführt.


| -Abhängigkeit | Kompatible Versionen | Typ der Abhängigkeit | 
| --- | --- | --- | 
| [Authentifizierung auf dem Client-Gerät ](client-device-auth-component.md) | > =2,2,0 <2,5,0 | Hart | 

------
#### [ 1.2.2 – 1.2.3 ]

In der folgenden Tabelle sind die Abhängigkeiten für die Versionen 1.2.2 bis 1.2.3 dieser Komponente aufgeführt.


| -Abhängigkeit | Kompatible Versionen | Typ der Abhängigkeit | 
| --- | --- | --- | 
| [Authentifizierung auf dem Client-Gerät ](client-device-auth-component.md) | > =2,2,0 <2,5,0 | Hart | 

------
#### [ 1.2.0 and 1.2.1 ]

In der folgenden Tabelle sind die Abhängigkeiten für die Versionen 1.2.0 und 1.2.1 dieser Komponente aufgeführt.


| -Abhängigkeit | Kompatible Versionen | Typ der Abhängigkeit | 
| --- | --- | --- | 
| [Authentifizierung auf dem Client-Gerät ](client-device-auth-component.md) | > =2,2,0 <2,4,0 | Hart | 

------
#### [ 1.0.0 and 1.1.0 ]

In der folgenden Tabelle sind die Abhängigkeiten für die Versionen 1.0.0 und 1.1.0 dieser Komponente aufgeführt.


| -Abhängigkeit | Kompatible Versionen | Typ der Abhängigkeit | 
| --- | --- | --- | 
| [Authentifizierung auf dem Client-Gerät ](client-device-auth-component.md) | > =2,2,0 <2,3,0 | Hart | 

------

Weitere Informationen zu Komponentenabhängigkeiten finden Sie in der [ Komponentenrezeptreferenz. ](component-recipe-reference.md#recipe-reference-component-dependencies)

## Konfiguration
<a name="mqtt-broker-emqx-component-configuration"></a>

------
#### [ 2.0.0 - 2.0.3 ]

Diese Komponente stellt die folgenden Konfigurationsparameter bereit, die Sie bei der Bereitstellung der Komponente anpassen können.

**Wichtig**  
Wenn Sie Version 2 der MQTT 5-Broker-Komponente (EMQX) verwenden, müssen Sie Ihre Konfigurationsdatei aktualisieren. Die Konfigurationsdateien der Version 1 funktionieren nicht mit Version 2.

emqxConfig  
 (Optional) Die zu verwendende [ EMQX MQTT-Brokerkonfiguration. ](https://www.emqx.io/docs/en/v5.1/configuration/configuration.html) Sie können die EMQX-Konfigurationsoptionen in dieser Komponente festlegen.  
Wenn Sie den EMQX-Broker verwenden, verwendet Greengrass eine Standardkonfiguration. Diese Konfiguration wird verwendet, sofern Sie sie nicht mithilfe dieses Felds ändern.  
Wenn Sie die folgenden Konfigurationseinstellungen ändern, wird die EMQX-Broker-Komponente neu gestartet. Andere Konfigurationsänderungen gelten, ohne dass die Komponente neu gestartet wird.  
+ `emqxConfig/cluster`
+ `emqxConfig/node`
+ `emqxConfig/rpc`
`aws.greengrass.clientdevices.mqtt.EMQX`ermöglicht es Ihnen, sicherheitsrelevante Optionen zu konfigurieren. Dazu gehören TLS-Einstellungen, Authentifizierungs- und Autorisierungsanbieter. Wir empfehlen die Standardkonfiguration, die die gegenseitige TLS-Authentifizierung und den Greengrass-Client-Geräteauthentifizierungsanbieter verwendet.

**Example Beispiel: Standardkonfiguration**  
Das folgende Beispiel zeigt die für den MQTT 5 (EMQX) -Broker festgelegten Standardeinstellungen. Sie können diese Einstellungen mithilfe der Konfigurationseinstellung überschreiben. `emqxConfig`  

```
{
  "authorization": {
    "no_match": "deny",
    "sources": []
  },
  "node": {
    "cookie": "{{<placeholder>}}"
  }, 
  "listeners": {
     "ssl": {
       "default": {
         "ssl_options": {
           "keyfile": "{work:path}\\data\\key.pem",
           "certfile": "{work:path}\\data\\cert.pem",
           "cacertfile": null,
           "verify": "verify_peer",
           "versions": ["tlsv1.3", "tlsv1.2"],
           "fail_if_no_peer_cert": true
         }
       }
     },
     "tcp": {
       "default": {
         "enabled": false
       }
     },
     "ws": {
       "default": {
         "enabled": false
       }
     },
     "wss": {
       "default": {
         "enabled": false
       }
     }
  },
  "plugins": {
    "states": [{"name_vsn": "gg-1.0.0", "enable": true}],
    "install_dir": "plugins"
  }
}
```

AuthMode  
(Optional) Legt den Autorisierungsanbieter für den Broker fest. Dabei kann es sich um einen der folgenden Werte handeln:  
+ `enabled`— (Standard) Verwenden Sie den Greengrass-Authentifizierungs- und Autorisierungsanbieter.
+ `bypass_on_failure`— Verwenden Sie den Greengrass-Authentifizierungsanbieter und dann alle verbleibenden Authentifizierungsanbieter in der EMQX-Anbieterkette, falls Greengrass entweder die Authentifizierung oder Autorisierung verweigert.
+ `bypass`— Der Greengrass-Anbieter ist deaktiviert. Die Authentifizierung und Autorisierung erfolgt durch die EMQX-Anbieterkette.

`requiresPrivilege`  
(Optional) Auf Linux-Core-Geräten können Sie angeben, dass der EMQX MQTT-Broker ohne Root- oder Administratorrechte ausgeführt werden soll. Wenn Sie diese Option auf setzen`false`, muss der Systembenutzer, der diese Komponente ausführt, Mitglied der Gruppe sein. `docker`  
Standard: `true`

`startupTimeoutSeconds`  
(Optional) Die maximale Zeit in Sekunden, die der EMQX MQTT-Broker zum Starten benötigt. Der Status der Komponente ändert sich auf, `BROKEN` wenn dieser Timeout überschritten wird.  
Standard: `90`

`ipcTimeoutSeconds`  
(Optional) Die maximale Zeit in Sekunden, die die Komponente darauf wartet, dass der Greengrass-Kern auf IPC-Anfragen (Interprocess Communication) reagiert. Erhöhen Sie diesen Wert, wenn diese Komponente Timeout-Fehler meldet, wenn sie überprüft, ob ein Client-Gerät autorisiert ist.  
Standard: `5`

`crtLogLevel`  
(Optional) Die Protokollebene für die AWS Common Runtime (CRT) -Bibliothek.  
Standardmäßig ist das EMQX MQTT-Broker-Log-Level (in). `log.level` `emqx`

`restartIdentifier`  
(Optional) Konfigurieren Sie diese Option, um den EMQX MQTT-Broker neu zu starten. Wenn sich dieser Konfigurationswert ändert, startet diese Komponente den MQTT-Broker neu. Sie können diese Option verwenden, um Client-Geräte zum Trennen der Verbindung zu zwingen.

`dockerOptions`  
(Optional) Konfigurieren Sie diese Option nur auf Linux-Betriebssystemen, um der Docker-Befehlszeile Parameter hinzuzufügen. Um beispielsweise zusätzliche Ports zuzuordnen, verwenden Sie den `-p` Docker-Parameter:  

```
"-p 1883:1883"
```

**Example Beispiel: Aktualisierung einer v1.x-Konfigurationsdatei auf v2.x**  
Das folgende Beispiel zeigt die Änderungen, die erforderlich sind, um eine v1.x-Konfigurationsdatei auf Version 2.x zu aktualisieren.  
Die Konfigurationsdatei der Version 1.x:  

```
{
    "emqx": {
        "listener.ssl.external": "443",
        "listener.ssl.external.max_connections": "1024000",
        "listener.ssl.external.max_conn_rate": "500",
        "listener.ssl.external.rate_limit": "50KB,5s",
        "listener.ssl.external.handshake_timeout": "15s",
        "log.level": "warning"
    },
    "mergeConfigurationFiles": {
        "etc/plugins/aws_greengrass_emqx_auth.conf": "auth_mode=enabled\n use_greengrass_managed_certificates=true\n"
    }
}
```
Die entsprechende Konfigurationsdatei für v2:  

```
{
    "emqxConfig": {
        "listeners": {
            "ssl": {
                "default": {
                   "bind": "8883",
                   "max_connections": "1024000",
                   "max_conn_rate": "500",
                   "ssl_options": {
                        "handshake_timeout": "15s"
                   }
                }
            }
        },
        "log": {
            "console": {
              "enable": true,
              "level": "warning"
            }
        }
    },
    "authMode": "enabled"
}
```
Es gibt kein Äquivalent zum `listener.ssl.external.rate_limit` Konfigurationseintrag. Die `use_greengrass_managed_certificates` Konfigurationsoption wurde entfernt.

**Example Beispiel: Legen Sie einen neuen Port für den Broker fest**  
Im folgenden Beispiel wird der Port, an dem der MQTT-Broker arbeitet, vom Standardport 8883 auf den Port 1234 geändert. Wenn Sie Linux verwenden, schließen Sie das `dockerOptions` Feld ein.  

```
{
  "emqxConfig": {
    "listeners": {
      "ssl": {
        "default": {
          "bind": 1234
        }
      }
    }
  },
  "dockerOptions": "-p 1234:1234"
}
```

**Example Beispiel: Passen Sie das Log-Level des MQTT-Brokers an**  
Im folgenden Beispiel wird das Log-Level des MQTT-Brokers auf geändert. `debug` Sie können aus den folgenden Log-Leveln wählen:  
+ `debug`
+ `info`
+ `notice`
+ `warning`
+ `error`
+ `critical`
+ `alert`
+ `emergency`
Die Standard-Protokollebene ist`warning`.  

```
{
  "emqxConfig": {
    "log": {
      "console": {
         "level": "debug"
      }
    }
  }
}
```

**Example Beispiel: Aktivieren Sie das EMQX-Dashboard**  
Das folgende Beispiel aktiviert das EMQX-Dashboard, sodass Sie Ihren Broker überwachen und verwalten können. Wenn Sie Linux verwenden, schließen Sie das `dockerOptions` Feld ein.   

```
{
  "emqxConfig": {
    "dashboard": {
      "listeners": {
        "http": {
          "bind": 18083
        }
      }
    }
  },
  "dockerOptions": "-p 18083:18083"
}
```

------
#### [ 1.0.0 - 1.2.2 ]

Diese Komponente bietet die folgenden Konfigurationsparameter, die Sie bei der Bereitstellung der Komponente anpassen können.

`emqx`  
(Optional) Die zu verwendende [ EMQX ](https://www.emqx.io/docs/en/v4.4/configuration/configuration.html) MQTT-Brokerkonfiguration. In dieser Komponente können Sie eine Teilmenge der EMQX-Konfigurationsoptionen konfigurieren.  
Dieses Objekt enthält die folgenden Informationen:    
`listener.ssl.external`  
(Optional) Der Port, an dem der MQTT-Broker betrieben wird.  
<a name="mqtt-broker-configuration-mqtt-bridge-requirement"></a>Wenn Sie einen anderen Port angeben und die MQTT-Bridge-Komponente verwenden, [ um ](mqtt-bridge-component.md) MQTT-Nachrichten an andere Broker weiterzuleiten, müssen Sie MQTT Bridge v2.1.0 oder höher verwenden. Konfigurieren Sie ihn so, dass er den Port verwendet, an dem der MQTT-Broker arbeitet.  
<a name="mqtt-broker-configuration-ip-detector-requirement"></a>Wenn Sie einen anderen Port angeben und die [ IP-Detector-Komponente ](ip-detector-component.md) zur Verwaltung von MQTT-Broker-Endpunkten verwenden, müssen Sie IP Detector v2.1.0 oder höher verwenden. Konfigurieren Sie ihn so, dass er den Port meldet, an dem der MQTT-Broker arbeitet.
Standard: `8883`  
`listener.ssl.external.max_connections`  
(Optional) Die maximale Anzahl gleichzeitiger Verbindungen, die der MQTT-Broker unterstützt.  
Standard: `1024000`  
`listener.ssl.external.max_conn_rate`  
(Optional) Die maximale Anzahl neuer Verbindungen pro Sekunde, die der MQTT-Broker empfangen kann.  
Standard: `500`  
`listener.ssl.external.rate_limit`  
(Optional) Das Bandbreitenlimit für alle Verbindungen zum MQTT-Broker. Geben Sie die Bandbreite und Dauer für diese Bandbreite getrennt durch ein Komma (`,`) im folgenden Format an:. `bandwidth,duration` Sie können beispielsweise angeben`50KB,5s`, dass der MQTT-Broker alle 5 Sekunden auf 50 Kilobyte (KB) an Daten beschränkt werden soll.  
`listener.ssl.external.handshake_timeout`  
(Optional) Die Zeitspanne, die der MQTT-Broker wartet, um die Authentifizierung einer neuen Verbindung abzuschließen.  
Standard: `15s`  
`mqtt.max_packet_size`  
(Optional) Die maximale Größe einer MQTT-Nachricht.  
Standard: `268435455` (256 MB minus 1)  
`log.level`  
(Optional) Die Protokollebene für den MQTT-Broker. Wählen Sie aus den folgenden Optionen aus:  
+ `debug`
+ `info`
+ `notice`
+ `warning`
+ `error`
+ `critical`
+ `alert`
+ `emergency`
Die Standard-Protokollebene ist`warning`.

`requiresPrivilege`  
(Optional) Auf Linux-Core-Geräten können Sie angeben, dass der EMQX MQTT-Broker ohne Root- oder Administratorrechte ausgeführt werden soll. Wenn Sie diese Option auf setzen`false`, muss der Systembenutzer, der diese Komponente ausführt, Mitglied der Gruppe sein. `docker`  
Standard: `true`

`startupTimeoutSeconds`  
(Optional) Die maximale Zeit in Sekunden, die der EMQX MQTT-Broker zum Starten benötigt. Der Status der Komponente ändert sich auf, `BROKEN` wenn dieser Timeout überschritten wird.  
Standard: `90`

`ipcTimeoutSeconds`  
(Optional) Die maximale Zeit in Sekunden, die die Komponente darauf wartet, dass der Greengrass-Kern auf IPC-Anfragen (Interprocess Communication) reagiert. Erhöhen Sie diesen Wert, wenn diese Komponente Timeout-Fehler meldet, wenn sie überprüft, ob ein Client-Gerät autorisiert ist.  
Standard: `5`

`crtLogLevel`  
(Optional) Die Protokollebene für die AWS Common Runtime (CRT) -Bibliothek.  
Standardmäßig ist das EMQX MQTT-Broker-Log-Level (in). `log.level` `emqx`

`restartIdentifier`  
(Optional) Konfigurieren Sie diese Option, um den EMQX MQTT-Broker neu zu starten. Wenn sich dieser Konfigurationswert ändert, startet diese Komponente den MQTT-Broker neu. Sie können diese Option verwenden, um Client-Geräte zum Trennen der Verbindung zu zwingen.

`dockerOptions`  
(Optional) Konfigurieren Sie diese Option nur auf Linux-Betriebssystemen, um der Docker-Befehlszeile Parameter hinzuzufügen. Um beispielsweise zusätzliche Ports zuzuordnen, verwenden Sie den `-p` Docker-Parameter:  

```
"-p 1883:1883"
```

`mergeConfigurationFiles`  
(Optional) Konfigurieren Sie diese Option, um die Standardwerte in den angegebenen EMQX-Konfigurationsdateien zu erweitern oder zu überschreiben. Informationen zu den Konfigurationsdateien und ihren Formaten finden Sie unter [ Konfiguration ](https://www.emqx.io/docs/en/v4.4/configuration/configuration.html) in der * EMQX 4.0-Dokumentation. * Die von Ihnen angegebenen Werte werden an die Konfigurationsdatei angehängt.   
Im folgenden Beispiel wird die `etc/emqx.conf` Datei aktualisiert.  

```
"mergeConfigurationFiles": {
    "etc/emqx.conf": "broker.sys_interval=30s\nbroker.sys_heartbeat=10s"
},
```
Zusätzlich zu den von EMQX unterstützten Konfigurationsdateien unterstützt Greengrass eine Datei, die das Greengrass-Authentifizierungs-Plugin für EMQX konfiguriert, genannt. `etc/plugins/aws_greengrass_emqx_auth.conf` Es gibt zwei unterstützte Optionen, und. `auth_mode` `use_greengrass_managed_certificates` Um einen anderen Authentifizierungsanbieter zu verwenden, setzen Sie die `auth_mode` Option auf eine der folgenden Optionen:  
+ `enabled`— (Standard) Verwenden Sie den Greengrass-Authentifizierungs- und Autorisierungsanbieter.
+ `bypass_on_failure`— Verwenden Sie den Greengrass-Authentifizierungsanbieter und dann alle verbleibenden Authentifizierungsanbieter in der EMQX-Anbieterkette, falls Greengrass entweder die Authentifizierung oder Autorisierung verweigert.
+ `bypass`— Der Greengrass-Anbieter ist deaktiviert. Die Authentifizierung und Autorisierung wird dann von der EMQX-Anbieterkette abgewickelt.
Wenn ja, bedeutet diese Option`true`, dass Greengrass die Broker-TLS-Zertifikate verwaltet. `use_greengrass_managed_certificates` Wenn`false`, bedeutet dies, dass Sie die Zertifikate über eine andere Quelle bereitstellen.  
Im folgenden Beispiel werden die Standardwerte in der `etc/plugins/aws_greengrass_emqx_auth.conf` Konfigurationsdatei aktualisiert.  

```
"mergeConfigurationFiles": {
    "etc/plugins/aws_greengrass_emqx_auth.conf": "auth_mode=enabled\n use_greengrass_managed_certificates=true\n"
  },
```
`aws.greengrass.clientdevices.mqtt.EMQX`ermöglicht es Ihnen, sicherheitsrelevante Optionen zu konfigurieren. Dazu gehören TLS-Einstellungen, Authentifizierungs- und Autorisierungsanbieter. Die empfohlene Konfiguration ist die Standardkonfiguration, die die gegenseitige TLS-Authentifizierung und den Greengrass Client Device Auth Provider verwendet.

`replaceConfigurationFiles`  
(Optional) Konfigurieren Sie diese Option, um die angegebenen EMQX-Konfigurationsdateien zu ersetzen. Die von Ihnen angegebenen Werte ersetzen die gesamte vorhandene Konfigurationsdatei. Sie können die `etc/emqx.conf` Datei in diesem Abschnitt nicht angeben. Sie müssen `mergeConfigurationFile` zum Ändern verwenden`etc/emqx.conf`.

**Example Beispiel: Aktualisierung der Konfiguration zum Zusammenführen**  
Die folgende Beispielkonfiguration gibt an, dass der MQTT-Broker auf Port 443 betrieben werden soll.  

```
{
  "emqx": {
    "listener.ssl.external": "443",
    "listener.ssl.external.max_connections": "1024000",
    "listener.ssl.external.max_conn_rate": "500",
    "listener.ssl.external.rate_limit": "50KB,5s",
    "listener.ssl.external.handshake_timeout": "15s",
    "log.level": "warning"
  },
  "requiresPrivilege": "true",
  "startupTimeoutSeconds": "90",
  "ipcTimeoutSeconds": "5"
}
```

------

## Lokale Protokolldatei
<a name="mqtt-broker-emqx-component-log-file"></a>

Diese Komponente verwendet die folgende Protokolldatei.

------
#### [ Linux ]

```
{{/greengrass/v2}}/logs/aws.greengrass.clientdevices.mqtt.EMQX.log
```

------
#### [ Windows ]

```
{{C:\greengrass\v2}}\logs\aws.greengrass.clientdevices.mqtt.EMQX.log
```

------

**Um die Protokolle dieser Komponente einzusehen**
+ Führen Sie den folgenden Befehl auf dem Kerngerät aus, um die Protokolldatei dieser Komponente in Echtzeit anzuzeigen. Ersetzen Sie `{{/greengrass/v2}}` oder {{C:\\greengrass\\v2}} durch den Pfad zum AWS IoT Greengrass Stammordner.

------
#### [ Linux ]

  ```
  sudo tail -f {{/greengrass/v2}}/logs/aws.greengrass.clientdevices.mqtt.EMQX.log
  ```

------
#### [ Windows (PowerShell) ]

  ```
  Get-Content {{C:\greengrass\v2}}\logs\aws.greengrass.clientdevices.mqtt.EMQX.log -Tail 10 -Wait
  ```

------

## Lizenzen
<a name="mqtt-broker-emqx-component-licenses"></a>

Auf Windows-Betriebssystemen enthält diese Software Code, der gemäß den [ Microsoft-Softwarelizenzbedingungen — Microsoft Visual Studio Community 2022 — vertrieben wird](https://visualstudio.microsoft.com/license-terms/vs2022-ga-community). Durch das Herunterladen dieser Software stimmen Sie den Lizenzbedingungen dieses Codes zu.

<a name="component-core-software-license"></a>Diese Komponente wird im Rahmen der [ Greengrass Core-Softwarelizenzvereinbarung ](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf) veröffentlicht.

## Änderungsprotokoll
<a name="mqtt-broker-emqx-component-changelog"></a>

In der folgenden Tabelle werden die Änderungen in den einzelnen Versionen der Komponente beschrieben.

------
#### [ v2.x ]


|  **Version**  |  **Änderungen**  | 
| --- | --- | 
| 2.0.3 |  **Fehlerbehebungen und Verbesserungen**<br />   Behebt ein Problem, bei dem EMQX unter Windows nicht startet, wenn der Pfad Leerzeichen enthält.     | 
| 2.0.2 |  **Fehlerbehebungen und Verbesserungen**<br />   Behebt ein Problem, bei dem EMQX gestartet wird, bevor die Komponente für die Authentifizierung des Client-Geräts bereit ist.     | 
| 2.0.1 | Die Version wurde für die [ Client-Geräte-Authentifizierung der ](client-device-auth-component.md) Version 2.5.0 aktualisiert. | 
| 2.0.0 | Diese Version des MQTT 5-Brokers (EMQX) erwartet andere Konfigurationsparameter als Version 1.x. Wenn Sie eine nicht standardmäßige Konfiguration für Version 1.x verwenden, müssen Sie die Konfiguration der Komponente für 2.x aktualisieren. Weitere Informationen finden Sie unter [Konfiguration](#mqtt-broker-emqx-component-configuration).**Neue Features**<br />   Aktualisiert den MQTT-Broker auf EMQX 5.1.1.   Ermöglicht Änderungen an der Broker-Konfiguration, ohne die Komponente neu zu starten.   <br />**Aktualisierungen**<br />   Fügt ein neues `emqxConfig` Konfigurationsfeld hinzu, das die `replaceConfigurationFiles` Konfigurationsfelder `emqx``mergeConfigurationFiles`, und ersetzt.    | 

------
#### [ v1.x ]


|  **Version**  |  **Änderungen**  | 
| --- | --- | 
| 1.2.3 |  **Fehlerbehebungen und Verbesserungen**<br />   Behebt ein Problem, bei dem Clients nicht mit EMQX interagieren konnten, nachdem sie sich zuvor authentifiziert hatten, indem sie den Client getrennt und erneut authentifiziert hatten.     | 
| 1.2.2 | Die Version wurde für die Version 2.4.0 der [ Client-Geräteauthentifizierung aktualisiert. ](client-device-auth-component.md) | 
| 1.2.1 |  **Fehlerbehebungen und Verbesserungen**<br />   Behebt ein Problem, bei dem die Komponente unter Windows nicht gestartet wird, wenn Visual C\+\+ Redistributable nicht bereits vorhanden ist.   Aktualisiert EMQX auf Version 4.4.14.     | 
| 1.2.0 | Fügt Unterstützung für Zertifikatsketten hinzu. | 
| 1.1.0 | <a name="changelog-emqx-1.1.0"></a>**Neue Features**<br />   Integriert die Unterstützung für EMQX-Konfigurationen, einschließlich Broker-Optionen und Plug-ins.   <br />**Fehlerbehebungen und Verbesserungen**<br />   Aktualisiert EMQX auf Version 4.4.9.    | 
| 1.0.1 | Behebt ein Problem während des TLS-Handshakes, das dazu führt, dass einige MQTT-Clients keine Verbindung herstellen konnten. | 
| 1.0.0 | Erste Version | 

------