Device Update for IoT Hub の診断の概要
Device Update for IoT Hub には、デバイス側のエラーの診断とトラブルシューティングに役立つ機能がいくつかあります。 v0.9.0 エージェントのリリースでは、次の 3 つの診断機能を使用できます。
デプロイ エラー コードは、Device Update ユーザー インターフェイスで直接確認できます
リモート ログ収集を使用すると、リンクされた Azure Blob ストレージ アカウントにデバイス上の診断ログをアップロードするようにターゲット デバイスに指示するログ操作を作成できます
エージェント チェックは、接続されている IoT Hub に登録されているにもかかわらず Device Update に表示されないデバイスを診断する目的で、Device Update インスタンスに登録されているデバイスに対して検証チェックを実行します
UI のデプロイ エラー コード
デバイスが Device Update サービスにデプロイ エラーを報告すると、デバイスが報告した resultCode
と extendedResultCode
が Device Update のユーザー インターフェイスに表示されます。 これらのコードを確認するには、次の手順を使用します。
Azure Portal で、IoT ハブに移動します。
[更新] を選択し、[グループとデプロイ] タブに移動します。
アクティブなデプロイを含むグループの名前を選択して、[グループの詳細] ページに移動します。
[デバイス一覧] で任意のデバイス名を選択して、デバイスの詳細パネルを開きます。 ここで、デバイスが報告した結果コードを確認できます。
Device Update 参照エージェントは、結果コード フィールドに関して、標準の HTTP ステータス コード規則に従います (たとえば、"200" は成功を示します)。 結果コードを解析する方法について詳しくは、Device Update クライアントのエラー コードに関するページを参照してください。
注意
カスタマイズされた結果コードを報告するように Device Update エージェントを変更した場合でも、数値コードは Device Update ユーザー インターフェイスに渡されます。 その後、ユーザーが作成したドキュメントを参照して、これらの数値コードを解析することができます。
リモート ログの収集
エラーの診断とトラブルシューティングを行うために、デバイスからのさらに多くの情報が必要な場合、ログ収集機能を使用して、リンクされた Azure Blob ストレージ アカウントにデバイス上の診断ログをアップロードするようターゲット デバイスに指示できます。 デバイスからの診断ログをリモートで収集する方法に関するページの指示に従うことで、この機能を使用開始できます。
Device Update のリモート ログ収集は、サービス駆動型の操作ベースの機能です。 ログ収集を利用するには、デバイスでは、診断インターフェイスと構成ファイルを実装でき、SDK を使用して Azure Blob ストレージにファイルをアップロードできることだけが必要です。
概要レベルでは、ログ収集機能は次のように機能します。
ユーザーは、Device Update ユーザー インターフェイスまたは API を使用して、診断インターフェイスを実装した最大 100 台のデバイスを対象とする新しいログ操作を作成します。
Device Update サービスは、診断インターフェイスを使用して、ターゲット デバイスにログ収集開始メッセージを送信します。 この開始メッセージには、関連付けられている Azure Storage アカウントにアップロードするためのログ操作 ID と SAS トークンが含まれています。
ターゲット デバイスの Device Update エージェントは、開始メッセージを受信すると、デバイス上のエージェント構成ファイルで指定された定義済みファイルパスにあるファイルを収集してアップロードしようとします。 Device Update 参照エージェントは、Device Update エージェント診断ログ (
aduc.log
) と DO エージェント診断ログ ("do-agent.log") をアップロードするように既定で構成されています。次に、Device Update エージェントは、操作の状態 (成功または失敗) をサービスに報告します。これには、ログ操作 ID、ResultCode、ExtendedResultCode が含まれます。 Device Update エージェントは、ログ操作に失敗すると、自動的に 3 回再試行し、最終的な状態のみをサービスに報告します。
すべてのターゲット デバイスが最終状態を Device Update サービスに報告すると、Device Update サービスは、ログ操作を成功または失敗とマークします。 成功したログ操作は、すべてのターゲット デバイスがログ操作を正常に完了したことを示します。 失敗したログ操作は、少なくとも 1 つのターゲット デバイスがログ操作に失敗したことを示します。
Note
ログ操作は複数のターゲット デバイスで並列に実行されるため、一部のターゲット デバイスでログが正常にアップロードされた一方で、ログ操作全体が失敗とマークされる可能性があります。 ユーザー インターフェイスまたは API を使用してログ操作の詳細を表示すると、成功したデバイスと失敗したデバイスを確認できます。
エージェント チェック
デバイスが IoT Hub に登録されているにもかかわらず Device Update インスタンスに表示されない場合は、エージェント チェック機能を使用して事前に作成された検証チェックを実行して、根本的な問題の診断に役立てることができます。 こちらのエージェント チェックの利用手順に従うことで、この機能の使用を開始できます。
エージェント チェック機能は、大まかには次のように機能します。
ユーザーがデバイスを IoT Hub に登録します。 Device Update for IoT Hub と互換性のあるモデル ID と一致するモデル ID がデバイスから報告されると、接続されているユーザーの Device Update インスタンスによって、デバイスが Device Update に自動的に登録されます。
デバイスを Device Update で適切に管理するには、エージェント チェックの事前作成された検証チェックを使用して確認できる、特定の条件を満たす必要があります。 これらの条件の詳細については、こちらを参照してください。
デバイスがこれらの基準をすべて満たしていない場合、Device Update によって適切に管理することができず、Device Update インターフェイスまたは API 応答には表示されません。 ユーザーは、エージェント チェックを使用してこのデバイスを見つけ、どの基準が満たされていないのかを特定することを試みることができます。
どの基準が満たされていないかを特定したら、ユーザーは問題を修正することができ、デバイスが Device Update インターフェイスに正しく表示されるようになります。
次のステップ
Device Update のリモート ログ収集機能とエージェント チェック機能の使用方法について説明します。