次の方法で共有


IoT Hub のデバイス更新診断の概要

Device Update for IoT Hub には、デバイス側エラーの診断とトラブルシューティングに役立ついくつかの機能があります。 次の 3 つの診断機能を使用できます。

  • 展開エラー コード は、Device Update ユーザー インターフェイスで直接表示できます。

  • リモート ログ収集 を使用すると、ログ操作を作成できます。これにより、ターゲット デバイスに対して、リンクされた Azure Blob Storage アカウントにデバイス上の診断ログをアップロードするように指示できます。

  • エージェント チェック は、接続されている IoT Hub に登録されているがデバイス更新に表示されないデバイスを診断することを目的として、Device Update インスタンスに登録されているデバイスに対して検証チェックを実行します。

UI での展開エラー コード

デバイスがデバイス更新サービスに展開エラーを報告すると、Device Update ユーザー インターフェイスにデバイスの報告された resultCodeextendedResultCode がユーザー インターフェイスに表示されます。 これらのコードを表示するには、次の手順に従います。

  1. Azure Portal で、IoT ハブに移動します。

  2. [ 更新プログラム ] を選択し、[ グループと展開 ] タブに移動します。

  3. アクティブなデプロイを持つグループの名前を選択して、[ グループの詳細 ] ページに移動します。

  4. デバイス の一覧 で任意のデバイス名を選択して、デバイスの詳細パネルを開きます。 ここでは、デバイスが報告した結果コードを確認できます。

  5. Device Update 参照エージェントは、結果コード フィールドの標準の HTTP 状態コード規則に従います (たとえば、"200" は成功を示します)。 結果コードを解析する方法の詳細については、「 デバイス更新クライアントのエラー コード」を参照してください。

    カスタマイズされた結果コードを報告するように Device Update エージェントを変更した場合、数値コードは引き続き Device Update ユーザー インターフェイスに渡されます。 その後、作成したドキュメントを参照して、これらの数値コードを解析できます。

リモート ログ収集

エラーの診断とトラブルシューティングにデバイスからの詳細情報が必要な場合は、ログ収集機能を使用して、リンクされた Azure Blob Storage アカウントにデバイス上の診断ログをアップロードするようにターゲット デバイスに指示できます。 デバイス から診断ログをリモートで収集する手順に従って、この機能の使用を開始できます。

Device Update のリモート ログ収集は、サービス駆動型の操作ベースの機能です。 ログ収集を利用するには、デバイスで 診断インターフェイス と構成ファイルを実装し、SDK を使用して Azure Blob Storage にファイルをアップロードできる必要があります。

大まかに言うと、ログ収集機能は次のように機能します。

  1. Device Update ユーザー インターフェイスまたは API を使用して、診断インターフェイスを実装した最大 100 台のデバイスを対象とする新しいログ操作を作成します。

  2. Device Update サービスは、診断インターフェイスを使用して、対象のデバイスにログ 収集開始メッセージを送信します。 この開始メッセージには、ログ操作 ID と、関連付けられている Azure Storage アカウントにアップロードするための SAS トークンが含まれます。

  3. 開始メッセージを受信すると、対象デバイスの Device Update エージェントは、デバイス上のエージェント構成ファイルで指定された 1 つ以上の定義済みファイルパス内のファイルを収集してアップロードしようとします。 Device Update 参照エージェントは、既定で Device Update エージェント診断ログ (aduc.log) と DO エージェント診断ログ ("do-agent.log") をアップロードするように構成されています。

  4. その後、Device Update エージェントは、操作の状態 ( 成功 または 失敗) を、ログ操作 ID、ResultCode、ExtendedResultCode など、サービスに報告します。 デバイス更新エージェントがログ操作に失敗した場合、自動的に再試行が 3 回試行され、最終的な状態のみがサービスに報告されます。

  5. 対象となるすべてのデバイスがデバイス更新サービスに端末の状態を報告すると、デバイス更新サービスによってログ操作が 成功 または失敗のいずれかとしてマーク されます。 ログ操作が成功すると、対象となるすべてのデバイスがログ操作を正常に完了したことを示します。 失敗したログ操作は、少なくとも 1 つのターゲット デバイスがログ操作に失敗したことを示します。

    ログ操作はターゲット デバイスによって並列に実行されるため、一部のターゲット デバイスでログが正常にアップロードされた可能性がありますが、全体的なログ操作は失敗としてマークされます。 ユーザー インターフェイスまたは API を使用してログ操作の詳細を表示することで、成功したデバイスと失敗したデバイスを確認できます。

エージェントチェック

デバイスが IoT Hub に登録されていても、Device Update インスタンスに表示されない場合は、エージェント チェック機能を使用して事前に作成された検証チェックを実行して、基になる問題の診断に役立てることができます。 この機能の使用は、次の エージェント チェックの手順に従って開始できます。

大まかに言えば、エージェント チェック機能は次のように機能します。

  1. デバイスを IoT Hub に登録します。 デバイスが IoT Hub 用 Device Update と互換性のあるモデル ID を報告すると、接続されている Device Update インスタンスによってデバイスがデバイス更新プログラムに自動的に登録されます。
  2. デバイスを Device Update によって適切に管理するには、エージェント チェックの事前に作成された検証チェックを使用して検証できる特定の条件を満たす必要があります。 これらの条件の詳細については、 こちらをご覧ください
  3. デバイスがこれらの条件をすべて満たしていない場合、デバイス更新プログラムによって適切に管理されるわけではなく、デバイス更新インターフェイスまたは API 応答に表示されません。 エージェント チェックを使用すると、このデバイスを検索し、エージェント チェックを使用して、満たされていない条件の特定を試みることができます。
  4. どの条件が満たされていないかを特定したら、問題を修正し、デバイスがデバイス更新インターフェイスに正しく表示されます。

次のステップ

Device Update のリモート ログ収集機能とエージェント チェック機能を使用する方法について説明します。