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へ拡張)
  キャッシュ拡張手順については、次回の投稿時に記載予定しています。     


 (この記事が参考になった人の数:1)
 (この記事が参考になった人の数:1) 読み込み中...
読み込み中...