こんにちは。佐藤です。今回は、去年 10 月にパブリック プレビューされた VM watch の機能を実際に触ってみたので、そちらについて記載していきます。
VM watch は、2024 年 10 月 17 日にパブリック プレビューされた機能です。
VM watch とは、仮想マシン (VM) と仮想マシン スケール セット (VMSS) に対して、その正常性を監視する機能です。
従来の正常性監視では、それぞれの監視項目に対して、別々のリソースや機能を使用する必要がありました。
また、VM watch は、VM 拡張機能を通じてコマンド 1 つで簡単に設定できるという、導入の容易さに大きな特徴があります。
監視の範囲の詳細は、こちらの詳細情報をご覧ください。
まず、プレビュー機能の有効化を行います。有効化には Azure CLI を使って、次のコマンドを実行します。
有効化が正常にできているかは、以下のコマンドで確認します。
また、今回 VM watchをインストールする VMSS または VM を作成します。今回は、以下のような VM を機能検証のために作成しました。
コンピュータ名 : VMwatch-test-vm
OS : Windows (Windows Server 2022 Datacenter)
サイズ : Standard B2ms (2 vcpu 数、8 GiB メモリ)
リージョン : Japan East
以下のコマンドで VM watch をインストールします。現在、CLI、PowerShell、ARM テンプレートが利用できますが、今回は PowerShell を用いて設定します。
なお、ExtensionType を除き、Windows と Linux の両方で同じです。
※Application Health extension インストールした場合は、autoUpgradeMinorVersion と enableAutomaticUpgrade の設定を true に設定するか、Application Health extension の削除が必要です。
VM watch の設定自体はこのコマンド 1 つで終了です。
設定された VM watch が、どのようなログを生成しているのかを確認します。
まず VM に RDP 接続をし、実際の出力されているログを確認します。
C:\WindowsAzure\Logs\Plugins\Microsoft.ManagedServices.ApplicationHealthWindows\<version>\vmwatch に VM watch 機能が動作する際のログファイルが存在します。
こちらは自動で格納されていくようです。
内容を確認してみると、以下の画像のように、CPU、disk、プロセスなどに関する動作確認も行っているようですが、具体的な値などの監視の内容を出力されてはいません。
具体的な監視の内容に関しては、C:\WindowsAzure\Logs\Plugins\Microsoft.ManagedServices.ApplicationHealthWindows\Events に存在します。
このパスの配下に “tmp” という名前のフォルダが存在し、JSONTMP 形式のファイルで一時的に生成されているのが確認できました。
ログの中身に関しては、繰り返しが多くデータが冗長な構成となっています。このログは機械が読み込むために存在し、実際に人が参照するのを目的としていないと想像されます。
最後に、異常系の場合の VM watch の挙動を確認します。
VM watch が正常に作動している場合は、Azure portal 上の「概要」ページで確認できます。
異常系の場合の挙動を確認するために、インターネット接続を切断します。
今回は VM に RDP 接続後、イーサネットを無効化しました。
VM を再起動後に再び Azure portal 上を確認してみると、「概要」ページで異常の確認できました。
それ以外の portal 上の変化は、特に見られませんでした。
いかがでしたか。実際に使用してみて感じた、メリット/デメリットは以下の通りです。
メリット
・コマンド 1 つという容易さで導入できる
・ネットワーク、CPU、ディスク等の複数項目を監視できる
デメリット
・具体的な監視内容を確認するには手間がかかる
・ログの中身を確認しにくい
・監視内容が異常の場合、原因を簡単に特定できない
また、現在プレビュー段階であり、今後機能追加などの改良が期待できます。
現状の仕様で具体的な監視内容を確認するには、RDP 接続をしてログファイルを参照するという、手間がかかる仕様になっています。
監視内容を簡単に確認できる改良、例えば Azure portal 上でログの値が確認できるといった改良があれば便利であると感じました。
また、監視内容が異常の場合、その内容を特定できる仕様ではありません。
異常内容を簡単に把握できる改良、例えばログ データを基にアラート ルールを簡単に設定できるといった改良などがあれば便利であると感じました。
改良次第では、コマンド 1 つで広範囲の監視を行い、異常がある場合は原因を簡単に把握できる、とても優れた機能になるのではと感じました。