Azure Monitor エージェントを使用して仮想マシンからイベントとパフォーマンス カウンターを収集する
この記事では、Azure Monitor エージェントを使用して、仮想マシンからイベントおよびパフォーマンス カウンターを収集する方法について説明します。
前提条件
この手順を完了するには、以下が必要です。
- 少なくとも共同作成者権限がある Log Analytics ワークスペース。
- ワークスペースにデータ収集ルール オブジェクトを作成するためのアクセス許可。
- データ収集ルールを特定の仮想マシンに関連付けます。
データ収集ルールを作成する
データ収集ルールを定義して、複数のマシンから複数の Log Analytics ワークスペース (異なるリージョンまたはテナントのワークスペースを含む) にデータを送信できます。 Log Analytics ワークスペースと "同じリージョン" にデータ収集ルールを作成します。 Windows イベントおよび Syslog データは、Azure Monitor ログにのみ送信できます。 パフォーマンス カウンターは Azure Monitor メトリックと Azure Monitor ログの両方に送信できます。
注意
現時点では、Microsoft.HybridCompute (Azure Arc 対応サーバー) リソースはメトリックス エクスプローラー (Azure portal UX) で表示できませんが、メトリック REST API (メトリック名前空間 - リスト、メトリック定義 - リスト、メトリック - リスト) を使用して取得できます。
注意
テナント間でデータを送信するには、まず 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 ログの両方に送信できます。 現時点では、ハイブリッド コンピューティング (Arc for Server) リソースは、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 エージェントの詳細を理解します。
- データ収集ルールの詳細を確認します。