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