この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
本記事の概要
Azure Monitorエージェントをインストールし、Windows仮想マシンのイベントログとパフォーマンスカウンタデータを収集します。LogAnalyticsエージェントが2024年8月に廃止されることが決定しており、Azure Monitorエージェントを利用して基本的な仮想マシンの監視を実施する場合の手順を確認しておきたく、本記事にまとめました。
「Azure LogAnalyticsエージェントでの設定方法」については、以下を参照ください。
Azure Monitor でのWindows仮想マシンのイベントログ監視・プロセス監視・サービス監視
また、Azure MonitorエージェントとLog Analyticsエージェントの違いについては以下を参照してください。
Azure Monitor エージェントとLog Analytics エージェントの違いはなんですか?
目次
1.公式ドキュメントについて
2.構成について
3.手順詳細
公式ドキュメントについて
Azure Monitorエージェントのインストールについての公式ドキュメントは以下です。
その他、Azure Monitorエージェントでの仮想マシンの監視については、以下記載が参考となりますが、記載内容が広範にわたる為少し分かり辛いのではないかと思います。
Azure Monitor を使用して仮想マシンを監視する
Azure Monitor を使用して仮想マシンを監視する: 監視の構成
「構成の概要」に記載されている項目の中の一つ一つを環境にあわせて実施していけばよいのですが、手順がどれなのかわからず、「Azure Monitorエージェントで仮想マシン の基本的なことを監視したい」といった場合、どこを参照していいのか迷ってしまいます。
本記事では、「Azure MonitorエージェントでWindows仮想マシンのイベントログとパフォーマンスカウンタデータを収集する」ということを要件として、その設定を行っていきます。公式ドキュメントを参照しつつ、必要最低限の設定を紹介します。
構成について
本記事の「Azure MonitorエージェントでWindows仮想マシンのイベントログとパフォーマンスカウンタデータを収集する」 という設定ですが、 データの収集先には、 Log Analytics ワークスペース を指定します。Log Analytics ワークスペース を作成し、そこにWindows仮想マシンのイベントログ、パフォーマンスデータを収集します。
また、本記事では、VM insights は有効化していません。VM insightsを有効化すると、仮想マシンにLog Analytics エージェントと依存関係エージェント(Dependency Agent)が自動インストールされ、 Azure Monitorエージェント で収集するデータと重複してしまう為です。データ重複については、以下のような記載があります。
VM insights では、Log Analytics エージェントを使用して、パフォーマンス データが Log Analytics ワークスペースに送信されます。 また、エージェントから Windows のイベントと Syslog のイベントを収集するようにワークスペースが構成されている場合もあります。 Azure Monitor エージェントをインストールし、これらの同じイベントとパフォーマンス データに対してデータ収集ルールを作成した場合、データが重複することになります
Log Analytics ワークスペースに同じデータを収集すると、データが重複して収集されることとなり、データ量に対して課金が発生すると考えると無駄な設定となる為、注意が必要です。
VM insights では、実行中のプロセスや他のリソースへの依存関係などをグラフィカルにAzure Portal上から確認できるというメリットもあります。しかしながら、本記事の 「Azure MonitorエージェントでWindows仮想マシンのイベントログとパフォーマンスカウンタデータを収集する」 という要件では不要ですので設定していません。
手順詳細
Azure Monitorエージェントを仮想マシンにインストールするには、以下URLのデータ収集ルールの作成を実施します。
Azure portal でルールと関連付けを作成する
こちらを実施することでAzure Monitorエージェントが自動でインストールされます。上記URLのとおりに作成可能ですが、以下にもキャプチャ付きで掲載しておきます。
※UIは直ぐに変更になってしまうことが多いのですが、基本的な流れは参考になるかと思います。
1.Log Analytics ワークスペース作成
以下URLを参考に、Log Analytics ワークスペースを作成します。ここは迷わずに作成可能かと思います。
Azure Portal で Log Analytics ワークスペースを作成する
2.Azure Monitorによるデータ収集ルール作成
データ収集ルールの作成は、大きく以下2つのカテゴリに分類されます。
・リソース・・・収集対象の仮想マシンを指定
・収集と配信・・・収集対象データを指定(Windows仮想マシンであればイベントログとパフォーマンスカウンタデータ)
本手順書詳細では以下のような章立てとなっています。
「2-1.収集対象仮想マシン追加」にてリソース追加について記載、
「2-2.収集対象データ(データソース)の追加」で、「イベントログ」「パフォーマンスデータ」の設定について記載しています。
① Azure ポータル上から、Monitor→データ収集ルール をクリックし、「データ収集ルールの作成」をクリックします。
②データ収集ルールの「ルール名」、配置する「リソースグループ」などの詳細を入力します。「プラットフォームの種類」では対象仮想マシンのOS種別を選択する必要があります。今回はWindowsを指定しています。入力が完了したら、「次へ:リソース」をクリックします。
③「リソースの追加」をクリックします。
④リソース一覧がリストされるので、対象の仮想マシンにチェックを入れ、「適用」をクリックします。
⑤仮想マシンが追加されているのを確認します。ここまでが、「収集対象である仮想マシンの指定」手順となります。「次へ:収集と配信」をクリックすることにより、その仮想マシンで何を収集対象とするか、を指定していきます。
2-2.収集対象データ(データソース)の追加
・イベントログ追加
データソースの追加には、イベントログとパフォーマンスカウンタの設定があります。まずイベントログの追加を行います。
①「データソースの追加」をクリックします。
②プルダウンからデータソースを選択します。まずは、「Windows event logs」を指定します。
③アプリケーション、セキュリティ、システム の各ログから、収集対象のイベントログセベリティにチェックします。なおここに表示されていないイベントログ種別については「カスタム」をクリックすることで指定可能です。カスタムログを指定する必要がない場合は、以下画面の「次へ:ターゲット」をクリックし、「 ④Eventlogの収集先を指定します。」という手順に進んでください。
########################################
解説:イベントログのカスタム設定について
アプリケーション、セキュリティ、システム、以外のイベントログ種別は以下のように手動で追加することで指定可能です。
例えば、「DNS Server」というイベント種別について指定したい場合、以下の「XPath クエリを使用して、イベント ログをフィルター処理し、データ収集を制限します」という欄に、手動で「 DNS Server 」と入力後、「追加」をクリックします。
※手動指定となる為、実際のOS側イベントログ名称を確認して追加するのがよいと思います
一覧に追加されます。なお、末尾の「!*」は自動追記されます。「!*」では、収集対象をフィルタリングするルールを設定可能です。「!*」に続けて何も指定しなければ、対象イベント種別のログ全てを収集対象とします。
デフォルトでも以下のようなフィルタリングルールが設定されています。
フィルタの解説は以下です。
カスタム XPath クエリを使用してデータ収集を制限する
フィルタ設定が問題なければ、「次へ:ターゲット」をクリックします。
########################################
④Eventlogの収集先を指定します。
Eventlogであれば、ターゲットの種類は「Azure Monitor Logs」のみの表示となります。「アカウントまたは名前空間」のプルダウンから、収集先となるLog Analyticsワークスペースが指定可能です。「ターゲットの追加」をクリックすることにより、複数の Log Analyticsワークスペース にデータを収集することも可能です。事前に作成した Log Analyticsワークスペース を指定してください。
⑤データソースのリストに「Windows event logs」が追加されたのを確認します。ここまでの手順で、どのイベントログを収集対象とするか、という設定が完了しました。以下画面で、再度、「データソースの追加」をクリックします。
・パフォーマンスカウンタ追加
イベントログの設定が完了した為、以降でパフォーマンスカウンタの設定を行います。
①データソースの追加プルダウンから、今度は「Performance counters」を指定します
②以下画面からパフォーマンスカウンタの指定が可能です。より詳細なパフォーマンスカウンタの設定を行いたい場合、「カスタム」から収集対象のパフォーマンスカウンタを指定してください。
サンプルレート(秒)も指定可能で、デフォルトは10秒に設定されています。
パフォーマンスカウンタの収集対象指定が完了したら、「次へ:ターゲット」をクリックします。
########################################
解説:パフォーマンスカウンタのカスタム設定について
デフォルトでは、CPU、Memory、Disk、Network が選択されており、これだけで十分仮想マシンのリソース監視が可能です。基本設定だけで監視は可能ですが、もちろんこの他のパフォーマンスカウンタについても指定可能です。
例えば、物理ディスクの処理要求待ち時間「\PhysicalDisk(_Total)\Current Disk Queue Length」のデータを収集したい場合、「カスタム」をクリックし、以下のようにカウンタの値を入力し、「追加」をクリックします。
一覧に追加されるので、チェックボックスにチェックを入れて、「次へ:ターゲット」をクリックします。
手動でパフォーマンスカウンタの値を入力する場合は実際のパフォーマンスカウンタの設定値をチェックしてから入力するのがよいと思います。
例:OSにログインし、パフォーマンスカウンタで 「\PhysicalDisk(_Total)\Current Disk Queue Length」 を設定した画面
########################################
③パフォーマンスカウンタのデータ収集先を指定します。デフォルトではデータ収集先の指定である「アカウントまたは名前空間」がグレーアウトしており、特に設定が不要のように思えますが、Log Analytics ワークスペースにログを集約する場合、追加の設定が必要です。
「ターゲットの追加」をクリックし、新たな「ターゲットの種別」として、”Azure Monitor Logs” を指定します。任意のサブスクリプションを選択後、作成済みのLog Analytics ワークスペースをプルダウンの一覧から選択します。
⑤設定完了後、「保存」をクリックします。
########################################
解説:ターゲット設定について
「ターゲットの種類」のプルダウンで出てくる、Azure Monitor Metric(preview)とAzure Monitor Logsですが、以下のような違いがあります。
Azure Monitor Metric(preview) ・・・数値(メトリック)データのこと。どこに保存するか、という指定は必要なく、Azureのメトリックエクスプローラに規定で保存される設定となっている。
Azure Monitor Logs ・・・ログデータのこと。どのLog Analyticsワークスペースに保存するか、という指定が必要となる。
ログとメトリックをどこに保存するか指定可能、ということです。Azure Monitorで収集できるデータにはログとメトリックが存在し、それぞれの違いは以下に解説されています。
########################################
⑥ここまでの手順で、
・イベントログ収集設定
・パフォーマンスカウンタ収集設定
の作成が完了しました。以下の画面で、「次へ:確認と作成」をクリックします。
⑦「作成」をクリックします。
「デプロイが完了しました」という表示と、Azure Monitorエージェントのインストール状況が通知されます。データ収集対象の仮想マシンが起動していれば、自動でAzure Monitorエージェントがインストールされます。起動していないと以下のようにインストール失敗の通知も出てきます。が、仮想マシンが起動したタイミングでエージェントは再度インストールされる為、特に対処不要です。また、通知にも出てきますが、Azure Monitorエージェントがインストールされるタイミングで、マネージドID(※)も有効になります
※特に追加で何か設定が必要なわけではないですが、認識しておくとよいと思います。マネージドIDについては以下を参照ください。
Azure リソースのマネージド ID とは?
ここまでで、Azure Monitorエージェントのインストールが完了している為、暫くすると(初回収集は15分程度かかる)
仮想マシンのデータをLog Analyticsワークスペース上で検索可能となります。
3.収集データの確認
該当の Log Analyticsワークスペース を選択→ログ→クエリ画面で「Event」と入力し、「実行」することで、収集されたイベントログの確認が可能です。
デフォルト設定でセキュリティイベントログを収集している場合、セキュリティイベントログだけが大量にある為、他のログが無いように見えてしまいます。以下のようにSecurityログ以外を指定するなどすれば、その他のログも確認可能かと思います。
Event | where EventLog != “Security”
イベントログのクエリについて、簡易なものであれば以下が参考になるかと思います。
Log Analytics でのWindows イベントログ収集
同じく、今回設定したパフォーマンスカウンタのデータは クエリ画面で「Perf」と実行することで参照可能です。
パフォーマンスカウンタデータについても、一例ですが、以下のように入力することで対象を絞り込むことが可能です。「where Computer」の部分で対象の仮想マシンを、「where CounterName」で対象パフォーマンスカウンタを指定しています。このクエリでは、対象仮想マシンの対象パフォーマンスカウンタの、過去 7 日間の 1 時間ごとの平均値 を出力しています。
Perf
| where TimeGenerated > ago(7d)
| where Computer == “対象の仮想マシン名”
| where CounterName == “Available Bytes”
| summarize avg(CounterValue) by bin(TimeGenerated, 1h)
集計結果に対し、「グラフ」タブをクリックすれば、グラフ表示も可能です。
以上、「Azure MonitorエージェントでWindows仮想マシンのイベントログとパフォーマンスカウンタデータを収集する」ということを実施しました。
Azure Monitorエージェントを利用し、仮想マシンを監視したい場合に、本記事が参考になれば幸いです。
本記事は以上です。