Azure Monitor Agent を利用したテキストログの一部が収集できない

2026-05-20T01:32:04.04+00:00

【事象】

Windows Server に出力されるテキストログをLog Analyticsに収集しようとしています。
テキストログが出力されているWindows Server にて、「Azure Arc」「Azure Monitor Agent」のセットアップと、Azureにて、「データ収集エンドポイントの作成」「データ収集ルールの作成」「Log Analyticsのカスタムテーブル」の作成を実施しました。

データ収集ルールにて、指定されたパスに新しくテキストログ(.log)を格納すると、テキストログの内容がLog Analytics(.log)が自動的に収集することを確認しているため、構成に問題はないと考えています。

この構成において、まだ一度もLog Analyticsに収集されていないテキストログ(.log)をまとめて格納しました。(100ファイル程)

この時、まとめて格納した分の取り込みがすべて完了する前に、新たに、指定されたパスに新しくテキストログ(.log)が生成されてしまい、新しくテキストログ(.log)の取り込みが始まってしまいました。

カスタムテーブル上で、確認のためにクエリを実行すると、以下のようになっておりました。

<クエリ>
MessageTraceLog_CL
| summarize count() by bin(TimeGenerated, 5m)
| sort by TimeGenerated asc

<結果>
TimeGenerated     count

2026/5/18 2:50:00.000  1436     ←新しく生成されたテキストログ

2026/5/18 2:55:00.000  199714    ←まとめて格納した分(全部で約100万レコードはあるが途中で終了)

2026/5/18 3:00:00.000  1386     ←新しく生成されたテキストログ

以降も新しく生成されたテキストログしか取り込まれず、まとめて格納した分のログが取り込まれません。
また、まとめて格納した分のテキストログを一度削除し、再度、指定されたパスに置きなおしても取り込まれませんでした。

【回答いただきたい内容】

・まとめて格納した分のログをLog Analyticsに取り込むための方法を教えていただきたいです。

・そもそも、大量のログが出力され、取り込みに時間がかかる状態の時に、新たなファイルが格納されたら、前の処理が途中で止まってしまうものなのかも合わせて教えていただきたいです。

Azure Monitor
Azure Monitor

Azure およびオンプレミス環境からのテレメトリ データを収集、分析、処理するために使用する Azure サービス。

0 件のコメント コメントはありません

1 件の回答

並べ替え方法: 最も役に立つ
  1. Suchitra Suregaunkar 15,960 評価のポイント Microsoft 外部スタッフ モデレーター
    2026-05-20T15:56:57.6466667+00:00

    Hello Intune/AzureAD構築PJ ユーザー

    詳細な設定内容および観測結果をご共有いただき、誠にありがとうございます。

    Azure Monitor Agent(AMA)は、リアルタイムかつ継続的なログ収集を目的として設計されており、監視対象のファイルに新しい内容が追記されるのを常時監視しています。今回、監視対象のパスに約100個の過去の .log ファイルを一括で配置された際、エージェントはそれらのファイルの読み取りを開始しました。

    ファイルスキャンパターンに合致するような大容量のログファイルを、監視対象ディレクトリ内で名前変更したり、コピーして配置したりすることは避けてください。もしやむを得ず配置する場合は、1分あたりの処理量を50MB以内に抑えるようにしてください。多数のログファイルを同時に追跡・監視することは、エージェントのCPUおよびメモリ使用率を著しく上昇させる要因となります。

    エージェントが大量のファイルを処理している最中に、新たなログファイルが生成された場合、エージェントは現在書き込みが行われている新しいファイルを優先して処理します。その結果、処理途中にあった古いファイル群については、実質的に取り込み処理が中断(破棄)された状態となります。また、中断されたファイルを再度配置し直しても、正常に処理されることはありません。これは、エージェントが内部的に各ファイルの読み取り位置を追跡・管理しており、それらのファイルを「すでに処理済み」と認識してしまうためです。

    新しいファイルが到着した際に、それまで進行していた取り込み処理が中断されるのは、以下の理由によるものです:

    これは、AMAにおけるリソースおよび設計上の制約です。このエージェントは、ログファイルに新しいレコードが追記されるのに合わせて、それらを収集することに最適化されています。一括インポートツールとしての設計はなされていません。エージェントが一度にあまりに多くのファイルやデータによって過負荷状態に陥り(目安となる50 MB/分というガイドラインを超過する場合など)、その最中に新たに書き込みが行われているファイルが出現すると、エージェントは処理対象をその新しいファイルへと切り替えます。

    • ログファイルの対象とするディレクトリは、10個を超えないようにしてください。
    • 監視対象ディレクトリ内のログファイルは、継続的にクリーンアップしてください。
    • すべてのログの処理が完了するのに十分な時間を確保するため、少なくとも2日間は待機してください。
    • 監視対象ディレクトリへのファイルコピーは、1分あたり50MBを超えないようにしてください。

    不足しているログをLog Analyticsにインポートするにはどうすればよいですか?

    AMAはこれらのファイルを再収集しないため、推奨される方法はLogs Ingestion APIを使用することです。これは、外部データや履歴データをAMAを介さずにカスタムLog Analyticsテーブルに直接送信するための、Microsoftが公式にサポートしている方法です。

    概要手順:

    1. 認証のために Microsoft Entra アプリケーションを登録します (クライアント ID、テナント ID、クライアント シークレット)。

    既存のデータ収集エンドポイント (DCE) とデータ収集ルール (DCR) を使用するか、API ベースのデータ取り込み用に専用の DCR を作成します。

    Entra アプリケーションに DCR 上で「モニタリング メトリック パブリッシャー」ロールを付与します。

    収集されていない .log ファイルを読み込み、各ログ エントリを JSON に変換して、ログ取り込み API エンドポイントに POST するスクリプト (PowerShell、Python、.NET など) を作成します。

    データは、同じ MessageTraceLog_CL カスタム テーブルに格納されます。

    Official tutorials with sample code:

    同様の問題の再発を防ぐため、以下のガイドラインに従ってください。

    監視対象ディレクトリに対し、大量のログファイルを一度にまとめてコピーしないでください。

    ファイルをコピーする必要がある場合は、1分あたり50MB未満に抑えてください。

    エージェントのリソース使用量を低減するため、収集済みの古いログファイルは適宜削除(クリーンアップ)してください。

    ファイルが取りこぼされたと判断する前に、処理が完了するまで少なくとも2日間の猶予を設けてください。

    References:

    お役に立てば幸いです!ログ取り込みAPIの設定についてご質問があれば、お気軽にお問い合わせください。

    このコメントが役に立ったと感じられた場合は、「いいね」ボタンをクリックしていただけると嬉しいです。

    Thanks,

    Suchitra.

    この回答は役に立ちましたか?


お客様の回答

質問作成者は回答に "承認済み"、モデレーターは "おすすめ" とマークできます。これにより、ユーザーは作成者の問題が回答によって解決したことを把握できます。