Device Update for IoT Hub の診断の概要
Device Update for IoT Hub には、デバイス側のエラーの診断とトラブルシューティングに役立つ機能がいくつかあります。 v0.8.0 エージェントのリリースでは、次の 2 つの診断機能を使用できます。
Device Update ユーザー インターフェイスの最新プレビュー バージョンでは、デプロイ エラー コードを直接確認できます
リモート ログ収集を使用すると、リンクされた Azure Blob ストレージ アカウントにデバイス上の診断ログをアップロードするようにターゲット デバイスに指示するログ操作を作成できます
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 Storage にファイルをアップロードできることだけです。
概要レベルでは、ログ収集機能は次のように機能します。
ユーザーは、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 を使用してログ操作の詳細を表示すると、成功したデバイスと失敗したデバイスを確認できます。
次のステップ
Device Update のリモート ログ収集機能の使用方法について学習してください: Device Update for IoT Hub を使用してデバイスからの診断ログをリモートで収集する