次の方法で共有


MQTT ブローカー診断設定を構成する

MQTT ブローカーのメトリック、ログ、自己チェックを構成するための診断設定を設定します。

重要

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

メトリック

メトリックは、MQTT ブローカーの現在および過去の正常性と状態を示します。 これらのメトリックでは、OpenTelemetry Protocol (OTLP) 形式が使用されます。 OpenTelemetry コレクターを使用して Prometheus 形式に変換し、Prometheus 用の Azure Monitor マネージド サービスを使用して Azure Managed Grafana ダッシュボードにルーティングします。 詳細については、監視とモニタリングに関する記事を参照してください。

使用可能なメトリックの完全な一覧については、 MQTT ブローカーメトリックを参照してください。

ログ

ログには、MQTT ブローカーが実行するアクションに関する情報が表示されます。 これらのログは、コンテナー ログとして Kubernetes クラスターに格納されます。 Container Insights を使用して Azure Monitor ログに送信するように設定します。

詳細については、監視とモニタリングに関する記事を参照してください。

セルフチェック

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

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

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

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

重要

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

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

診断設定を変更する

ほとんどのシナリオでは、既定の診断設定で十分です。 MQTT ブローカーの既定の診断設定をオーバーライドするには、ブローカー リソースの diagnostics セクションを編集します。 現時点では、--broker-config-file コマンドを使用して Azure IoT Operations をデプロイするときに、az iot ops create フラグを使用してのみ設定を変更できます。

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

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

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

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

詳細については、高度な MQTT ブローカー構成とブローカーの例に対する Azure CLI のサポートを参照してください