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