SCOMエージェントのキューファイルの調整方法について

日本マイクロソフトの佐々木です。
 
System Center Operations Manager (以下、SCOM) では、監視の結果として生成されるデータ(パフォーマンスデータ、アラートデータ、イベントデータ等) を一度キューファイルに保存し、しかる後に管理サーバーに送信します。
利用している管理パックや監視対象の状況によっては、収集するアラートやイベントデータに対して既定のキューファイルのサイズでは足りなくなり、後述のアラートが出力される場合があります。
このような場合は既定のキュー サイズを変更する必要があります。
以下に変更方法を記載します。
 
アラート例 :
「Send Queue % Used のしきい値」によって生成されたアラート
アラートの説明 :
現在の値 79.8122241870115 は、受け入れられるしきい値外です
 
キューファイルの調整方法
=====================================
1.) 変更対象のエージェント コンピューターにログオンし、レジストリ エディタを起動します。
 
2.) 以下のレジストリ値を変更します。
キー:HKLM\System\CurrentControlSet\Services\HealthService\Parameters\ManagementGroups\<Management Group Name>
値:MaximumQueueSizeKb
 
既定では 15 MBに設定されています。
管理サーバーのキューサイズも同様の方法で変更可能です。
管理サーバーでは既定で 100 MB に設定されています。
 
3.) サービス、”System Center Management” を再起動します。
 
※ キュー ファイルは以下のフォルダに格納されます
C:\Program Files\System Center Operations Manager 2007\Health Service State\Health Service Store
 
キュー ファイルの利用状況は以下のビューで確認できます。
[監視] ペイン -> [Operations Manager] -> [エージェントパフォーマンス]  -> [Send Queue % Used ] あるいは [Send Queue Size]をクリックし、用例内の"表示"にチェックを入れます。
 
 
(参考)
以下のフォルダに作成されているファイルの役割を説明致します。
C:\Program Files\System Center Operations Manager 2007\Health Service State\Health Service Store
 
「edb.chk」 edb ファイルへのコミットが完了したトランザクションとコミット待ちのトランザクションを追跡するためのファイルです。
「edb.log」トランザクションログファイルです。サイズは 5MB です。"edbXXXXX.log" が複数存在する場合もあります。
「HealthServiceStore.edb」 データベース本体となります。
「res1.log」および「 res2.log」 予約されているログファイルです。"edb.log"ファイルの名前変更、および新規の"edb.log"ファイルの作成の処理中に、十分なディスク容量がない場合、この予約ログファイルが使用されます。トランザクションログファイルと同様、常に5MB です。
「temp.edb」 進行中のトランザクションを格納するために使用されます。
 
SCOM2007のエージェントはデータをJetデータベース形式の 「HealthServiceStore.edb」に格納します。
エージェントがデータを生成すると、そのデータは一旦トランザクションログ (edb.log) に書き込まれます。その後、トランザクションログに書き込まれたデータがデータベース本体である「HealthServiceStore.edb」に書き込まれます。(これをコミット「反映」と呼びます。)
トランザクションログの名前は「edb.log」で、サイズは常に5MBです。「edb.log」 ファイルのサイズが5MBに達した場合、ファイル内の最も古いトランザクションログが、データベースにコミットされているかが確認されます。コミットされていない場合は、トランザクションログが新たに作成され、「edb.log」の名前が EDBXXXXX.log に変更されます。XXXXXは、直前に上限に達したトランザクション ログより 1 大きい 16 進数となります。なお、最新のトランザクションログの名前は常に 「edb.log」 となります。
 
ちなみに今回紹介した ”MaximumQueueSizeKb” の値は、Health Service Store 配下の特定のファイルのサイズを制限するものではありません。キューにキャッシュされたデータは「HealthServiceStore.edb」内の一領域に保存されるため、ファイル自体のサイズは設定したキューのサイズよりも大きくなる可能性があります。