Azure Monitor エージェントを使用して仮想マシンからイベントとパフォーマンス カウンターを収集する

この記事では、Azure Monitor エージェントを使用して、仮想マシンからイベントおよびパフォーマンス カウンターを収集する方法について説明します。

前提条件

この手順を完了するには、以下が必要です。

データ収集ルールを作成する

データ収集ルールを定義して、複数のマシンから複数の Log Analytics ワークスペース (異なるリージョンまたはテナントのワークスペースを含む) にデータを送信できます。 Log Analytics ワークスペースと "同じリージョン" にデータ収集ルールを作成します。

Note

テナント間でデータを送信するには、まず Azure Lighthouse を有効にする必要があります。

  1. [モニター] メニューで、[データ収集ルール] を選択します。

  2. [作成] を選択して、新しいデータ収集ルールと関連付けを作成します。

    [データ収集ルール] 画面の [作成] ボタンを示すスクリーンショット。

  3. [ルール名] を入力し、[サブスクリプション][リソース グループ][リージョン]、および [プラットフォームの種類] を指定します。

    • [リージョン] により、DCR が作成される場所を指定します。 仮想マシンとそれらの関連付けは、テナント内の任意のサブスクリプションまたはリソース グループに配置できます。
    • [プラットフォームの種類] により、このルールを適用できるリソースの種類を指定します。 [カスタム] オプションにより、Windows と Linux の両方の種類が許可されます。

    [データ収集ルール] 画面の [基本] タブを示すスクリーンショット。

  4. [リソース] タブで、次の操作を実行します。

    1. [+ リソースの追加] を選択し、データ収集ルールにリソースを関連付けます。 リソースは、Azure 仮想マシン、Virtual Machine Scale Sets、Azure Arc for servers のいずれかです。 Azure portal は、まだインストールされていないリソースに Azure Monitor エージェントをインストールします。

      重要

      ポータルは、既存のユーザー割り当て ID と共に、ターゲット リソースでシステム割り当てマネージド ID を有効にします (該当する場合)。 既存のアプリケーションでは、ユーザー割り当て ID を要求で指定しない限り、マシンでは既定でシステム割り当て ID が代わりに使用されます。

      プライベート リンクを使用したネットワークの分離が必要な場合は、それぞれのリソースに対して同じリージョンから既存のエンドポイントを選択するか、新しいエンドポイントを作成します

    2. [データ収集エンドポイントを有効にする] を選択します。

    3. データ収集ルールに関連付ける各リソースのデータ収集エンドポイントを選択します。

    [データ収集ルール] 画面の [リソース] タブを示すスクリーンショット。

  5. [収集と配信] タブで、[データ ソースの追加] を選択して、データ ソースを追加し、送信先を設定します。

  6. [データ ソースの種類] を選択します。

  7. 収集するデータを選択します。 パフォーマンス カウンターでは、定義済みのオブジェクトのセットとそのサンプリング レートから選択できます。 イベントについては、一連のログと重大度レベルから選択できます。

    データ収集ルールで基本パフォーマンス カウンターを選ぶ Azure portal フォームを示すスクリーンショット。

  8. [カスタム] を選択して、現在サポートされているデータ ソースではないログとパフォーマンス カウンターを収集したり、XPath クエリを使用してイベントをフィルター処理したりします。 次に、[XPath] を指定して、特定の値を収集できます。 例については、「サンプル DCR」 を参照してください。

    データ収集ルールでカスタム パフォーマンス カウンターを選ぶ Azure portal フォームを示すスクリーンショット。

  9. [送信先] タブで、データ ソースの 1 つ以上の送信先を追加します。 同じタイプまたは異なるタイプの送信先を複数選択できます。 たとえば、複数の Log Analytics ワークスペース (マルチホームとも呼ばれます) を選択できます。

    Windows イベントおよび Syslog データ ソースは、Azure Monitor ログにのみ送信できます。 パフォーマンス カウンターは Azure Monitor メトリックと Azure Monitor ログの両方に送信できます。

    データ収集ルールでデータ ソースを追加する Azure portal フォームを示すスクリーンショット。

  10. [データ ソースの追加][確認と作成] の順に選択して、データ収集ルールの詳細と、一連の仮想マシンとの関連付けを確認します。

  11. [作成] を選択してデータ収集ルールを作成します。

Note

データ収集ルールを作成した後、データが送信先に送信されるまでに最大で 5 分かかることがあります。

XPath クエリを使用してイベントをフィルター処理する

Log Analytics ワークスペースに収集されるすべてのデータに対して課金されます。 そのため、必要なイベント データのみを収集する必要があります。 Azure portal の基本的な構成では、イベントをフィルター処理する機能が制限されています。

ヒント

Azure Monitor のコストを削減するための戦略については、「コストの最適化と Azure Monitor」を参照してください。

さらにフィルターを指定するには、カスタム構成を使用して、不要なイベントを除外する XPath を指定します。 XPath エントリは、LogName!XPathQuery の形式で記述されます。 たとえば、イベント ID が 1035 のイベントのみをアプリケーション イベント ログから返す必要があるとします。 これらのイベントを対象とする XPathQuery*[System[EventID=1035]] になります。 アプリケーション イベント ログからイベントを取得する必要があるため、XPath は Application!*[System[EventID=1035]] です

Windows イベント ビューアーから XPath クエリを抽出する

Windows では、スクリーンショットで示すように、イベント ビューアーを使用して XPath クエリを抽出できます。

XPath クエリを [データ ソースの追加] 画面のフィールドに貼り付ける場合 (手順 5 で表示)、ログの種類のカテゴリの後に '!' を追加する必要があります。

Windows イベント ビューアーで XPath クエリを作成するための手順を示すスクリーンショット。

ヒント

FilterXPath パラメーターを指定した PowerShell コマンドレット Get-WinEvent を使用し、最初にローカルで、つまり、自分のコンピューターで XPath クエリの有効性をテストできます。 次のスクリプトは、一例を示しています。

$XPath = '*[System[EventID=1035]]'
Get-WinEvent -LogName 'Application' -FilterXPath $XPath
  • 上記のコマンドレットでは、-LogName パラメーターの値は、感嘆符 (!) までの XPath クエリの最初の部分です。 XPath クエリの残りの部分は $XPath パラメーターに入ります。
  • スクリプトがイベントを返す場合、クエリは有効です。
  • [No events were found that match the specified selection criteria.](指定した選択条件に一致するイベントは見つかりませんでした。) というメッセージが表示された場合は、クエリはおそらく有効ですが、一致するイベントがローカル コンピューターにありません。
  • [The specified query is invalid](指定したクエリは無効です) というメッセージが表示された場合は、クエリ構文が無効です。

カスタム XPath を使用してイベントをフィルター処理する例:

説明 XPath
イベント ID = 4648 のシステム イベントのみを収集する System!*[System[EventID=4648]]
イベント ID = 4648 で、プロセス名が consent.exe であるセキュリティ ログ イベントを収集する Security!*[System[(EventID=4648)]] and *[EventData[Data[@Name='ProcessName']='C:\Windows\System32\consent.exe']]
イベント ID = 6 (ドライバーの読み込み) を除くすべての重大、エラー、警告、および情報のイベントをシステム イベント ログから収集する System!*[System[(Level=1 or Level=2 or Level=3) and (EventID != 6)]]
イベント ID 4624 (成功したログオン) を除くすべての成功および失敗のセキュリティ イベントを収集する Security!*[System[(band(Keywords,13510798882111488)) and (EventID != 4624)]]

注意

Windows イベント ログでサポートされている XPath の制限事項の一覧については、「XPath 1.0 の制限事項」を参照してください。
たとえば、クエリ内で "position"、"Band"、"timediff" の関数を使用できますが、"starts-with" や "contains" などのその他の関数は現在サポートされていません。

次の手順