Azure Virtual Machines を監視する

この記事では、次の内容について説明します。

  • このサービスに対して収集できる監視データの種類。
  • そのデータを分析する方法。

Note

このサービスや Azure Monitor を既に使い慣れていて、監視データの分析方法だけを確認したい場合は、この記事で後述する分析に関するセクションをご覧ください。

Azure リソースに依存するクリティカルなアプリケーションやビジネス プロセスがある場合は、システムを監視し、そのアラートを受け取る必要があります。 Azure Monitor サービスでは、システムのすべてのコンポーネントからメトリックとログを収集して集計します。 Azure Monitor を使用すると、可用性、パフォーマンス、回復性を視覚化し、問題に関する通知を受け取ることができます。 Azure portal、PowerShell、Azure CLI、REST API、またはクライアント ライブラリは、監視データの設定および表示に使用できます。

この記事では、Azure 仮想マシン (VM) の正常性とパフォーマンスを監視する方法の概要について説明します。

Note

この記事では、Azure Virtual Machines の監視を開始するのに役立つ基本情報を提供します。 Azure とハイブリッド仮想マシンの環境全体を監視するための完全なガイドについては、仮想マシンのデプロイの監視に関するガイドを参照してください。

概要: VM ホストとゲストのメトリックとログを監視する

VM ホスト (VM を作成および管理する物理サーバーとハイパーバイザー) と、VM ゲスト (VM 内で実行されるオペレーティング システムとアプリケーションを含む) からメトリックとログを収集できます。

ホスト レベルのデータを使うと、VM の全体的なパフォーマンスと負荷を把握でき、ゲスト レベルのデータを使うと、マシンで実行されているアプリケーション、コンポーネント、プロセスと、そのパフォーマンスや正常性を把握できます。 たとえば、パフォーマンスの問題をトラブルシューティングする場合は、最初にホスト メトリックで負荷が高い VM を確認してから、ゲスト メトリックを使って、オペレーティング システムとアプリケーションのパフォーマンスの詳細にドリルダウンすることがあります。

VM ホスト データ

VM のホスト データは、追加のセットアップなしで使用できます。

シナリオ 詳細 データ コレクション 使用できるデータ 推奨事項
VM ホストのメトリックとログ VM が実行されている物理ホストの安定性、正常性、効率性を監視します。
アプリケーションの負荷に基づいてスケールアップまたはスケールダウンします。
既定では、追加のセットアップなしで使えます。 主要なホスト メトリックが予想されるベースライン値から逸脱したときに通知されるように、推奨されるアラート ルールを有効にします。

VM ゲスト データ

VM ゲスト データを使うと、VM で実行されているワークロードのパフォーマンスと運用効率の分析とトラブルシューティングを行うことができます。 VM ゲスト データを監視するには、VM に Azure Monitor エージェントをインストールして、データ収集ルール (DCR) を設定する必要があります。 VM の分析情報機能は、すばやく簡単なオンボードのため、VM に Azure Monitor エージェントを自動的にインストールして既定のデータ収集ルールを設定します。

シナリオ 詳細 データ コレクション 使用できるデータ 推奨事項
基本的な監視: 主要業績評価指標 定義済みの基本的な主要パフォーマンス カウンターのセットを収集して、オペレーティング システムのパフォーマンス (CPU とディスクの使用率など)、使用可能なメモリ、ネットワーク パフォーマンスに関連する問題を特定します。 VM Insights を有効にする 定義済みの主要なゲスト パフォーマンス カウンターのセット
  • 開始点として使います。
  • 推奨される VM の Azure Monitor ベースライン アラートを有効にします。
  • 必要に応じて、関心のあるゲスト パフォーマンス カウンターと推奨されるオペレーティング システム ログを追加します。
基本的な監視: アプリケーション コンポーネントのマッピング 特定の VM および VM 群全体でアプリケーション コンポーネントをマップし、アプリケーション コンポーネント間に存在する依存関係を検出します。

この情報は、トラブルシューティング、パフォーマンスの最適化、アプリケーション インフラストラクチャの変更または更新の計画にとって重要です。
VM の分析情報のマップ機能を有効にする VM で実行されているアプリケーション コンポーネント間の依存関係
VM オペレーティング システムのメトリックとログ (推奨) アプリケーションのパフォーマンスとイベント、特定のアプリケーションとプロセスによるリソース消費量、オペレーティング システム レベルのパフォーマンスとイベントを監視します。

このデータは、アプリケーション固有の問題のトラブルシューティング、VM 内でのリソース使用の最適化、VM 内で実行されているワークロードの最適なパフォーマンスの実現にとって重要です。
VM に Azure Monitor エージェントをインストールし、DCR を設定します。
  • Windows では、アプリケーション ログはクリティカルエラー警告 のレベルで収集されます。
  • Linux では、LOG_WARNING レベルで LOG_SYSLOG 機能ログを収集します。
詳細/カスタム VM ゲスト データ Web サーバー、Linux アプライアンス、VM から収集する任意の種類のデータの監視。 VM に Azure Monitor エージェントをインストールし、DCR を設定します。

VM insights

VM Insights は、Azure とハイブリッド仮想マシンを 1 つのインターフェイスで監視します。 VM Insights には、Azure Monitor で VM を監視するための次の利点があります。

  • 仮想マシン (VM) のゲスト オペレーティング システムとワークロードを監視できるようにするための、Azure Monitor エージェントと Dependency Agent の簡単なオンボード。
  • パフォーマンス データの最も一般的なセットを収集する定義済みのデータ収集ルール。
  • 仮想マシンのゲスト オペレーティング システムからコア パフォーマンス メトリックを分析できるようにするための、事前に定義された傾向を示すパフォーマンス グラフとブック。
  • 各仮想マシンで実行されているプロセスと、他のマシンや外部ソースと相互接続されたコンポーネントを表示する依存関係マップ。

VM insights の [論理ディスク パフォーマンス] ビューのスクリーンショット。

VM insights の [マップ] ビューのスクリーンショット。

仮想マシンの VM insights を有効にする方法については、「チュートリアル: Azure 仮想マシンに対する VM insights での監視を有効にする」をご覧ください。 insights の有効化と、VM をオンボードするためのさまざまな方法に関する一般的な情報については、「VM insights の有効化の概要」を参照してください。

VM insights を有効にすると、Azure Monitor エージェントがインストールされ、定義済みのパフォーマンス データセットの Azure Monitor ログへの送信が開始されます。 イベントやその他のパフォーマンス データを収集するための、その他のデータ収集ルールを作成できます。 Azure Monitor エージェントをインストールし、収集するデータを定義するデータ収集ルール (DCR) を作成する方法については、「チュートリアル: Azure 仮想マシンからゲストのログとメトリックを収集する」をご覧ください。

データ ストレージ

Azure Monitor の場合:

  • メトリック データは、Azure Monitor メトリック データベースに保存されます。
  • ログ データは、Azure Monitor ログ ストアに保存されます。 Log Analytics は、Azure portal のツールの 1 つであり、このストアに対してクエリを実行することができます。
  • Azure アクティビティ ログは、Azure Portal 内の独自のインターフェイスを持つ別のストアです。

必要に応じて、メトリックおよびアクティビティ ログ データを Azure Monitor ログ ストアにルーティングできます。 次に、Log Analytics を使用してデータのクエリを実行し、他のログ データと関連付けることができます。

多くのサービスで診断設定を使用して、メトリックとログ データを Azure Monitor の外部の他のストレージの場所に送信できます。 たとえば、Azure Storage、ホステッド パートナー システムEvent Hubs を使用する Azure 以外のパートナー システムなどがあります。

Azure Monitor によるデータの保存方法の詳細については、「Azure Monitor データ プラットフォーム」を参照してください。

Azure Monitor プラットフォームのメトリック

Azure Monitor により、ほとんどのサービスに関するプラットフォーム メトリックが提供されます。 これらのメトリックは次のとおりです。

  • 名前空間ごとに個別に定義されます。
  • Azure Monitor 時系列メトリック データベースに保存されます。
  • 軽量であり、凖リアルタイムのアラートをサポートできます。
  • リソースのパフォーマンスを時間の経過と共に追跡するために使用されます。

収集: Azure Monitor では、プラットフォーム メトリックを自動的に収集します。 構成は必要ありません。

ルーティング: また、通常は、プラットフォーム メトリックを Azure Monitor ログまたは Log Analytics にルーティングして、他のログ データを使用してクエリを実行することもできます。 詳細については、「メトリック診断設定」を参照してください。 サービスの診断設定を構成する方法については、「Azure Monitor で診断設定を作成する」を参照してください。

Azure Monitor ですべてのリソースに対して収集できるすべてのメトリックの一覧については、Azure Monitor でサポートされるメトリックに関する記事を参照してください。

Azure VM のプラットフォーム メトリックには、CPU、ネットワーク、ディスク使用率などの重要なホスト メトリックが含まれます。 ホスト OS メトリックは、ゲスト オペレーティング システム (ゲスト OS) セッションをホストしている Hyper-V セッションに関連しています。

VM で実行されるゲスト OS のメトリックは、ゲスト OS 上で、またはゲスト OS の一部として実行される 1 つ以上のエージェント (Azure Monitor エージェントなど) を通じて収集する必要があります。 ゲスト OS メトリックには、ゲストの CPU 使用率またはメモリ使用量を追跡するパフォーマンス カウンターが含まれます。これらは、どちらも自動スケーリングまたはアラートに頻繁に使用されます。 詳細については、ゲスト OS とホスト OS のメトリックに関するページを参照してください。

Azure Monitor エージェントが VM 監視データを収集する方法の詳細については、「Azure Monitor で仮想マシンを監視する: データの収集」を参照してください。

Virtual Machines で使用可能なメトリックの一覧については、Virtual Machines 監視データ リファレンスに関するページを参照してください。

Azure activity log

アクティビティ ログには、Azure リソースごとに操作を追跡する、そのリソースの外から見たサブスクリプションレベルのイベント (新しいリソースの作成や仮想マシンの起動など) が含まれます。

収集: アクティビティ ログ イベントは、Azure portal で表示するために、個別のストアに自動的に生成および収集されます。

ルート指定: アクティビティ ログ データを Azure Monitor ログに送信して、他のログ データと共に分析できます。 Azure Storage、Azure Event Hubs、特定の Microsoft 監視パートナーなど、その他の場所も利用できます。 アクティビティ ログをルーティングする方法の詳細については、Azure アクティビティ ログの概要に関するページをご覧ください。

データ収集ルール

データ収集ルール (DCR) は、Azure Monitor エージェントからのデータ収集を定義し、Azure サブスクリプションに保存されます。 VM の場合、DCR は収集するイベントやパフォーマンス カウンターなどのデータを定義し、データを送信する Log Analytics ワークスペースなどの場所を指定します。 1 つの VM を複数の DCR に関連付けることができ、1 つの DCR を複数の VM に関連付けることができます。

VM insights の DCR

VM insights は、クライアント オペレーティング システムの一般的なパフォーマンス カウンターを収集し、Log Analytics ワークスペースの InsightsMetrics テーブルに送信する DCR を作成します。 収集されるパフォーマンス カウンターの一覧については、「VM insights からログをクエリする方法」を参照してください。 VM ごとに新しい DCR を作成する代わりに、この DCR を他の VM で使えます。

必要に応じて、プロセスと依存関係の収集を有効にすることもできます。これにより、次の表が設定され、VM insights のマップ機能が有効になります。

  • VMBoundPort: マシン上の開いているサーバー ポートのトラフィック
  • VMComputer: マシンのインベントリ データ
  • VMConnection: マシンとの間の受信と送信の接続のトラフィック
  • VMProcess: マシン上で実行されているプロセス

監視データを分析する

監視データを分析するためのツールは多数あります。

Azure Monitor ツール

Azure Monitor は、次の基本的なツールをサポートします。

より複雑な視覚化を可能にするツールは次のとおりです。

  • ダッシュボードを使用すると、さまざまな種類のデータを組み合わせて、Azure portal 内の 1 つのペインに表示できます。
  • ブック。Azure portal で作成できるカスタマイズ可能なレポート。 ブックには、テキスト、メトリック、ログ クエリを含めることができます。
  • Grafana。運用ダッシュボードに優れたオープン プラットフォーム ツール。 Grafana を使用して、Azure Monitor 以外の複数のソースからのデータを含むダッシュボードを作成できます。
  • Power BI。さまざまなデータ ソースにわたって対話型の視覚化を提供するビジネス分析サービス。 Azure Monitor からログ データを自動的にインポートするように Power BI を構成して、これらの視覚化を利用できます。

Azure Monitor エクスポート ツール

次の方法を使用して、Azure Monitor から他のツールにデータを取得できます。

Azure Monitor 用 REST API の使用を開始するには、「Azure 監視 REST API のチュートリアル」を参照してください。

Kusto クエリ

Kusto クエリ言語 (KQL) を使用して、Azure Monitor ログ/Log Analytics ストアの監視データを分析できます。

重要

ポータルでサービスのメニューから [ログ] を選択すると、クエリ スコープが現在のサービスに設定された状態で Log Analytics が開きます。 このスコープは、ログ クエリにその種類のリソースのデータのみが含まれることを意味します。 他の Azure サービスのデータを含むクエリを実行する場合は、[Azure Monitor] メニューから [ログ] を選択します。 詳細については、「Azure Monitor Log Analytics のログ クエリのスコープと時間範囲」を参照してください。

いずれかのサービスに関する一般的なクエリの一覧については、Log Analytics クエリ インターフェイスに関するページを参照してください。

VM から収集したログ データを分析するには、Log Analyticsログ クエリを使えます。 VM 用の複数の組み込みクエリを使うか、独自のクエリを作成できます。 これらのクエリの結果を対話的に操作したり、ブックに含めて他のユーザーが使用できるようにしたり、結果に基づいてアラートを生成したりすることができます。

VM の組み込みの Kusto クエリにアクセスするには、VM の Azure portal ページの左側にあるナビゲーションの [監視] セクションで [ログ] を選択します。 [ログ] ページで [クエリ] タブを選択し、実行するクエリを選択します。

Log Analytics クエリの結果が表示されている [ログ] ペインのスクリーンショット。

警告

Azure Monitor のアラートにより、監視データで特定の状態が見つかったときに事前に通知を受け取ります。 アラートにより、ユーザーが気付く前に、管理者が問題を識別して対処できます。 詳細については、Azure Monitor アラートに関するページを参照してください。

Azure リソースに関する一般的なアラートのソースは数多くあります。 Azure リソースに関する一般的なアラートの例については、ログ アラート クエリのサンプルに関するページをご覧ください。 Azure Monitor ベースライン アラート (AMBA) サイトには、重要なプラットフォーム メトリック アラート、ダッシュボード、ガイドラインを実装するための半自動化された方法が用意されています。 このサイトは、Azure ランディング ゾーン (ALZ) の一部であるすべてのサービスを含む、Azure サービスの継続的に拡張されるサブセットに適用されます。

共通アラート スキーマを使用すると、Azure Monitor のアラート通知の使用を標準化できます。 詳細については、「共通アラート スキーマ」をご覧ください。

アラートの種類

Azure Monitor データ プラットフォームでは、任意のメトリックまたはログ データ ソースに対してアラートを生成できます。 監視するサービスと収集する監視データに応じて、さまざまな種類のアラートがあります。 アラートの種類に応じて、さまざまな利点と欠点があります。 詳細については、適切な種類の監視アラートの選択に関するページをご覧ください。

次の一覧では、作成できる Azure Monitor アラートの種類について説明します。

  • メトリック アラートでは、リソース メトリックを定期的に評価します。 メトリックはプラットフォーム メトリック、カスタム メトリック、メトリックに変換された Azure Monitor からのログまたは Application Insights メトリックにすることができます。 メトリック警告では、複数の条件と動的しきい値を適用することもできます。
  • ログ アラートでは、ユーザーは Log Analytics クエリを使用して、定義済みの頻度でリソース ログを評価できます。
  • アクティビティ ログ アラートは、定義された条件と一致する新しいアクティビティ ログ イベントが発生したときにトリガーされます。 Resource Health アラートと Service Health アラートは、サービスとリソースの正常性を報告するアクティビティ ログ アラートです。

一部の Azure サービスでは、スマート検出アラートPrometheus アラート推奨されるアラート ルールもサポートされています。

一部のサービスでは、同じ Azure リージョン内に存在する同じ種類の複数のリソースに同じメトリック警告ルールを適用することで、大規模に監視することができます。 監視対象リソースごとに個別の通知が送信されます。 サポートされている Azure サービスとクラウドについては、「1 つのアラート ルールで複数のリソースを監視する」をご覧ください。

同じリージョン内の特定のリソース グループまたはサブスクリプション内のすべての VM に適用される単一のマルチリソース警告ルールを作成できます。 可用性メトリックを使用するチュートリアルについては、「Azure 仮想マシンの可用性アラート ルールの作成 (プレビュー)」を参照してください。

一部の Azure サービスでは、推奨される既定の警告ルールを有効にすることができます。

次に基づいて、推奨される警告ルールの一覧がシステムによってコンパイルされます。

  • リソースを監視するための重要なシグナルとしきい値についてのリソース プロバイダーの知識。
  • 顧客が一般的に、このリソースの警告を何に対して行っているかを示すデータ。

Note

推奨される警告ルールは、次の場合に使用できます。

  • 仮想マシン
  • Azure Kubernetes Service (AKS) リソース
  • Log Analytics ワークスペース

Azure VM に推奨される警告ルールには、VM の可用性メトリックが含まれます。これは、VM の実行が停止するとアラートを生成します。

詳細については、「チュートリアル: Azure 仮想マシンの推奨警告ルールを有効にする」を参照してください。

一般的なアラート ルール

Azure portal で一般的な VM ログ警告ルールを表示するには、Log Analytics の [クエリ] ウィンドウに移動します。 [リソースの種類] に「仮想マシン」と入力し、[種類] に「アラート」と入力します。

一般的な Virtual Machines 警告ルールの一覧と説明については、「一般的なアラート ルール」を参照してください。

Advisor の推奨事項

一部のサービスでは、リソースの操作中にクリティカルな条件や差し迫った変更が発生した場合は、ポータルのサービス [概要] ページにアラートが表示されます。 アラートの詳細と推奨される修正は、左側のメニューの [監視] の下の [アドバイザーのレコメンデーション] に表示されます。 通常の操作中、アドバイザーのレコメンデーションは表示されません。

Azure Advisor の詳細については、Azure Advisor の概要に関するページをご覧ください。

その他の VM 監視オプション

Azure VM には、次の Azure Monitor 以外の監視オプションがあります。

ブート診断

ブート診断は Azure VM のデバッグ機能であり、起動時に VM のシリアル ログ情報とスクリーンショットを収集して VM の起動エラーを診断できます。 Azure portal で VM を作成する場合、ブート診断は既定で有効になっています。 詳細については、「Azure のブート診断」を参照してください。

パフォーマンスに関する問題のトラブルシューティング

Performance Diagnostics ツールを使うと、マシン上で現在検出されている問題を迅速に診断し、分析情報を表示できるので、Windows または Linux 仮想マシン上のパフォーマンスに関する問題のトラブルシューティングに役立ちます。 このツールでは、収集した履歴監視データを分析するのではなく、既知の問題、ベスト プラクティスの実装、複雑な問題 (VM のパフォーマンス低下や、CPU、ディスク領域、メモリの使用率上昇を伴うもの) について、マシンの現在の状態を確認します。