JavaScriptを有効にしてください

VM Watch を試し隊

 ·   4 分で読めます  ·   Kento

2024/10 にパブリック プレビューになった VM watch を試してみました
Azure updates | Microsoft Azure

VM watch とは

VM Watch は Azure の仮想マシン/仮想マシン スケールセットを監視する仕組みを提供します
AIOps エンジンが使われているそうです
よくわかりませんがすごそうです

仮想マシン/仮想マシン スケールセットが正常化どうかの判断のためにいくつかのテストが付属しているそうです
例:アウトバウンド接続ができるか、DNS が正常かなど
詳しくは公開情報を見てください
Azure VM ウォッチ - Azure Virtual Machines | Microsoft Learn

VM Watch は Application Health 拡張機能を介して提供するとのことで、純粋な Application Health とは少し違うようです
Application Health 拡張機能は以前に試してみました
Azure VM で Application Health 拡張機能を試し隊 – クラウドを勉強し隊

ざっくり手順

  1. プレビュー機能の有効化
  2. VM の作成
  3. VM Watch のインストール
  4. 正常性の確認
  5. ログの確認

1. プレビュー機能の有効化

執筆時はプレビュー機能なので、有効化が必要です

1
2
az feature register --name VMWatchPreview --namespace Microsoft.Compute --subscription <your subscription id>
az provider register --namespace Microsoft.Compute --subscription <your subscription id>

有効化ができたかどうかはこのコマンドで確認ができます

1
az feature show --namespace Microsoft.Compute --name VMWatchPreview --subscription <your subscription id>

実行結果はこのようになります

1
2
3
4
5
6
7
8
9
az feature show --namespace Microsoft.Compute --name VMWatchPreview --subscription xxxxxxxxxxxxxxxxxxxxxx
{
  "id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxx/providers/Microsoft.Features/providers/Microsoft.Compute/features/VMWatchPreview",
  "name": "Microsoft.Compute/VMWatchPreview",
  "properties": {
    "state": "Registered"
  },
  "type": "Microsoft.Features/providers/features"
}

2. VM の作成

続いて VM を作成します
今回は Widnwos Server 2022 を作成しました

3. VM Watch のインストール

VM Watch をインストールします
執筆時点では CLI、PowerShell、ARM テンプレートが利用できるようです
今回は PowerShell を利用しました
下記のコマンドをカスタマイズして実行します

項目 内容
your extension name 表示上の名前なので、おそらくなんでも OK
application health extension type Windows の場合:“ApplicationHealthWindows”
application health extension type Linux の場合:“ApplicationHealthLinux”
1
Set-AzVMExtension -ResourceGroupName "<your resource group>" -Location "<your vm region>" -VMName "<your vm name>" -Name "<your extension name>" -Publisher "Microsoft.ManagedServices" -ExtensionType "<application health extension type>" -TypeHandlerVersion "2.0" -Settings @{"vmWatchSettings" = @{"enabled" = $True}} -EnableAutomaticUpgrade $True

実行すると下記のような結果が返ってきます

image01
VM Watch インストール結果:

Azure Portal で VM のメニューから Application Health 拡張機能を確認すると、Rich Health States がインストールされていることがわかります

image02
Application Health 拡張機能:

拡張機能のメニューから VM Watch のインストールが確認できます
なお、vmwatch という表示名はインストール時に勝手に決めたものです

image03
拡張機能:

VM の JSON 情報を確認すると、Application Health 拡張機能の設定で VM Watch が有効化されていることがわかります

image05
VM の JSON 情報:

4. 正常性の確認

通常の Application Health 拡張機能と同じように、正常性の確認ができます
Rich Health States では正常である応答にはメッセージが必要でした
今回の Windows Server にはそのような設定はいれていませんが、正常のステータスが返ってきています
おそらく VM Watch が正常に動作していることを示しているのだと思います

image04
正常性の状態:

5. ログの確認

VM にログインして、ログを確認します
Application Health 拡張機能のログと同じように、C:\WindowsAzure\Logs\Plugins\Microsoft.ManagedServices.ApplicationHealthWindows にログが出力されています

image06
ログの確認:

AppHealthExtension.log を見てみます
赤色のハイライトが VM Watch に関するログで、緑色のハイライトが Application Health のステータスに関するログです
赤色のハイライトを見ると VM Watch が正常に動作していることがわかります
緑色のハイライトを見ると、Rich Health States であるので5秒の猶予期間が設けられたりしていることがわかります

image07
ログの確認:

vmwatch.log を見てみます
一番初めに設定ファイルを読んでいるログがありますが、設定ファイルは存在していません
執筆時点でも設定ファイルの作成方法などは公開情報に書かれていません
しかし、公開情報を見ていると下記の記載があります

すぐに使用可能: VM ウォッチには一連の既定のテストが付属しており、シナリオ固有のテストを有効にするために簡単に構成できます。 テストに関する詳細な情報 (チェック、メトリック、イベント ログ) が提供されます。

この一連の既定のテストがオン・オフができる気がしますが、まだプレビューということもあり特に言及はされていません

image08
ログの確認:

それ以外の部分はディスクの IO だったり、プロセッサだったりのログが取れていそうです
が、公開情報に記載のあるテスト内容をすべて記録しているようには見えませんでした
数分間のログしか見ていないのでテストの頻度が低いのかもしれませんし、プレビューで機能が制限されているのかもしれません

image09
ログの確認:

まとめ

VM Watch を試してみました
インストールはコマンド1つでめっちゃ簡単でした
ログの確認もできたので、これだけで一連の正常性が確認できるならめっちゃ便利そうです

あとは、設定ファイルの作成方法やテストの設定方法などが公開されることを期待しています

参考

共有

Kento
著者
Kento
2020年に新卒で IT 企業に入社. インフラエンジニア(主にクラウド)として活動中