本文へ移動します

クラウドエンジニアブログ

VM watch を使ってみた

佐藤 慧太郎

こんにちは。佐藤です。今回は、去年 10 月にパブリック プレビューされた VM watch の機能を実際に触ってみたので、そちらについて記載していきます。


はじめに

VM watch は、2024 年 10 月 17 日にパブリック プレビューされた機能です。

VM watch とは、仮想マシン (VM) と仮想マシン スケール セット (VMSS) に対して、その正常性を監視する機能です。
従来の正常性監視では、それぞれの監視項目に対して、別々のリソースや機能を使用する必要がありました。

VM watch を用いると、他のリソースや機能を用いずとも、上記の監視項目を含む広範囲の監視を行う事ができます。

また、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 のインストール

以下のコマンドで 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 形式のファイルで一時的に生成されているのが確認できました。

画像では MachineTotalCpuUsage のログが確認できますが、公式ドキュメントに記載されているその他の値に関しても、確認することができました。

ログの中身に関しては、繰り返しが多くデータが冗長な構成となっています。このログは機械が読み込むために存在し、実際に人が参照するのを目的としていないと想像されます。

最後に、異常系の場合の VM watch の挙動を確認します。

VM watch が正常に作動している場合は、Azure portal 上の「概要」ページで確認できます。

異常系の場合の挙動を確認するために、インターネット接続を切断します。

今回は VM に RDP 接続後、イーサネットを無効化しました。

 

VM を再起動後に再び Azure portal 上を確認してみると、「概要」ページで異常の確認できました。
それ以外の portal 上の変化は、特に見られませんでした。

まとめ

いかがでしたか。実際に使用してみて感じた、メリット/デメリットは以下の通りです。

メリット
・コマンド 1 つという容易さで導入できる
・ネットワーク、CPU、ディスク等の複数項目を監視できる

デメリット
・具体的な監視内容を確認するには手間がかかる
・ログの中身を確認しにくい
・監視内容が異常の場合、原因を簡単に特定できない
 

従来 VM の正常性を把握するためには、複数のリソースや機能を使用する必要がありました。
監視内容の詳細さという点では、それぞれの項目に対して他リソースや機能を用いた場合に劣りますが、容易な導入で広範囲を監視できるという点は、非常に優れた機能であると感じました。
現在は、詳細さは多少欠けるとしても手軽に広範囲をチェックしたい、という用途には適していると思います。

また、現在プレビュー段階であり、今後機能追加などの改良が期待できます。

現状の仕様で具体的な監視内容を確認するには、RDP 接続をしてログファイルを参照するという、手間がかかる仕様になっています。
監視内容を簡単に確認できる改良、例えば Azure portal 上でログの値が確認できるといった改良があれば便利であると感じました。

また、監視内容が異常の場合、その内容を特定できる仕様ではありません。
異常内容を簡単に把握できる改良、例えばログ データを基にアラート ルールを簡単に設定できるといった改良などがあれば便利であると感じました。

改良次第では、コマンド 1 つで広範囲の監視を行い、異常がある場合は原因を簡単に把握できる、とても優れた機能になるのではと感じました。


お問い合わせ

製品・サービスに関するお問い合わせはお気軽にご相談ください。

ピックアップ

セミナー情報
クラウドエンジニアブログ
NOZ
メールマガジン登録