デプロイ計画 - 診断

MQTT ブローカー診断システムは、メトリック、ログ、自己チェック プローブを使用してブローカーの正常性を監視する一連の組み込みツールです。 MQTT ブローカーに必要な診断構成をデプロイする前に決定します。

Important

診断はブローカー リソースに設定されます。 Azure CLI または Azure portal を使用して、初期デプロイ時に診断を構成します。 ブローカー設定を変更する場合は、新しいブローカー リソースをデプロイします。 詳細については、「既定のブローカーをカスタマイズする」を参照してください。

セルフチェック

MQTT ブローカーのセルフチェック メカニズムは、既定でオンになっています。 これは、診断プローブと OpenTelemetry (OTel) トレースを使用してブローカーを監視します。 プローブは、システムの動作とタイミングを確認するためにテスト メッセージを送信します。

検証プロセスでは、テスト結果と予想される結果を比較することで、システムが正しく動作するかどうかを確認します。 これらの結果には、次のものが含まれます。

  • メッセージがシステムを通過するパス。
  • システムのタイミング動作。

診断プローブは、MQTT ブローカーで MQTT 操作 (PING、CONNECT、PUBLISH、SUBSCRIBE、UNSUBSCRIBE) を定期的に実行し、対応する ACL とトレースを監視して、レプリケーション プロトコルの待機時間、メッセージ損失、正確性をチェックします。

Important

セルフチェック診断プローブは、メッセージを azedge/dmqtt/selftest トピックに発行します。 azedge/dmqtt/selftest で始まる診断プローブ トピックを発行またはサブスクライブしないでください。 これらのトピックを発行またはサブスクライブすると、プローブまたは自己テストのチェックに影響を与え、結果が無効になることがあります。 無効な結果は、診断プローブ ログ、メトリック、またはダッシュボードに一覧表示できます。 たとえば、診断プローブ ログの中に、"'発行' 操作の種類を含むプローブ イベントのパス検証が失敗した" という問題が表示される場合があります。 詳細については、「既知の問題の」を参照してください。

MQTT ブローカーの 診断 では、独自のトピックで診断メッセージが生成されますが、 # トピックをサブスクライブするときに自己テストからメッセージを取得できます。 これは制限事項であり、想定される動作です。

診断設定の構成

ほとんどのシナリオでは、既定の診断設定で十分です。 MQTT ブローカーの既定の診断設定をオーバーライドするには、ブローカー リソースの diagnostics セクションを編集します。 現時点では、--broker-config-file コマンドを使用して Azure IoT Operations をデプロイするときに、az iot ops create フラグを使用してのみ設定を変更できます。 詳細については、 高度な MQTT ブローカー構成に対する Azure CLI のサポートを参照してください

オーバーライドするには、 BrokerDiagnostics API リファレンスに従ってブローカー構成ファイルを準備します。 例えば次が挙げられます。

{
  "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
    }
  }
}

次に、次の例に示すように、 az iot ops create コマンドと --broker-config-file フラグを使用して IoT Operations をデプロイします。 (簡潔にするために、その他のパラメーターは省略されています。)

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

次のステップ