Device Update for IoT Hub を使用してデバイスからの診断ログをリモートで収集する
Device Update for IoT Hub のログ操作を開始し、Azure BLOB ストレージ内で収集されたログを表示する方法について説明します。
前提条件
- Device Update for IoT Hub が有効になっている IoT ハブにアクセスできること。
- IoT Hub 内で Device Update 用にプロビジョニングされている、診断インターフェイスを実装している IoT デバイス (またはシミュレーター)。
- Device Update for IoT Hub アカウントと同じサブスクリプションにある Azure Blob ストレージ アカウント。
Note
リモートログ収集機能は現在、診断インターフェイスを実装し、ファイルを Azure Blob ストレージにアップロードできるデバイスとのみ互換性があります。 参照エージェントの実装では、デバイスによって、デバイス上でユーザーが指定したファイル パスにログ ファイルが書き込まれることも想定しています。
サポートされているブラウザー:
- Microsoft Edge
- Google Chrome
Azure Blob ストレージ アカウントをデバイス更新インスタンスにリンクする
リモート ログ収集機能を使用するには、まず Azure Blob ストレージ アカウントとデバイス更新インスタンスをリンクする必要があります。 この Azure Blob ストレージ アカウントは、デバイスが診断ログをアップロードする場所です。
Azure portal で、Device Update for IoT Hub アカウントに移動します。
ナビゲーション ウィンドウの [インスタンス管理] セクションで、[インスタンス] を選びます。
一覧からデバイス更新インスタンスを選び、[診断の構成] を選びます。
[顧客診断] タブを選び、[Azure Storage アカウントの選択] を選びます。
一覧から目的のストレージ アカウントを選び、[保存] を選びます。
インスタンスの一覧に戻ったら、インスタンスのプロビジョニングの状態が "成功" と表示されるまで、定期的に [最新の情報に更新] を選びます。通常、この処理には 2 から 3 分かかります。
ログ収集を構成する
デバイス更新エージェントは、参照エージェントの /etc/adu/du-diagnostics-config.json にある、デバイス上の構成ファイルを参照します。
ログ収集ファイルのパス
デバイスの Device Update エージェントでは、デバイス更新サービスからログ アップロード開始シグナルが受信されると、デバイス上の特定のファイル パスからファイルが収集されます。 これらのファイルのパスは、診断構成ファイルで定義されます。
構成ファイル内では、収集およびアップロードされる各ログ ファイルは、componentName プロパティと logPath プロパティを持つ logComponent
オブジェクトとして表されます。 この構成は、必要に応じて変更できます。
最大ログ ファイル サイズ
Device Update エージェントは、特定のファイル サイズのログ ファイルのみを収集します。 この最大ファイル サイズは、診断構成ファイルで定義されます。
関連するパラメーター "maxKilobytesToUploadPerLogPath" が各 logComponent オブジェクトに適用され、必要に応じて変更できます。
ログ操作を作成する
ログ操作は、デバイス更新サービスを通じて実行するように IoT デバイスに指示できるサービス駆動型アクションです。 ログ操作の機能の詳細については、デバイス更新の診断に関するページを参照してください。
IoT Hub に移動し、ナビゲーション ウィンドウの [デバイス管理] セクションの [更新] タブを選択します。
UI の [診断] タブを選択します。 [診断] タブが表示されない場合は、Device Update for IoT Hub ユーザーインターフェイスの最新バージョンを使用していることを確認してください。 "Diagnostics must be enabled for this Device Update instance (このデバイス更新インスタンスの診断を有効にする必要があります)" と表示されている場合は、Azure Blob ストレージ アカウントをデバイス更新インスタンスにリンクしていることを確認してください。
[Add log upload operation](ログのアップロード操作の追加) を選択して、ログ操作の作成ページに移動します。
新しいログ操作の名前 (ID) と説明を入力し、[デバイスの追加] を選択して、診断ログの収集対象となる IoT デバイスを選択します。
[追加] を選択します。
[診断] タブに戻り、Operation テーブルにログ操作が表示されるまで [更新] を選択します。
操作の状態が [成功] または [失敗] になったら、操作名を選択して詳細を表示します。 すべてのターゲット デバイスでログのアップロードが正常に完了した場合にのみ、操作は [成功] とマークされます。 一部のターゲット デバイスが成功し、一部が失敗した場合、ログ操作は [失敗] とマークされます。ログ操作の詳細ページを使用して、成功したデバイスと失敗したデバイスを確認できます。
ログ操作の詳細では、デバイス固有の状態を確認し、ログの場所のパスを確認できます。 このパスは、診断ログがアップロードされている Azure Blob ストレージ アカウント内の仮想ディレクトリ パスに対応します。
収集された診断ログの表示とエクスポート
ログ操作が正常に完了したら、Azure Blob ストレージ アカウントに移動します。
ナビゲーション ウィンドウの [データストレージ] セクションで、[コンテナー] を選択します。
デバイス更新インスタンスと同じ名前のコンテナーを選択します。
ログ操作の詳細にあるログの場所のパスを使用して、ログが格納されている正しいディレクトリに移動します。 既定では、リモート ログ収集機能によって、ターゲット デバイスは、次のディレクトリ パス モデルを使用して診断ログをアップロードするよう指示されます。Blob ストレージ コンテナー/ターゲット デバイス ID/ログ操作 ID/デバイス上のログのパス
Device Update エージェントの診断コンポーネントを変更していない場合、デバイスは、Device Update エージェント診断ログ ("aduc.log") と DO エージェント診断ログ ("do-agent.log") の 2 つのプレーンテキスト ログ ファイルをアップロードしようとすることで、すべてのログ操作に応答します。 Device Update 参照エージェントで、どちらのログ ファイルが収集されるのかについて詳しくは、Device Update の診断の概念に関する記事をご覧ください。
ログ ファイルの内容を表示するには、ファイル名を選択し、メニュー要素 (省略記号) を選択して、[表示または編集] をクリックします。 また、それぞれのラベルが付いたオプションを選択して、ログ ファイルをダウンロードまたは削除することもできます。
次のステップ
デバイス更新の診断機能の詳細については、デバイス更新診断機能の概要に関する記事を参照してください