Azure 仮想マシン診断機能について
みなさん、こんにちは。Azure テクニカルサポートの平原です。本トピックでは、よくご質問で頂く、Azure 仮想マシン診断機能について、ご紹介をしようと思います。少しでもお役に立てば幸いです。
※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。
目次
- 仮想マシンの診断機能とは
- 診断機能の仕組み
- 仮想マシンの診断機能の有効化
- 注意点
※本ドキュメントは「リソースマネージャモード」をベースに記載しています。
仮想マシンの診断機能とは
診断機能は、Azure が登場した当初 (ホステッドサービス) から診断のためのツールとしてバージョンを経ながら進化をしてきました。マイクロソフトの各サービスについても、形を変えていますが、基本的には同じコア技術を用いて診断情報の収集をしており、長く受け継がれてきた技術をベースにしています。また、この機能を使うことによって、ユーザーは仮想マシンの各種ログを収集し、さらにアラートの設定などもすることができます。
仮想マシンの診断機能については、以下のような情報を収集することができます。
Windows の場合
- 基本メトリック
- ネットワークメトリック
- .NET メトリック
- ASP.NET メトリック
- SQL メトリック
- Windows イベント システム ログ
- Windows イベント セキュリティ ログ
- Windows イベント アプリケーション ログ
- 診断インフラストラクチャ ログ
- IIS ログ
- 起動の診断
がついているものは、診断機能を有効にした場合、既定で有効化されます。また、仮想マシンの診断設定のブレードでは、メトリック情報の横に「1時間 1分」というような記述もありますが、これは、各種データの集計が1時間単位、1分単位での集計情報も収集することを意味しています。
これらのデータは、ストレージサービスのブロブサービス・テーブルサービスに各種診断情報が保存されるため、診断情報を保存するためのストレージアカウントの設定も必要になります。
診断機能の仕組み
診断機能は、常駐エージェントタイプの診断収集機能です。そのため、仮想マシンの診断用のエージェントプロセスが仮想マシン内部に常駐し、情報を収集してストレージサービスに収集情報を保存しています。また、仮想マシンの拡張機能の1つとして提供されていますが、仮想マシンの診断機能を有効化すると、診断機能の拡張機能が有効化されます。
拡張機能の種類としては、”Microsoft.Azure.Diagnostics.IaaSDiagnostics” という拡張機能としてインストールされています。拡張機能は、Azure 仮想マシンにインストールされている VM Agent を通してインストールされますので、VM Agentが入っていない仮想マシンではインストール・利用ができません。また、当該拡張機能は、インターネット経由でインストールされるため、該当の仮想マシンがインターネットにつなげないような環境の場合は、有効化はできません。(こちらに参考情報があるためご参照ください → 仮想マシンにおけるプロビジョニングの失敗エラー)
診断機能の拡張機能が無事仮想マシンにインストールされると、以下のフォルダに診断用のエージェントがインストールされます。
C:\Packages\Plugins\Microsoft.Azure.Diagnostics.IaaSDiagnostics\<バージョン番号>\
診断機能が有効化されている場合、DiagnosticsPlugin.exe / MonAgent*.exe が起動されます。
これらプロセスを通して、パフォーマンスログ情報、イベントログ情報が収集されストレージサービスに保存がされてます。ストレージサービス側を見てみると、以下のような情報が保存されています。Microsoft Azure Storage Explorer で見てもらうと、以下の通り WAD* という名前が先頭についているテーブルができているのを確認できます。直接各テーブルを見ることでも、情報が収集されていることが確認可能です。
参考:仮想マシンに既定で設定されているグラフ
仮想マシンを作成すると、既定でグラフが表示されていますが、このグラフは診断機能が設定されていなくても、表示されています。これは診断機能のものではなく、仮想マシンのホストサーバーから直接取得しているデータです。
ホストサーバー以外の診断機能が出したグラフについては、仮想マシンブレードの「メトリック」の箇所から確認が可能です。
メトリックの [Host] と名前の先頭についているものがホストサーバーからのデータになります。上記グラフのものは、診断機能で仮想マシン内部から収集している CPU usage time です。
仮想マシンの診断機能の有効化
仮想マシンの作成時、作成後、いづれかのタイミングで診断機能は有効化可能です。
仮想マシン作成時
仮想マシンを作成する際に、診断の有効化ができますので、「有効」を選択ください。その際に、診断情報を保存するためのストレージアカウントの設定画面が出てきますので、必要に応じてご指定ください。
仮想マシン作成後
対象の仮想マシンのブレードにて、「診断設定」をクリックして有効化可能です。
注意点
仮想マシンの診断機能を使う際にはいくつか注意点がありますので、以下ご参考ください。
診断機能を利用の際にはインターネットが必要
仮想マシンの診断機能は仮想マシンの拡張機能として、パッケージをダウンロードしてインストールします。そのため、インストールの際にはインターネットの接続環境が必要です。また、診断機能は、収集したログをストレージサービスに保存するため、利用の観点からも仮想マシン内部からインターネットに接続できる環境が必要です。
ログの削除
収集された各種ログは、ストレージサービスのテーブルおよびブロブに保存されますが、定期的な削除はされず自動的に削除されません。そのため、もし必要があれば、利用者側で適宜削除の実施の必要があります。テーブル・ブロブの内部データを適宜削除もできますし、コンテナ名・テーブル名ごと削除いただいくこともできます。テーブル名ごと削除した場合には、次のデータのアップデートのタイミングで削除されたコンテナ・テーブルが再作成されます。
診断機能の無効化
診断機能は [診断設定] の箇所からオフにしていただくか、[拡張機能] の Microsoft.Azure.Diagnostics.IaaSDiagnostics を削除していただくことでも無効化することができます。ただし、無効化の際には、仮想マシン内部に展開されている拡張機能をアンインストールする必要があるため、仮想マシンの OS が起動した状態でしか実行はできません。