対象:
IoT Edge 1.5
重要
IoT Edge 1.5 LTS は、サポートされているリリースです。 IoT Edge 1.4 LTS は 2024 年 11 月 12 日に終了しました。 以前のリリースを使用している場合は、「Update IoT Edgeを参照してください。
Azure Monitor ワークブックを使用して、Azure IoT Edgeデプロイの健康状態とパフォーマンスを監視します。
このチュートリアルでは、次の作業を行う方法について説明します。
- デバイスが共有IoT Edgeメトリックと、メトリック コレクター モジュールがそれらを処理する方法について説明します。
- メトリック コレクター モジュールを IoT Edge デバイスにデプロイします。
- デバイスから収集されたメトリックのキュレーションされた視覚化を表示します。
前提条件
シミュレートされた温度センサー モジュールがデプロイされたIoT Edge デバイスが必要です。 デバイスの準備ができていない場合は、「初めてのIoT Edge モジュールを仮想 Linux デバイスにデプロイするの手順に従って、仮想マシンを使用して作成します。
IoT Edgeメトリックを理解する
すべてのIoT Edge デバイスは、runtime モジュールと呼ばれる 2 つのモジュールに依存しています。このモジュールは、デバイス上の他のすべてのモジュールのライフサイクルと通信を管理します。 これらのモジュールは、IoT Edge エージェントとIoT Edge ハブです。 これらのモジュールの詳細については、「Azure IoT Edge ランタイムとそのアーキテクチャの概要を参照してください。
どちらのランタイム モジュールも、IoT Edge デバイスまたはその個々のモジュールのパフォーマンスをリモートで監視できるメトリックを作成します。 IoT Edge エージェントは、個々のモジュールとホスト デバイスの状態を報告するため、モジュールが正常に実行される時間や、デバイスで使用されている RAM と CPU の割合などのメトリックが作成されます。 IoT Edge ハブはデバイス上の通信を報告するため、送受信されたメッセージの合計数やダイレクト メソッドの解決にかかる時間などのメトリックが作成されます。 使用できるメトリックの完全な一覧については、「組み込みのメトリックにアクセスする」を参照してください。
どちらのモジュールもこれらのメトリックを自動的に公開するため、それらにアクセスしてレポートするための独自のソリューションを作成できます。 このプロセスを簡単にするために、Microsoft では azureiotedge-metrics-collector モジュールを提供しています。このモジュールは、カスタム ソリューションがない場合や必要な場合にこのプロセスを処理します。 メトリック コレクター モジュールは、2 つのランタイム モジュールと監視する他のモジュールからメトリックを収集し、デバイスから送信します。
メトリック コレクター モジュールは、2 つの方法のいずれかでメトリックをクラウドに送信します。 このチュートリアルで使用する最初のオプションは、メトリックをLog Analyticsに直接送信します。 2 番目のオプションは、ネットワーク ポリシーで必要な場合にのみ推奨されます。 IoT Hubを介してメトリックを送信し、メトリック メッセージをLog Analyticsに渡すルートを設定します。 いずれの場合も、メトリックが Log Analytics ワークスペースに入ったら、Azure Monitor ブックを通じて表示できます。
Log Analytics ワークスペースを作成する
Log Analytics ワークスペースは、メトリック データを収集し、クエリ言語を使用して、デバイスを監視できるようにAzure Monitorと統合する必要があります。
Azure ポータルにサインインします。
Log Analytics ワークスペースを検索して選択します。
[ 作成] を選択し、プロンプトに従って新しいワークスペースを作成します。
ワークスペースの準備ができたら、[ リソースに移動] を選択します。
メイン メニューの [設定] で、[ エージェント] を選択します。
Workspace ID および Primary key の値を Log Analytics agent instructions の下にコピーします。 これらの値は、チュートリアルの後半で使用して、メトリック コレクター モジュールを構成して、このワークスペースにメトリックを送信します。
IoT ハブのリソース ID を取得する
メトリック コレクター モジュールを構成するときに、IoT ハブのAzure Resource Manager リソース ID を入力します。 その ID を今すぐ取得します。
Azure ポータルで、IoT ハブに移動します。
[設定] で [プロパティ] を選択します。
[リソース ID] の値をコピーします。 形式は
/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.Devices/IoTHubs/<iot_hub_name>です。
メトリック コレクター モジュールをデプロイする
監視する各デバイスにメトリック コレクター モジュールをデプロイします。 他のモジュールと同様にデバイス上で実行され、割り当てられたエンドポイントでメトリックが収集されてクラウドに送信されるのを監視します。
コレクター モジュールをデプロイして構成するには、次の手順に従います。
Azure ポータルにサインインし、IoT ハブに移動します。
[ デバイス管理] で、[デバイス] を選択 します。
IoT Edge デバイスの一覧で、ターゲット デバイスのデバイス ID を選択して、デバイスの詳細ページを開きます。
メニュー バーで、[モジュールの 設定] を選択します。
ポータルからモジュールをデプロイする最初の手順は、デバイス上にある モジュール を宣言することです。 クイックスタートで作成したのと同じデバイスを使用している場合は、 SimulatedTemperatureSensor が既に一覧表示されています。 含まれていない場合は、ここで追加してください。
IoT Edge モジュール セクションで、Add を選択し、IoT Edge Module を選択します。
次のモジュール設定を更新します。
設定 価値 IoT モジュール名 SimulatedTemperatureSensor画像の URL mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:latest再起動ポリシー 常時 望ましい状態 実行中 [次へ: ルート] を選び、ルートの構成を続行します。
シミュレートされた温度モジュールからすべてのメッセージをIoT Hubに送信するルートを追加します。
設定 価値 名前 SimulatedTemperatureSensorToIoTHub価値 FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
メトリック コレクター モジュールを追加して構成します。
Add を選択し、IoT Edge Module を選択します。
IoT Edge Metrics Collector を検索して選択します。
次のモジュール設定を更新します。
設定 価値 IoT モジュール名 IoTEdgeMetricsCollector画像の URL mcr.microsoft.com/azureiotedge-metrics-collector:latest再起動ポリシー 常時 望ましい状態 実行中
メトリック コレクター モジュールの別のバージョンまたはアーキテクチャを使用するには、 Microsoft Artifact Registry で使用可能なイメージを見つけます。
[ 環境変数 ] タブに移動します。
次のテキスト型環境変数を追加します。
名前 価値 リソースID 前のセクションで取得した IoT ハブのリソース ID。 UploadTarget AzureMonitorLogAnalyticsWorkspaceId 前のセクションで取得したLog Analytics ワークスペース ID。 LogAnalyticsSharedKey 前のセクションで取得したLog Analytics キー。 環境変数の設定の詳細については、「メトリック コレクターの構成」を参照してください。
適用を選択して、変更を保存します。
注
IoT Hub経由でメトリックを送信するには、
FROM /messages/modules/< FROM_MODULE_NAME >/* INTO $upstreamのようなアップストリームへのルートを追加します。 このチュートリアルでは、メトリックをLog Analyticsに直接送信するため、このルートは必要ありません。[ 確認と作成 ] を選択して、モジュールのデプロイの最後の手順に進みます。
[作成] を選択してデプロイを終了します。
モジュールのデプロイが完了したら、デバイスの詳細ページに戻り、4 つのモジュールが [展開] に指定済みとして表示されます。 4 つのモジュールすべてが Device によって報告>として一覧表示されるまでに少し時間がかかることがあります。つまり、モジュールの状態が開始され、IoT Hubに報告されます。 ページを最新の情報に更新して、最新の状態を表示します。
デバイスの正常性を監視する
デバイス監視ワークブックを表示する準備が整うまで、最大で15分かかる場合があります。 メトリック コレクター モジュールをデプロイすると、メトリック メッセージのLog Analyticsへの送信が開始され、テーブルに編成されます。 指定したIoT Hub リソース ID は、取り込まれたメトリックを適切なハブにリンクします。 その結果、選定されたIoT Edgeワークブックは、リソース ID を使用してメトリック テーブルにクエリを実行し、メトリックを取得します。
Azure Monitorには、IoT 用の既定のブック テンプレートが 3 つ用意されています。
- フリート ビュー ワークブックには、複数の IoT リソースにわたるデバイスの正常性が表示されます。 このビューでは、デバイスの正常性のしきい値を設定し、デバイスごとのプライマリ メトリックの集計を表示できます。
- [デバイスの詳細] ブックには、メッセージング、モジュール、ホストの視覚化が表示されます。 メッセージング ビューでは、デバイスのメッセージ ルートが視覚化され、メッセージング システムの全体的な正常性が報告されます。 モジュール ビューには、デバイス上の個々のモジュールのパフォーマンスが表示されます。 ホスト ビューには、ホスト コンポーネントとリソースの使用に関するバージョン情報など、ホスト デバイスに関する情報が表示されます。
- アラート ワークブック ビューには複数の IoT リソースにわたるデバイスのアラートが表示されます。
フリート ビューと正常性スナップショットのブックを探索する
フリート ビュー ワークブックには、すべてのデバイスが表示され、特定のデバイスを選択して状態スナップショットを表示できます。 ブックの視覚化を探索するには、以下の手順に従います:
Azure ポータルで IoT Hub ページに移動します。
メイン メニューで、[監視] セクションまで下にスクロールし、[ワークブック] を選択します。
フリート ビュー ワークブックを選択します。
メトリック コレクター モジュールを実行しているデバイスが表示されます。 デバイスは、 [正常] または [異常] として表示されます。
デバイス名を選択して、詳細なメトリックを表示します。
任意の時間グラフで、X 軸の下にある矢印アイコンを使用するか、グラフを選択してカーソルをドラッグして時間範囲を変更します。
健康スナップショット ワークブックを閉じます。 フリート ビュー ワークブックで、ワークブック を選択してワークブック ギャラリーに戻ります。
デバイス詳細ワークブックを確認する
デバイスの詳細ブックには、個々のデバイスのパフォーマンスの詳細が表示されます。 ブックの視覚化を探索するには、以下の手順に従います:
ブック ギャラリーで、IoT Edge デバイスの詳細 ワークブックを選択します。
デバイスの詳細ブックの最初のページはメッセージングビューで、ルーティングタブが選択されています。
左側の表は、デバイス上のルートをエンドポイント別に整理して示しています。 このデバイスでは、IoT Hubへのルーティングの用語である upstream エンドポイントは、シミュレートされた温度センサー モジュールの temperatureOutput 出力からメッセージを受信します。
右側のグラフには、時間の経過に伴う接続されたクライアントの数が表示されます。 グラフを選択してドラッグし、時間範囲を変更します。
[グラフ] タブを選択して、ルートの別の視覚化を表示します。 グラフ ページで、エンドポイントをドラッグ アンド ドロップしてグラフを再配置します。 この機能は、視覚化するルートが多数ある場合に役立ちます。
[ ヘルス ] タブには、メッセージの未達や切断されたクライアントなどのメッセージングに関する問題が表示されます。
モジュール ビューを選択すると、デバイスにデプロイされているすべてのモジュールの状態が表示されます。 モジュールを選択すると、その CPU とメモリの使用に関する詳細が表示されます。
host ビューを選択すると、オペレーティング システム、IoT Edge デーモンのバージョン、リソースの使用など、ホスト デバイスに関する情報が表示されます。
モジュールのログを表示する
デバイスのメトリックを表示したら、さらに詳しく調べて、個々のモジュールを調べることができます。 IoT Edgeでは、ライブ モジュール ログ機能を使用して、Azure ポータルでトラブルシューティングのサポートを提供します。
デバイスの詳細レポートでライブのトラブルシューティングを選択します。
トラブルシューティング ページが開き、IoT Edge デバイスから edgeAgent ログが表示されます。 デバイスの詳細ブックで特定の時間範囲を選択した場合、その設定はトラブルシューティング ページに渡されます。
ドロップダウン メニューを使用して、デバイスで実行されている他のモジュールのログに切り替え、[ 再起動 ] ボタンを使用してモジュールを再起動します。
IoT Edgeデバイスの詳細ページからトラブルシューティング ページにアクセスすることもできます。 詳細については、「Azure ポータルからデバイスIoT Edgeをトラブルシューティングするを参照してください。
次のステップ
チュートリアルの残りの部分を実行するときは、メトリック コレクター モジュールをデバイスに保持し、これらのブックに戻って、より複雑なモジュールとルーティングを追加したときに情報がどのように変化するかを確認します。
次のチュートリアルに進み、開発環境を設定し、デバイスへのカスタム モジュールのデプロイを開始します。