AzureMonitorAgentのキャッシュについて

1.はじめに

 AzureMonitorAgentのキャッシュについて、調査する機会がありましたので、AMAのトラブルシューティングの参考になれば幸いです。

 

2.AzureMonitorAgentの機能
 AzureMonitorAgent(以降AMAと記載)の主な機能は以下2点となります。
・データ収集規則 (DCR) を使用して、収集するデータの種類や変換方法、宛先を定義
・ローカルログ、パフォーマンスデータ、ファイルベースのログなど、さまざまなデータソースからデータを収集

 

3.AMAのキャッシュが使用される状況

AMAにはデフォルトで10GBのキャッシュが用意されていますが、このキャッシュは以下の状況の際に使用されます。
・AMAとSentinel(LogAnalyticsワークスペース)が通信できない場合
・NWの帯域が足りなく、転送遅延が発生する場合

 

4.AMAのキャッシュ領域容量が足りない場合に起こる現象
キャッシュがどんどん使用されてしまい、規定値(デフォルト10GB)を超えてしまうと、ガーベージコレクション(GC)が動作し、キャッシュの上限の90%になるまでキャッシュを削除してしまいます。

その際に、送信されていないメッセージキャッシュも削除されてしまうため、LogAnalyticsに転送できないログが発生し、LogAnalytics側でログが欠損してしまいます。

なお、GCが動作した場合、以下のログファイルに処理の内容が出力されるため、ログを確認することで事象の有無を確認することが可能です。
 /var/opt/microsoft/azuremonitoragent/log/mdsd.warn

 

5.AMAキャッシュ拡張
 AMAの処理でGCが発生する場合の対処方法の一つとして、キャッシュの上限(10GB)を増やすことで対処することが可能です。実施方法は以下のサイトが参考になります。
 参考URL:https://learn.microsoft.com/ja-jp/azure/azure-monitor/agents/azure-monitor-agent-manage?tabs=azure-resource-manager
 【AgentSettings DCR を設定する】 -> 【Resource Manager テンプレート】

 

6.事例
 AMAのキャッシュについて、調査した際の事象、環境について以下に記載します。

①実際に起こった現象
 ②の構成において、Microsoft Sentinelへのログ転送にて以下の現象が発生しました。
 ・Syslogサーバからのログの転送遅延
 ・Syslogサーバが受け取ったログがすべてSentinelへ転送できていない

  ※上記は、NW帯域制御の制限の上限を上げることによって現象改善されました。

 

②構成
  環境:以下の経路、構成にてログが転送される構成になっています。
  「Zscaler」→「NSS」→「Syslogサーバ」→「NW帯域制御装置」→「Sentinel」

      

  Syslogサーバスペック:CPU:8CPU、メモリ:16㎇、ディスク:/var、/共用で400GB、OS:RHEL8
  ※CPU,メモリのサーバスペックは、以下のMS公開サイトのベンチマーク情報を参考に選定
   参考URL:

   https://learn.microsoft.com/ja-jp/azure/azure-monitor/agents/azure-monitor-agent-performance

  ログ転送クラウドサービス  :Zscaler(Zscaler Internet Access)
  クラウドサービスのログ流量 :ログ保存量 1日300GB、ログ取込み量:日中帯 平均9,000EPS強(バースト時20,000EPS強)

  クラウドサービス使用ユーザ :8万人程度

 

③AMAログとキャッシュディレクトリ
 AMAのキャッシュ配下のディレクトリで、デフォルトキャッシュ容量は10GBが上限となります。
 そのディレクトリの使用量が10GBを超えると、GC処理が行われます。
 その際、キャッシュにあるログは、転送完了、未完関係なく古いキャッシュから削除されます。
  /var/opt/microsoft/azuremonitoragent/events
 

 AMA処理のログは以下のディレクトリへ出力されます。
  /var/opt/microsoft/azuremonitoragent/log

 

 確認した主なログファイル
 /var/opt/microsoft/azuremonitoragent/log/mdsd.info
 →AMA起動時のログが出力、その際にキャッシュ拡張している場合は、AgentSettingsパラメータで設定した容量(MB)が確認できます。ただし、デフォルト値は表示されません。   
 /var/opt/microsoft/azuremonitoragent/log/mdsd.warn
 →GCが発生時の処理内容が出力されます    
 →AMAでのログの処理が20,000EPSを超えた際に出力されます(メッセージが出てもAMAの処理動作に制限はかからない)      
 /var/opt/microsoft/azuremonitoragent/log/mdsd.qos
 →AMAのログ処理時の統計情報が出力されます(CSV形式:15分間隔)  

④キャッシュ拡張手順(10GBから100GBへ拡張)
  キャッシュ拡張手順については、次回の投稿時に記載予定しています。     

いいね (←参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルクロステクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください