Azure Network Watcherの接続モニター(概要、テスト作成、監視設定、ステータス確認手順)

2020-12-31Azure,Log Analytics,Monitor,Network Watcher,Virtual Machines,Virtual Network

Azure Network Watcherの接続モニターを使用した、仮想マシン(Azure VM)などのネットワーク接続状態を確認したり監視する方法です。

Azure では、仮想マシンなどのネットワークを監視、診断、分析するためのサービスとして Azure Network Watcherが提供されています。
Network Watcher の接続モニターを使用して、仮想マシン間の接続やWebサイト、外部のIP アドレスなどの宛先への接続を確認したり監視することができます。

本記事では、接続モニターの概要、仮想マシンのNetwork Watcher拡張機能の有効化、接続モニター、テスト グループ、テスト構成の作成手順、Azure Monitorアラートルールの作成手順を確認しています。
仮想マシン間のICMP疎通確認を例に、接続障害を発生させた場合のテスト結果の変化と、アラート発生についても確認しています。
また、テスト グループを無効化して監視を停止する手順も紹介しています。

※本記事内では、Azure Virtual Machines(Azure VM)を仮想マシンとして表記しています。

スポンサーリンク

Azure Network Watcherや接続モニターの概要

Azure Network Watcherとは?

Azure Network Watcherは、Azure IaaS(仮想マシン、仮想ネットワーク、Application Gateway、ロード バランサーなど)のネットワークを監視・診断し、メトリックを表示したり、ログを有効化または無効化したりするためのツール群を提供するサービスです。

Azure Network Watcherとは

Azure Network Watcherには、接続モニター、トラフィック分析、フローログなどの機能が含まれています。
また、ネットワーク診断ツールも提供されてります。
フローログはAzure上のトラフィック情報を、ストレージアカウントに保管することができます。
また、Traffic Analyticsを使用すると、フローログのデータをLog Analyticsワークスペースに転送しKQLクエリを使って分析することができます。

Azure Network Watcherの主な機能は3つに分かれます。

    • 監視
      • トポロジ、接続モニター、トラフィック分析
    • ネットワーク診断ツール
      • IP フロー検証、NSG 診断、ネクスト ホップ、有効なセキュリティ規則、接続のトラブルシューティング、パケット キャプチャ、VPN のトラブルシューティング
    • ログ:
      • フローログ、診断ログ
Network Watcherの画面例
Network Watcherのメニュー一覧です。
多くの機能が用意されています。
Network Watcherで表示される機能一覧(Azure Network Watcherや接続モニターの概要)

なお、MS Learnにも、Azure Network Watcherのトレーニングがあります。

Azure Network Watcherとは

また、作成できる最大数の制限があるので、注意が必要となります。

Network Watcherの制限

※NSGフローログは2027年9月30日に廃止予定となっており、現在は新規作成できません。

接続モニターとは?

接続モニターを使用することで、仮想マシン間の接続を検証できます。
接続モニターは設定した頻度で接続確認を継続的に実行するため、監視用途にも利用できます。

接続監視の概要

オンプレミスのホストでも、Azure Arc エージェントやAzure Monitor エージェントを有効化することで、接続モニターを利用することができます。
Azure portal で接続モニターを作成する場合、Azure Monitor エージェント拡張機能は自動的に有効化されます。

仮想マシン間の通信だけでなく、外部の IP アドレス、FQDN、URL などを宛先として指定し、接続を監視することもできます。
ICMP(Ping による到達性・遅延の確認)、TCP(指定ポートへの接続確認)、HTTP(URL への HTTP/HTTPS 接続確認)を使用した監視に対応しています。

接続モニターは、ソースとなるエンドポイントから宛先へテスト通信を送信して監視します。
ソースには仮想マシン、仮想マシンスケールセット、Azure Arcを有効化したオンプレミス ホストを指定できます。
宛先には仮想マシン、オンプレミス ホスト、URL、FQDN、IP アドレスなどを指定できます。

仮想マシンもしくは仮想マシンスケールセットをソースとして使用する場合、Network Watcherの拡張機能をインストールする必要があります。
一方、宛先となるエンドポイントにはNetwork Watcher 拡張機能は不要です。

接続モニターはテスト回数に応じた課金

接続モニターは、テスト回数に応じた課金が発生します。

Network Watcher の価格

そのため、使っていないテストグループなどは無効化しておくことで、コストを削減することができます。

Azure Network Watcherの接続モニター、テストグループ、テスト構成、アラートルール作成手順

Network Watcherの接続モニター設定値

今回作成した、Network Watcherの接続モニター、テストグループ、テスト構成などの設定値です。
仮想マシン間のICMP疎通を確認、監視するテストを作成しています。
また、検証環境はvm-01(10.1.100.4)、vm-02(10.1.100.5)の2台のWindows仮想マシンで構成しています。

※テスト用の設定です。利用する場合は環境に合わせて設定を調整してください。

Network Watcher(接続モニター、テストグループ)の設定値
接続モニター
 接続モニター名 nw-conn-mon-01
 リージョン Japan East
テストグループ
 テストグループ名 nw-tg-01
 ソース(エンドポイント) vm-01(10.1.100.4)
 ターゲット(エンドポイント) vm-01(10.1.100.5)
 テスト構成名 nw-test-comp-01
  プロトコル ICMP
  テストの頻度 30秒
  チェックの失敗率 5%
  ラウンドトリップ時間(ミリ秒) 1000
Workspace
 Workspace Custom Workspace
 ワークスペース log-01
アラートの作成
 アラートの作成 有効(チェックあり)
 アクショングループ ag-01( メール送信用のアクショングループ)

※アクショングループは、事前に作成してあるものを利用しています。
※ソースおよびターゲットのエンドポイントには、複数の仮想マシンを指定することも可能です。今回は1対1の構成としていますが、n対nのメッシュ構成で利用することもできます。

ソースとなる仮想マシンへNetwork Watcher拡張機能をインストール

ソースとなる仮想マシンにNetwork Watcher拡張機能をインストールします。
今回は事前にNetwork Watcher拡張機能を仮想マシンにインストールしていますが、未インストールの場合でもAzure portalで接続モニターを作成する際に自動で有効化されます。

※拡張機能インストール時には、対象の仮想マシンが起動中である必要があります。

Network Watcher拡張機能をインストール
ソースとなる仮想マシンで拡張機能とアプリケーションを表示します。
拡張機能のタブで追加を選択します。
仮想マシンに拡張機能をインストール(Azure Network Watcherの接続モニター設定手順)
Network Watcher Agent for Windowsを選択します。
特に設定はないため、インストールまで進めます。
Network Watcher Agent for Windowsの拡張機能を選択(Azure Network Watcherの接続モニター設定手順)
Network Watcher Agent for Windowsのインストール画面(Azure Network Watcherの接続モニター設定手順)
Network Watcher Agent for Windowsのインストール画面(Azure Network Watcherの接続モニター設定手順)
仮想マシンの拡張機能とアプリケーションを確認します。
AzureNetworkWatcherExtensionが追加されていることを確認できます。
仮想マシンの拡張機能一覧でAzureNetworkWatcherExtension表示を確認(Azure Network Watcherの接続モニター設定手順)

接続モニター、テストグループ、テスト構成、アラートルールの作成手順

接続モニターのリソース、テストグループ、テスト構成を作成します。
接続モニターの作成と同時に、Azure Monitorのアラートルールを作成することができます。

※ソースとなる仮想マシンにNetwork Watcher拡張機能を自動インストールする場合は、インストール対象の仮想マシンを起動しておく必要があります。

接続モニター、テストグループ、テスト構成を作成
Network Watcherの接続モニターにある作成を選択します。 接続モニターの作成を開始(Azure Network Watcherの接続モニター設定手順)
接続モニターの作成を開始(Azure Network Watcherの接続モニター設定手順)
接続モニターの作成画面が表示されます。
リージョンおよび接続モニター名を設定します。
次へ進みます。
接続モニターの作成の基本タブ画面例(Azure Network Watcherの接続モニター設定手順)
テストグループの詳細の追加画面です。
テストグループの詳細ではソース、ターゲット、テスト構成を設定します。
テストグループ名を設定します。
ソースの選択に進みます。
テストグループの詳細の追加画面でソースの選択(Azure Network Watcherの接続モニター設定手順)

ソースの追加画面です。
Azureエンドポイントのタブで設定します。
型はVirtual Machinesを選択します。
ソースとなる仮想マシンとしてvm-01を選択します。
Add endpointsを選択します。

※Azure以外のエンドポイントも指定できます。
※Network Watcher拡張機能のインストール状況も確認できます。

ソースの仮想マシンをエンドポイントとして追加(Azure Network Watcherの接続モニター設定手順)
テストグループの詳細の追加画面に戻ります。
ソースに設定した仮想マシンが表示されていることを確認できます。
ターゲットの選択に進みます。
テストグループの詳細の追加画面でターゲットの選択(Azure Network Watcherの接続モニター設定手順)

ターゲットの追加画面です。
Azureエンドポイントのタブで設定します。
型はVirtual Machinesを選択します。
ターゲットとしてvm-02を選択します。
Add endpointsを選択します。

※ターゲットとなる仮想マシンにはNetwork Watcher拡張機能は必要ありません。

ターゲットの仮想マシンをエンドポイントとして追加(Azure Network Watcherの接続モニター設定手順)
テストグループの詳細の追加画面に戻ります。
ターゲットに設定した仮想マシンが表示されていることを確認できます。
テスト構成の追加に進みます。
テストグループの詳細の追加画面でテスト構成の追加を選択(Azure Network Watcherの接続モニター設定手順)

テスト構成の追加画面です。
テスト構成名を入力します。
プロトコルはHTTP、TCP、ICMPから選択します。
指定するプロトコルによって表示される画面が異なります。
テストの頻度、成功のしきい値を設定します。

※チェックの失敗率、ラウンドトリップ時間などは環境に合わせて調整します。

ラウンドトリップタイム

【プロトコルにICMPを選択した場合】テスト構成の追加画面(プロトコルにICMPを選択した場合)(Azure Network Watcherの接続モニター設定手順)
【プロトコルにHTTPを選択した場合】テスト構成の追加画面(プロトコルにHTTPを選択した場合)(Azure Network Watcherの接続モニター設定手順)
【プロトコルにTCPを選択した場合】テスト構成の追加画面(プロトコルにTCPを選択した場合)(Azure Network Watcherの接続モニター設定手順)

テストグループの詳細の追加画面に戻ります。
テスト構成が追加されていることを確認できます。
テストグループの追加を選択します。

設定後のテストグループの詳細の追加画面(Azure Network Watcherの接続モニター設定手順)
接続モニターの作成のテストグループタブに戻ります。
追加したテストグループが表示されていることを確認できます。
次へ進みます。
テストグループ追加後のテストグループタブ(Azure Network Watcherの接続モニター設定手順)
Workspaceの画面です。
今回は個別のLog Analyticsワークスペースを利用しています。
WorkspaceでCustom Workspaceを選択します。
ワークスペースの構成で、利用するLog Analyticsワークスペースを指定します。
次へ進みます。
接続モニターの作成でのワークスペース選択例(Azure Network Watcherの接続モニター設定手順)

アラートの作成画面です。
アラートルールはデフォルトでは作成されません。
アラートを作成する場合は、アラートの作成にチェックを入れます。
アクショングループを選択します。
確認および作成を選択します。

※この場合、アラートルール名は設定できません。任意のアラートルール名を設定したい場合は、テスト構成時にアラートルールを作成せず、接続モニター作成後にアラートルールを個別に作成します。

 

接続モニターの作成でのアラート作成画面例(Azure Network Watcherの接続モニター設定手順)
アクショングループ選択後のアラート作成画面例(Azure Network Watcherの接続モニター設定手順)
確認および作成画面です。
内容を確認し、問題がなければ作成を選択します。
接続モニターの作成の確認画面例(Azure Network Watcherの接続モニター設定手順)

Azure Network Watcherの接続モニターに表示される内容を確認(テストグループ、テスト構成)

作成した接続モニターを確認

作成した接続モニターを確認します。
接続モニターを作成した後、数分待つと接続状態のステータスが表示されます。

作成した接続モニターを確認
接続モニター、テストグループ、テスト構成などを確認できます。
また、それぞれのステータスも確認可能です。
接続モニターの画面表示例(Azure Network Watcherの接続モニター表示画面例)

接続モニター、テストグループの表示内容を確認

接続モニター、テストグループ、テストグループ内のソースとターゲットの組み合わせを選択した際に表示される内容を確認します。

接続モニターの表示内容を確認
取得内容を表示する接続モニターを選択します。 接続モニターを選択(Azure Network Watcherの接続モニター表示画面例)
概要タブです。
チェックの失敗率やラウンドトリップ時間などを確認できます。
テストグループやテスト構成単位での失敗状況も確認可能です。
接続モニターの概要(Azure Network Watcherの接続モニター表示画面例)
接続モニターの概要(Azure Network Watcherの接続モニター表示画面例)
テストグループ、ソース、ターゲット、テスト構成の各タブでは、それぞれのテストの失敗状況やラウンドトリップ時間などを確認することができます。 テストグループ(Azure Network Watcherの接続モニター表示画面例)
ソース(Azure Network Watcherの接続モニター表示画面例)
ターゲット(Azure Network Watcherの接続モニター表示画面例)
テスト構成(Azure Network Watcherの接続モニター表示画面例)

テストグループを選択した場合です。

テストグループの表示内容を確認
取得内容を表示するテストグループを選択します。 テストグループを選択(Azure Network Watcherの接続モニター表示画面例)
テストグループ単位でのチェックの失敗率やラウンドトリップ時間などを確認できます。 テストグループの概要(Azure Network Watcherの接続モニター表示画面例)
テストグループの概要(Azure Network Watcherの接続モニター表示画面例)

テストグループ内のソースとターゲットの組み合わせを選択した場合です。

テストグループ内の表示内容を確認
取得内容を表示したい、テストグループ内のソースとターゲットの組み合わせを選択します。 テストグループ内のソースとターゲット組み合わせを選択(Azure Network Watcherの接続モニター表示画面例)
チェックの失敗率やラウンドトリップ時間などを確認できます。
また、GUIで接続状況を確認することもできます。
テストグループ内のソースとターゲット組み合わせを選択した場合の表示例(Azure Network Watcherの接続モニター表示画面例)

—広告—

Azure Network Watcherの接続モニターを使った監視

アラートルールの設定内容を確認

接続モニターと同時に作成したアラートルールの設定内容を確認します。
今回は、接続モニターでWindows仮想マシン間のICMP疎通確認テスト構成を作成しています。

アラートルールの設定内容を確認
接続モニター名でアラートルールが作成されていることを確認できます。
シグナル名はTest Resultとなっており、ディメンションなども設定されていることが確認できます。
接続モニター作成と同時に作られたアラートルール(Azure Network Watcherの接続モニターを使った監視設定例)
接続モニター作成と同時に作られたアラートルール(Azure Network Watcherの接続モニターを使った監視設定例)
アラートルールの条件(Azure Network Watcherの接続モニターを使った監視設定例)

※Test Resultのメトリック値は、正常(Pass)の場合は1、失敗(Fail)の場合は3となります。

Windows DefenderファイアウォールでICMP受信設定内容を変更

Windows DefenderファイアウォールでICMPの受信設定を変更します。
今回は、許可から拒否に変更しています。

Windows DefenderファイアウォールのICMP許可設定方法については、こちらで紹介しています。

Windows DefenderファイアウォールでICMPを拒否

管理ツールにあるセキュリティが強化されたWindows Defenderファイアウォールを表示します。
受信の規則にあるコア ネットワーク診断 – ICMP エコー要求 (ICMPv4 受信)を選択します。

Windows DefenderファイアウォールでICMPエコー要求を選択(Azure Network Watcherの接続モニターを使った監視設定例)
プロパティで有効のチェックを外します。

※ICMPの受信を許可する場合は、有効にチェックを入れます。また、接続を許可するを選択します。
Windows DefenderファイアウォールのICMPエコー要求設定を変更(Azure Network Watcherの接続モニターを使った監視設定例)
ICMPエコー要求の受信ルールが無効化されていることを確認します。 設定変更後のICMPエコー要求(Azure Network Watcherの接続モニターを使った監視設定例)

※コア ネットワーク診断 – ICMP エコー要求 (ICMPv6 受信)と選択を間違えないように注意します。

接続モニター、テストグループ、テスト構成のステータス変化を確認

ICMPの疎通が断したため、接続モニターのステータスが成功から失敗に変わっていることが確認できます。

接続モニターのステータス変化を確認
接続モニターのステータスを確認します。
ステータスが失敗に変わっていることを確認できます。
接続モニターのステータス変更を確認(Azure Network Watcherの接続モニターを使った監視設定例)

パフォーマンスメトリックを確認します。
チェックの失敗率が上昇していることを確認できます。
また、テスト構成、ソース、ターゲットもいずれもテスト失敗となっていることも確認できます。

 

テストグループのステータスやチェック失敗率の変化を確認(Azure Network Watcherの接続モニターを使った監視設定例)
テストグループのステータスやチェック失敗率の変化を確認(Azure Network Watcherの接続モニターを使った監視設定例)
テストグループ内のソースとターゲットの組み合わせを選択した場合でも、同様に失敗していることを確認できます。 テストグループ内の各組み合わせのステータスやチェック失敗率の変化を確認(Azure Network Watcherの接続モニターを使った監視設定例)

Azure Monitorで接続モニターに関するアラート検知を確認

接続モニターのアラートが検知されているかを確認します。

Azure Monitorで接続モニターに関するアラート検知を確認
接続モニターに関するアラートが検知されていることを確認できます。 Azure Monitorでのアラート発生を確認(Azure Network Watcherの接続モニターを使った監視設定例)
アラートの詳細を表示して、値の変化やソース、ターゲットの仮想マシン名などを確認できます。 アラート発生したアラートの詳細を確認(Azure Network Watcherの接続モニターを使った監視設定例)

※Test Resultのメトリック値は、正常(Pass)の場合は1、失敗(Fail)の場合は3となります。

送信されたアラートメールを確認

Azure Monitorから送信された接続モニターに関するアラートメールを確認します。
今回は、接続モニター作成時にアラート設定を有効化し、メールでアラート通知が送信されるように設定しています。

アラートメールを確認
接続モニターに関するアラートメールの例です。
Dimensionsの各項目から、アラートの原因となったテストグループやテスト構成などの詳細を確認できます。
受信したアラートメールの例(Azure Network Watcherの接続モニターを使った監視設定例)
受信したアラートメールの例(Azure Network Watcherの接続モニターを使った監視設定例)

ICMPの疎通復旧後に接続モニターのステータスが変化していることを確認

Windows DefenderファイアウォールでICMPの受信設定を、拒否から許可に変更します。
接続モニターのステータスが成功に戻っていることを確認できます。

接続モニターのステータス変化を確認
接続モニターのステータスが成功に戻っていることを確認できます。 NW疎通復旧後のステータス表示例(Azure Network Watcherの接続モニターを使った監視設定例)
アラートの条件も解決済みとなっていることが確認できます。
NW疎通復旧後のアラート例(Azure Network Watcherの接続モニターを使った監視設定例)
NW疎通復旧後のアラート詳細例(Azure Network Watcherの接続モニターを使った監視設定例)

接続モニターで収集されるログはLog Analyticsワークスペースで確認できる

接続モニターが収集するテスト結果などの監視データは、Log Analytics ワークスペースに格納されます。
接続モニターの作成時に指定した Log Analytics ワークスペースで、KQLクエリを使用して検索・分析できます。

なお、接続モニターのテスト結果については、NWConnectionMonitorTestResultのテーブルに保管されます。
ログは、テスト単位で記録され、監視間隔ごとに収集されます。

接続モニターのログを確認
収集されたログから、接続モニターで取得されているデータの内容を確認することができます。
テスト結果やラウンドトリップ時間なども確認できます。
Log Analyticsワークスペースに収集されたログの例(Azure Network Watcherの接続モニターを使った監視設定例)

※NWConnectionMonitorPathResultというテーブルもありますが、こちらは経路(トポロジ)ごとのホップ結果を示すものとなります。主に接続モニターのステータスに変化があった場合に記録されます。

—広告—

接続モニターのテストグループを無効化する手順

Azure Network Watcherの接続モニターで、テストグループを無効化する場合の手順です。

テストグループの無効化手順
接続モニターやテストグループにある編集を選択します。

※画面例はテストグループの場合です。
編集を選択(Azure Network Watcherの接続モニターのテストグループを無効化する場合の手順)
接続モニターの編集画面が表示されます。
テストグループのタブを選択します。
無効化するテストグループを選択します。
無効化するテストグループを選択(Azure Network Watcherの接続モニターのテストグループを無効化する場合の手順)
テストグループの詳細の追加画面が表示されます。
テストグループの無効化にチェックを入れます。
テストグループの更新を選択します。
テストグループの無効化にチェックを入れる(Azure Network Watcherの接続モニターのテストグループを無効化する場合の手順)
テストグループの状態が無効になっていることを確認できます。
確認と更新を選択します。
テストグループの状態が無効化になっていることを確認(Azure Network Watcherの接続モニターのテストグループを無効化する場合の手順)
確認と更新の画面が表示されます。
テストグループの状態が無効になっていることを確認します。
更新を選択します。
これでテストグループを無効化することができます。
接続モニターの設定を更新(Azure Network Watcherの接続モニターのテストグループを無効化する場合の手順)
接続モニターのStatusが実行されていないに変わっていることを確認できます。 接続モニターで無効化されたテストグループを表示した場合の例(Azure Network Watcherの接続モニターのテストグループを無効化する場合の手順)

—広告—

最後に

今回は、Azure Network Watcherの接続モニターの設定手順やアラートルール作成手順について確認しました。
死活監視、ポート監視、URL監視など幅広い用途で利用できることがわかりました。
ラウンドトリップタイム(RTT)などの応答速度も確認できるため、ネットワークの遅延も把握できます。
設定が簡単で便利に使える機能だと感じました。

引き続き、いろいろな機能を試してみたいと思います。

スポンサーリンク