Bereitstellungsplanung – Diagnose

Das MQTT-Broker-Diagnosesystem ist eine Sammlung integrierter Werkzeuge, die den Zustand des Brokers anhand von Metriken, Protokollen und Selbsttest-Sonden überwachen. Entscheiden Sie vor der Bereitstellung, welche Diagnosekonfiguration Sie für den MQTT-Broker benötigen.

Important

Die Diagnose wird für die Brokerressource festgelegt. Konfigurieren Sie die Diagnose während der erstbereitstellung mithilfe der Azure CLI oder des Azure-Portals. Wenn Sie die Brokereinstellungen ändern möchten, stellen Sie eine neue Brokerressource bereit. Weitere Informationen finden Sie unter Anpassen des Standardbrokers.

Selbstüberprüfung

Der Self-Check-Mechanismus des MQTT-Brokers ist standardmäßig aktiviert. Dabei wird unter Verwendung eines Diagnosetests und OpenTelemetry-Ablaufverfolgungen (OTel) der Broker überwacht. Die Sonde sendet Testmeldungen, um das Systemverhalten und das Timing zu überprüfen.

Der Überprüfungsprozess überprüft, ob das System ordnungsgemäß funktioniert, indem Testergebnisse mit erwarteten Ergebnissen verglichen werden. Zu diesen Ergebnissen gehören:

  • Die Wege, die Nachrichten durch das System nehmen.
  • Zeitsteuerungsverhalten des Systems

Die Diagnosesonde führt regelmäßig MQTT-Vorgänge (PING, CONNECT, PUBLISH, SUBSCRIBE, UNSUBSCRIBE) auf dem MQTT-Broker aus und überwacht die entsprechenden ACKs und Ablaufverfolgungen, um auf Latenz, Nachrichtenverlust und Korrektheit des Replikationsprotokolls zu überprüfen.

Important

Der Selbstüberprüfungsdiagnosetest veröffentlicht Nachrichten zum Thema azedge/dmqtt/selftest. Veröffentlichen oder abonnieren Sie keine Diagnosetestthemen, die mit azedge/dmqtt/selftest beginnen. Das Veröffentlichen oder Abonnieren dieser Themen kann sich auf die Probe oder Selbsttestprüfungen auswirken und zu ungültigen Ergebnissen führen. Ungültige Ergebnisse können in Diagnosetestprotokollen, Metriken oder auf Dashboards aufgeführt werden. Beispielsweise wird möglicherweise der Fehler „Pfadüberprüfung fehlgeschlagen für das Testereignis mit dem Vorgangstyp ‚Publish‘“ in den Diagnosetestprotokollen angezeigt. Weitere Informationen finden Sie unter Bekannte Probleme.

Obwohl die Diagnose des MQTT-Brokers Diagnosemeldungen zu seinem eigenen Thema erzeugt, erhalten Sie möglicherweise immer noch Nachrichten aus dem Selbsttest, wenn Sie das Thema # abonnieren. Dies ist eine Einschränkung und ein erwartetes Verhalten.

Konfigurieren von Diagnoseeinstellungen

In den meisten Szenarien sind die Standarddiagnoseeinstellungen ausreichend. Um die Standarddiagnoseeinstellungen für den MQTT-Broker außer Kraft zu setzen, bearbeiten Sie den diagnostics Abschnitt in der Broker-Ressource. Derzeit können Sie Einstellungen nur mithilfe des --broker-config-file Flags ändern, wenn Sie Azure IoT Einsatz mit dem az iot ops create Befehl bereitstellen. Weitere Informationen finden Sie unter Azure CLI-Unterstützung für die erweiterte MQTT-Brokerkonfiguration.

Um dies außer Kraft zu setzen, bereiten Sie eine Brokerkonfigurationsdatei vor, indem Sie der BrokerDiagnostics-API-Referenz folgen. Beispiel:

{
  "diagnostics": {
    "metrics": {
      "prometheusPort": 9600
    },
      "logs": {
        "level": "info"
      },
    "traces": {
      "mode": "Enabled",
      "cacheSizeMegabytes": 16,
      "selfTracing": {
        "mode": "Enabled",
        "intervalSeconds": 30
      },
      "spanChannelCapacity": 1000
    },
    "selfCheck": {
      "mode": "Enabled",
      "intervalSeconds": 30,
      "timeoutSeconds": 60
    }
  }
}

Stellen Sie dann IoT-Vorgänge mit dem az iot ops create Befehl und der --broker-config-file Kennzeichnung bereit, wie im folgenden Beispiel gezeigt. (Andere Parameter werden aus Platzgründen weggelassen.)

az iot ops create ... --broker-config-file <FILE>.json

Nächste Schritte