Azure Monitor エージェントを使用して仮想マシンからイベントとパフォーマンス カウンターを収集する
この記事では、Azure Monitor エージェントを使用して、仮想マシンからイベントおよびパフォーマンス カウンターを収集する方法について説明します。
前提条件
この手順を完了するには、以下が必要です。
- 少なくとも共同作成者権限がある Log Analytics ワークスペース。
- ワークスペースにデータ収集ルール オブジェクトを作成するためのアクセス許可。
- データ収集ルールを特定の仮想マシンに関連付けます。
データ収集ルールを作成する
データ収集ルールを定義して、複数のマシンから複数の Log Analytics ワークスペース (異なるリージョンまたはテナントのワークスペースを含む) にデータを送信できます。 Log Analytics ワークスペースと "同じリージョン" にデータ収集ルールを作成します。
Note
テナント間でデータを送信するには、まず Azure Lighthouse を有効にする必要があります。
[モニター] メニューで、[データ収集ルール] を選択します。
[作成] を選択して、新しいデータ収集ルールと関連付けを作成します。
[ルール名] を入力し、[サブスクリプション]、[リソース グループ]、[リージョン]、および [プラットフォームの種類] を指定します。
- [リージョン] により、DCR が作成される場所を指定します。 仮想マシンとそれらの関連付けは、テナント内の任意のサブスクリプションまたはリソース グループに配置できます。
- [プラットフォームの種類] により、このルールを適用できるリソースの種類を指定します。 [カスタム] オプションにより、Windows と Linux の両方の種類が許可されます。
[リソース] タブで、次の操作を実行します。
-
[+ リソースの追加] を選択し、データ収集ルールにリソースを関連付けます。 リソースは、Azure 仮想マシン、Virtual Machine Scale Sets、Azure Arc for servers のいずれかです。 Azure portal は、まだインストールされていないリソースに Azure Monitor エージェントをインストールします。
重要
ポータルは、既存のユーザー割り当て ID と共に、ターゲット リソースでシステム割り当てマネージド ID を有効にします (該当する場合)。 既存のアプリケーションでは、ユーザー割り当て ID を要求で指定しない限り、マシンでは既定でシステム割り当て ID が代わりに使用されます。
プライベート リンクを使用したネットワークの分離が必要な場合は、それぞれのリソースに対して同じリージョンから既存のエンドポイントを選択するか、新しいエンドポイントを作成します。
[データ収集エンドポイントを有効にする] を選択します。
データ収集ルールに関連付ける各リソースのデータ収集エンドポイントを選択します。
[収集と配信] タブで、[データ ソースの追加] を選択して、データ ソースを追加し、送信先を設定します。
[データ ソースの種類] を選択します。
収集するデータを選択します。 パフォーマンス カウンターでは、定義済みのオブジェクトのセットとそのサンプリング レートから選択できます。 イベントについては、一連のログと重大度レベルから選択できます。
[カスタム] を選択して、現在サポートされているデータ ソースではないログとパフォーマンス カウンターを収集したり、XPath クエリを使用してイベントをフィルター処理したりします。 次に、[XPath] を指定して、特定の値を収集できます。 例については、「サンプル DCR」 を参照してください。
[送信先] タブで、データ ソースの 1 つ以上の送信先を追加します。 同じタイプまたは異なるタイプの送信先を複数選択できます。 たとえば、複数の Log Analytics ワークスペース (マルチホームとも呼ばれます) を選択できます。
Windows イベントおよび Syslog データ ソースは、Azure Monitor ログにのみ送信できます。 パフォーマンス カウンターは Azure Monitor メトリックと Azure Monitor ログの両方に送信できます。
[データ ソースの追加]、[確認と作成] の順に選択して、データ収集ルールの詳細と、一連の仮想マシンとの関連付けを確認します。
[作成] を選択してデータ収集ルールを作成します。
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 で表示)、ログの種類のカテゴリの後に '!' を追加する必要があります。
ヒント
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" などのその他の関数は現在サポートされていません。
次の手順
- Azure Monitor エージェントを使用してテキスト ログを収集します。
- Azure Monitor エージェントの詳細を理解します。
- データ収集ルールの詳細を確認します。