Azure Monitorで仮想マシンのログを収集する方法|AMA・DCRの変更点と移行時の注意点

Azure Monitorで仮想マシンのログデータを収集する場合、いま確認すべき中心は「Azure Monitor Agent(AMA)を個別に入れるか」ではなく、データ収集ルール(DCR)を作成し、対象VM・VMスケールセット・Azure Arc対応サーバーに関連付ける設計になっているかです。2026年5月の公式ドキュメント更新では、AzureポータルでDCRを作成してVMリソースを追加する方法が、AMAを導入する推奨手順として明確化されています。DCRにVMを追加すると、必要に応じてAMAが自動的にインストールされ、DCRと各VMの関連付けも作成されます。(GitHub)

この記事では、Azure Monitorの「Collect log data from virtual machines with Azure Monitor」で何を読み取るべきかを、管理者・開発者向けに整理します。対象範囲、変更点、既存環境への影響、DCR・DCE・Log Analytics workspace・マネージドIDの確認ポイント、Log Analytics agentからの移行時に失敗しやすい点まで、実務でそのまま点検できる形で解説します。

目次

Azure Monitorの仮想マシンログ収集は「AMA + DCR」が基本になる

Azure Monitorは、Azure VM、Virtual Machine Scale Sets、Azure Arc対応サーバーからホストメトリックやアクティビティログを自動的に収集できます。ただし、ゲストOSやアプリケーションの詳細なログ、たとえばWindowsイベントログ、Linux Syslog、IISログ、カスタムテキストログなどは、標準では十分に集まりません。これらを収集するには、Azure Monitor Agentとデータ収集ルールを使って、どのデータをどこへ送るかを定義する必要があります。(Microsoft Learn)

今回のポイントは、ログ収集の入口が「エージェントを先に手作業で入れる」よりも、DCRを作成して対象リソースを追加する運用に寄っていることです。AzureポータルでDCRを作成し、VMをリソースとして追加すると、必要に応じてAzure Monitor Agentが自動的にインストールされ、DCRとの関連付けも作成されます。(Microsoft Learn)

これは新しいログ種別が大量に増えたというより、運用手順と責任範囲が分かりやすく整理された更新です。管理者は「AMAが入っているか」だけでなく、「正しいDCRが関連付いているか」「DCRの送信先やデータソースが適切か」まで確認する必要があります。

何が変わるのか:実務上の変更点

2026年5月のMicrosoftDocs上の更新では、AzureポータルでDCRを作成することがAMA導入の推奨方法であり、DCRにリソースを追加するとAMAの自動インストールとDCR関連付けが行われる、という説明が補強されました。GitHub上の公式ドキュメント履歴でも、この更新は「AzureポータルでのAMAインストール説明を改善する」趣旨で、data-collection.mdとazure-monitor-agent-manage.mdの両方に反映されています。(GitHub)

実務での影響は、次の3点です。

確認項目これまで起きがちな運用今後の推奨される見方
AMAの導入拡張機能としてAMAを個別に入れて終わりにするDCR作成・リソース追加・関連付けまでを一連の設定として確認する
ログ収集設定ワークスペース側やエージェント側の設定だけを見るDCRのデータソース、送信先、DCRAを確認する
展開方法手作業でVMごとに設定する小規模ならポータル、大規模ならAzure PolicyやIaCでDCR関連付けを展開する

特に注意したいのは、AMAがインストールされていても、DCRが関連付いていなければ期待したログは収集されない点です。AMAは、関連付けられたDCRを取得し、その内容に従ってデータを収集します。DCRは「何を集めるか」「どう加工するか」「どこへ送るか」を定義する設定リソースです。(Microsoft Learn)

対象になるリソース

対象になるのは、主に次のリソースです。

対象確認ポイント
Azure Virtual MachinesWindowsイベントログ、パフォーマンスカウンター、IISログ、カスタムログなどの収集対象をDCRで定義する
Virtual Machine Scale Setsスケールセット全体の運用方針と、インスタンスへの適用タイミングを確認する
Azure Arc-enabled serversオンプレミスや他クラウド上のサーバーをAzure管理下に置き、AMAとDCRで収集する
Windows Server / Windows ClientWindowsイベント、IISログ、Windows Firewall logsなどの対象を確認する
LinuxサーバーSyslog、パフォーマンス、テキストログ、JSONログ、SNMP trapsなどを確認する

Azure以外のサーバーでは、AMAを入れる前にAzure Arc Connected Machine agentを導入し、Azure上で管理対象リソースとして扱える状態にする必要があります。(Microsoft Learn)

また、フレキシブル オーケストレーションのVirtual Machine Scale Setsは、DCRのリソースとしてスケールセットそのものを追加するのではなく、含まれる各VMを追加する扱いになる点に注意が必要です。(Microsoft Learn)

収集できる主なログデータと送信先

公式ドキュメントでは、VMクライアントから収集できるデータソースとして、Windows events、Performance counters、OpenTelemetry metrics、Syslog、Text log、JSON log、IIS logs、SNMP traps、Windows Firewall logsなどが整理されています。送信先はデータソースによって異なりますが、多くのログはLog Analytics workspaceへ送信します。(Microsoft Learn)

データソース主な対象OS主な送信先よくある用途
Windows eventsWindowsLog Analytics workspaceアプリケーション障害、OSエラー、セキュリティ関連イベントの調査
SyslogLinuxLog Analytics workspaceLinuxサーバーの認証、サービス、システムログ監視
Performance countersWindows / LinuxLog Analytics workspace、Azure Monitor metricsなどCPU、メモリ、ディスク、プロセス関連の傾向分析
Text logWindows / LinuxLog Analytics workspace独自アプリケーションのテキストログ収集
JSON logWindows / LinuxLog Analytics workspace構造化されたアプリケーションログの収集
IIS logsWindowsLog Analytics workspaceWebサーバーのアクセスログ、障害調査
Windows Firewall logsWindowsLog Analytics workspace通信許可・拒否ログの確認
SNMP trapsLinuxLog Analytics workspaceネットワーク機器や監視対象からのトラップ収集

ここで重要なのは、「何でも全部集める」ではなく、目的に合わせてDCRを分けることです。たとえば、障害調査用のWindowsイベントログ、性能監視用のパフォーマンスカウンター、セキュリティ監査用のログを同じDCRにまとめすぎると、後から変更範囲が分かりにくくなります。

管理者が最初に確認すべき設定

Azure MonitorでVMログ収集を運用している管理者は、次の順番で確認すると抜け漏れを減らせます。

| 順番 | 確認するもの | 見るべきポイント |
| -: | ———————– | —————————— |
| 1 | Log Analytics workspace | 送信先ワークスペース、リージョン、権限、保持期間、コスト管理 |
| 2 | DCR | 収集するデータソース、送信先、変換、命名規則 |
| 3 | DCRA | 対象VM・ArcサーバーとDCRの関連付け |
| 4 | AMA | 拡張機能の状態、バージョン、自動更新の有無 |
| 5 | マネージドID | システム割り当てかユーザー割り当てか |
| 6 | DCE | Private Linkや特定データソースで必要か |
| 7 | 重複収集 | 同じデータを複数DCRや旧エージェントで収集していないか |

DCRのリージョンは、送信先として使うLog Analytics workspaceまたはAzure Monitor workspaceと同じリージョンにする必要があります。ワークスペースが複数リージョンに分かれている場合は、同じVM群に対して複数のDCRを作成する設計が必要になります。(Microsoft Learn)

また、DCRを作成するには、Log Analytics workspaceへの共同作成者相当の権限やDCRオブジェクトを作成する権限が必要です。テナントをまたいでデータを送る場合は、Azure Lighthouseの有効化も前提になります。(Microsoft Learn)

DCRを設計するときの判断基準

DCRは便利ですが、無計画に増やすと管理しづらくなります。おすすめは、次の単位で分ける考え方です。

分け方向いているケース注意点
OS別WindowsとLinuxで収集対象が大きく異なる共通ルールにしすぎると不要な項目が増える
用途別障害調査、性能監視、セキュリティ監査を分けたい同じログを重複収集しないよう確認する
環境別本番、検証、開発で保持期間や送信先を変えたい命名規則を決めないとDCRが乱立する
リージョン別ワークスペースが複数リージョンにある同じVM群に複数DCRを関連付ける場合は重複に注意
アプリ別特定アプリのカスタムログだけ収集したいアプリ更新でログパスや形式が変わると収集漏れが起きる

DCRは1つのVMに複数関連付けできます。公式ドキュメントでは、DCRAは多対多の関係で、1つのリソースに最大30個のDCRを関連付けられると説明されています。(Microsoft Learn)

ただし、最大数まで使えることと、使うべきことは別です。実務では、1台のVMに多くのDCRが関連付いていると、どのルールがどのログを収集しているのか追いにくくなります。運用しやすい目安としては、まず「共通監視」「OS別ログ」「アプリ固有ログ」「セキュリティ系ログ」程度に整理し、必要になった時だけ追加する方が安全です。

AzureポータルでDCRを作るときの注意点

AzureポータルでDCRを作成する場合、MonitorメニューからData Collection Rulesを開き、Createを選択して作成します。基本的なログ収集であれば、ポータル上でDCRの作成、VMの追加、データソースと送信先の設定まで進められます。(Microsoft Learn)

ただし、ポータル編集には重要な注意点があります。DCRのJSONを直接編集して、ポータルが対応していない高度な変換などを設定している場合、その後にAzureポータルから同じDCRを編集すると、ポータルでサポートされていない設定が上書き・削除される可能性があります。(Microsoft Learn)

実務では、次のように運用を分けると事故を防ぎやすくなります。

DCRの種類推奨する編集方法
標準的なWindowsイベント、Syslog、IISログ収集Azureポータルで管理
変換、複雑なデータフロー、IaC管理が必要なDCRJSON、ARM/Bicep、Terraform、Azure CLIなどに統一
Azure Policyで大量展開するDCRポータルで手直しせず、定義ファイル側で変更
検証中のDCR本番DCRと分けて作成し、名前で用途を明確化

ポータルで少し直しただけのつもりが、JSONで入れていた変換を消してしまうと、コスト削減のために除外していたログが再び取り込まれる、機密性の高い列が保存される、スキーマが変わるといった問題につながります。

マネージドIDの扱いに注意する

DCRにリソースを追加するとき、Azureポータルの既定では対象リソースにシステム割り当てマネージドIDを有効化する動きがあります。既存アプリケーションでユーザー割り当てマネージドIDを利用している場合、DCR追加時に明示しないと、DCRによって適用されたシステム割り当てIDを使う状態になる可能性があります。(Microsoft Learn)

これは、監視チームだけで完結しない論点です。アプリケーションがKey Vault、Storage、SQL Databaseなどへユーザー割り当てIDでアクセスしている環境では、インフラ管理者と開発者が次の点を確認してください。

確認項目具体的な確認内容
既存IDの利用状況VMやアプリがユーザー割り当てIDを使っているか
DCR追加時のID設定システム割り当てIDが意図せず有効になっていないか
権限の付与範囲監視用IDに過剰な権限を与えていないか
変更後の動作アプリケーションの認証やデプロイに影響が出ていないか

監視設定は「ログを集めるだけ」と見られがちですが、ID設定を変更する場合はセキュリティ設計に影響します。特に本番VMでは、DCR適用前後のマネージドID状態を記録しておくと、トラブル時の切り戻しが容易です。

DCEが必要なケースを見極める

Data Collection Endpoint(DCE)は、Azure Monitorのデータ収集、構成取得、取り込みに関するエンドポイントを定義するAzureリソースです。ただし、すべてのAMAログ収集でDCEが必須になるわけではありません。AMAは既定ではパブリックエンドポイントを使ってAzure Monitorから構成を取得し、DCEが必要になる代表的なケースはPrivate Linkを使う場合です。(Microsoft Learn)

また、特定のデータソースではDCEが必要です。公式ドキュメントでは、Windows Firewall LogsやPrometheus Metrics(Container Insights)がDCEを必要とするデータソースとして挙げられています。(Microsoft Learn)

判断基準はシンプルです。

状況DCEの要否
通常のWindowsイベントやSyslogをパブリック経由で収集多くの場合、DCEは不要
Azure Monitor Private Link Scopeを使っているDCEが必要
Private Link構成のLog Analytics workspaceへ送信DCEとAMPLSの関連を確認
Windows Firewall LogsをDCRで収集DCE要否を確認
複数リージョンのVMとワークスペースがある構成取得用・取り込み用のDCE配置を設計

DCEを誤って省略すると、エージェントは入っているのに設定を取得できない、または特定データソースだけ収集されないといった分かりにくい障害になります。Private Linkを使う環境では、ネットワーク担当者とAzure管理者がDNS、AMPLS、DCE、DCRの関係を一緒に確認してください。

Log Analytics agentから移行中の環境で確認すべきこと

Log Analytics agent、別名MMAまたはOMS agentを使っている環境では、Azure Monitor Agentへの移行が重要です。Microsoftの公式ドキュメントでは、Log Analytics agentは2024年8月31日に廃止されており、2026年3月2日以降はLog Analytics agentからのデータアップロードが予告なく停止する可能性があると説明されています。(Microsoft Learn)

移行中の環境では、次の順番で作業すると安全です。

| 手順 | 作業内容 | 失敗しやすいポイント |
| -: | ——————————– | ————————————- |
| 1 | 現在のLog Analytics agent利用状況を棚卸しする | 使っていないと思っていたワークスペースやソリューションが残っている |
| 2 | 収集しているデータソースを洗い出す | Windowsイベント、Syslog、IIS、カスタムログの差分を見落とす |
| 3 | DCR Config GeneratorなどでDCR化を検討する | 自動変換後のDCRを検証せず本番展開する |
| 4 | 小規模なパイロットVMにAMAとDCRを適用する | いきなり全台展開してログ形式や量の差に気付く |
| 5 | Heartbeatと各テーブルの件数を比較する | AMAのHeartbeatだけ見て、実ログの欠落を見逃す |
| 6 | 重複収集を止める | Log Analytics agentとAMAの両方が同じデータを送る |
| 7 | 問題がなければ旧エージェントを削除する | SCOM管理対象など例外を消してしまう |

公式の移行手順でも、移行前の棚卸し、DCRの生成、パイロット展開、データ収集の検証、Log Analytics agentの削除という流れが示されています。(Microsoft Learn)

特にコスト面で重要なのが、二重取り込みです。旧エージェントとAMAが同じログを同じワークスペースへ送ると、見かけ上は監視が強化されたように見えても、実際には重複データによって課金が増える可能性があります。

重複収集を防ぐチェックポイント

公式ドキュメントでは、重複データにより課金が増える可能性があるシナリオとして、同じデータソースを持つ複数DCRを同じVMに関連付けるケース、Microsoft SentinelとAzure Monitorの両方で同じセキュリティログを収集するケース、Log Analytics agentとAMAが同じマシン上で同じデータを収集するケースが挙げられています。(Microsoft Learn)

次の確認表を使うと、運用前レビューで見落としを減らせます。

リスク確認方法対応
同じVMに似たDCRが複数関連付いているGet-AzDataCollectionRuleAssociation -resourceUri <vm-resource-id>で確認データソースやフィルターを見直す
SecurityログをAzure MonitorとSentinelで二重収集EventテーブルとSecurityEventテーブルの収集条件を確認Sentinel向けコネクタとDCRの役割を分ける
Log Analytics agentとAMAが併存VM拡張機能、Heartbeat、ワークスペース接続を確認移行検証後に旧エージェントを削除
複数ワークスペースへ同じログを送信DCRのDestinationを確認必要な保存先だけに絞る
カスタムログのパス指定が広すぎるワイルドカード指定と実ファイル数を確認対象ディレクトリとファイル名を限定する

同じログを複数の目的で使いたい場合でも、まずは1つの収集経路に集約し、Log Analytics上のKQL、ブック、アラート、Microsoft Sentinel側の分析ルールなどで活用方法を分ける方が管理しやすくなります。

動作確認はHeartbeatだけで終わらせない

DCRを作成した後、データが送信先に届くまで最大で数分かかる場合があります。公式ドキュメントでは、DCR作成後に宛先へデータが送られるまで最大5分かかることがあり、エージェントの動作確認にはHeartbeatテーブルを確認する方法が示されています。(Microsoft Learn)

ただし、Heartbeatが出ていることは「AMAが通信できている」ことの確認であり、「必要なログがすべて収集されている」ことの証明ではありません。次の2段階で確認してください。

エージェント通信の確認

Log Analyticsで次のような考え方でHeartbeatを確認します。

Heartbeat
| where TimeGenerated > ago(15m)
| summarize LastHeartbeat=max(TimeGenerated) by Computer, Category, OSType
| order by LastHeartbeat desc

Azure Monitor Agentの確認では、CategoryにAzure Monitor Agentが入るかを確認すると、旧エージェントとの区別がしやすくなります。公式ドキュメントでも、AMAのHeartbeat確認例としてCategoryでAzure Monitor Agentを絞り込む考え方が示されています。(Microsoft Learn)

収集対象テーブルの確認

次に、DCRで設定したデータソースごとにテーブルを確認します。

データソース確認するテーブル
Windows eventsEvent
Performance countersPerf
SyslogSyslog
IIS logsW3CIISLog
Text logカスタムテーブル
JSON logカスタムテーブル

公式ドキュメントでも、Windows eventsはEvent、Performance countersはPerf、SyslogはSyslog、IIS logsはW3CIISLog、Text logやJSON logはカスタムテーブルで確認する流れが示されています。(Microsoft Learn)

たとえばWindowsイベントログを収集したつもりなら、Heartbeatだけでなく次のようにEventテーブルを確認します。

Event
| where TimeGenerated > ago(1h)
| summarize Count=count() by Computer, EventLog, EventLevelName
| order by Count desc

Syslogなら、施設や重要度の偏りも確認します。

Syslog
| where TimeGenerated > ago(1h)
| summarize Count=count() by Computer, Facility, SeverityLevel
| order by Count desc

開発者が確認すべきアプリケーションログのポイント

開発者にとって重要なのは、アプリケーションログをAzure Monitorへ送る際に、ログ形式、ファイル出力方式、タイムスタンプ、ローテーション方式を監視設計と合わせることです。

Text logやJSON logを収集する場合、ログファイルがローカルディスク上にあり、追記型で書き込まれることが重要です。ログローテーションでファイル名が日付ごとに変わる場合は、DCRのファイルパターンを適切に指定する必要があります。対象範囲を広げすぎると、意図しないファイルまで取り込んでコスト増やノイズ増加につながります。

開発者側で最低限確認したい項目は次の通りです。

項目推奨
ログ形式可能ならJSONなどの構造化ログにする
タイムスタンプタイムゾーンを明確にし、解析しやすい形式に統一する
ログレベルDebugやTraceを本番で常時出さない
個人情報・機密情報DCR変換だけに頼らず、アプリ側でも出力しない
ローテーションファイル名、保存期間、圧縮タイミングを監視担当に共有する
障害時の相関リクエストID、ジョブID、ユーザー操作IDなどを出す

監視はインフラ側だけで完結しません。アプリケーションが意味のあるログを出していなければ、Azure Monitorで収集しても障害調査には役立ちません。

展開時のおすすめ手順

本番環境に展開する場合は、次の順番で進めると安全です。

フェーズ実施内容
設計収集目的、対象VM、送信先ワークスペース、DCR分割方針を決める
検証代表的なWindows/Linux VMでDCRを作成し、ログ量とテーブルを確認する
コスト確認1日あたりの取り込み量を確認し、不要ログやDebugログを除外する
パイロット本番の一部VMに適用し、アラートやダッシュボードへの影響を確認する
自動展開Azure PolicyやIaCでDCR関連付けを展開する
旧設定整理Log Analytics agent、重複DCR、不要なワークスペース接続を削除する
運用化DCR変更ルール、レビュー周期、命名規則、例外管理を文書化する

小規模環境であればAzureポータルのDCR作成で十分です。一方、数十台から数百台以上のVMやArcサーバーを管理する場合は、手作業では設定差分が出やすくなります。Azure PolicyやIaCを使い、DCRとDCRAをコードとして管理する方が、監査や再展開に強くなります。

よくある失敗と対策

AMAを入れただけでログが来ると思っている

AMAは収集の実行役ですが、何を集めるかはDCRで定義します。AMAインストール後にHeartbeatが出ていても、EventやSyslogが空なら、DCRのデータソースや関連付けを確認してください。

DCRのリージョンとワークスペースの関係を見落とす

DCRのリージョンは、送信先のLog Analytics workspaceまたはAzure Monitor workspaceと同じリージョンである必要があります。複数リージョンのワークスペースへ送る場合は、DCRを分けて設計します。(Microsoft Learn)

ポータル編集でJSONの高度な設定を消す

変換や高度な設定をJSONで入れたDCRは、ポータルで編集するとサポートされない設定が上書きされる可能性があります。高度なDCRは、編集手段をJSONやIaCに統一しましょう。(Microsoft Learn)

SentinelとAzure MonitorでSecurityログを二重収集する

SecurityログをAzure MonitorのEventテーブルとMicrosoft SentinelのSecurityEventテーブルへ重複送信すると、コストと調査ノイズが増えます。どちらを主経路にするかを先に決めてください。(Microsoft Learn)

移行中に旧エージェントを残し続ける

Log Analytics agentとAMAが同じデータを収集すると、同一テーブルに重複データが入る可能性があります。移行検証が終わったら、例外を除いて旧エージェントを整理します。(Microsoft Learn)

まず実施すべきチェックリスト

最後に、管理者と開発者がすぐに確認できるチェックリストをまとめます。

チェック対応状況
監視対象のAzure VM、VMSS、Arcサーバーを一覧化した未確認なら最優先
AMAが導入済みか、DCR経由で自動導入する方針かを決めた手作業と自動展開の混在に注意
DCRのデータソースと送信先を確認した収集目的と一致しているか確認
DCRとVMの関連付けを確認したAMAだけでは不十分
DCRのリージョンとワークスペースのリージョンを確認した複数リージョン環境は要注意
DCEが必要なPrivate Link構成か確認したAMPLS/DNSも確認
Log Analytics agentとの重複収集がないか確認したコスト増の原因になりやすい
SentinelとAzure MonitorのSecurityログ収集経路を整理したEvent/SecurityEventの重複に注意
HeartbeatだけでなくEvent、Syslog、Perfなど実データを確認した収集漏れ防止
DCRの編集方法をポータルかIaCに統一したJSON設定の上書き防止

Azure MonitorのVMログ収集は、単にエージェントを入れる作業ではありません。DCRを中心に、収集対象、送信先、関連付け、ID、ネットワーク、重複収集、移行計画をまとめて設計する必要があります。

まずは既存環境で「どのVMに、どのDCRが、どのログを、どのワークスペースへ送っているか」を棚卸ししてください。そのうえで、ポータルで管理する標準DCRと、IaCで管理する高度なDCRを分け、不要な旧エージェントや重複収集を整理することが、安定したAzure Monitor運用への近道です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次