Operations Manager での頻繁な構成変更の検出とトラブルシューティング

この記事では、Operations Manager の頻繁な構成変更を検出してトラブルシューティングするSystem Center説明します。

元の製品バージョン:  Microsoft System Center 2012 Operations Manager
元の KB 番号:   2603913

構成の概要

管理System Center構成サービスは、Operations Manager 管理グループ内のすべての正常性サービスの構成を計算します。 正常性サービスの構成は、正常性サービスのルール、監視、検出、およびタスク、および正常性サービスが監視するすべてのインスタンスで構成されます。

各正常性サービスに必要なすべての構成を計算するには、管理構成サービスに次の項目の一覧が必要です。

  • 監視対象のすべてのクラスのすべてのインスタンス
  • インスタンス間のホスティング関係
  • 監視対象のクラスに割り当てられているルール、監視、検出、その他のワークフロー
  • インスタンスの監視を担当する正常性サービス

さらに、管理構成サービスは、管理グループ内のすべてのインスタンス グループのメンバーシップを読み取る必要があります。 また、管理構成サービスは、これらのグループ、クラス、または個々のインスタンスを対象とするルールとモニターに対してオーバーライドを適用する必要があります。

管理グループ内のオブジェクトは、検出ワークフローによって送信された検出データに基づいて、監視対象クラスのインスタンスとして定義されます。 オブジェクトのキー プロパティが変更された場合、そのオブジェクトを監視対象クラスの新しいインスタンスとして追加できます。 それ以外の場合、そのオブジェクトは、そのクラスのインスタンスとは見なされません。

オブジェクトがメンバーであるクラスの一覧が変更される場合、そのオブジェクトを監視する正常性サービスの構成も変更されます。 これらの変更は、ルール、監視、検出、タスク、およびオーバーライドが以前の構成から追加または削除されると発生します。

構成チャーン

エージェントは、次のシナリオで安定した構成を受信できない場合があります。

  • 大量の検出データが管理構成サービスに送信されます。
  • 検出データの送信速度が速すぎて、より多くの検出データが送信される前に管理構成サービスが処理しきれなすぎます。 このシナリオは、データが常に計算中なので発生します。

検出データの頻繁な送信 (構成チャーンとも呼ばれる) は、一部の正常性サービスを古い構成で実行したり、管理サーバーの構成が古くなる可能性があります。 この動作により、一部の正常性サービスがオペレーション コンソールで淡色表示 (使用不可) になります。

探索ワークフローの実行時に、正常性サービスによって検出データが送信されます。 管理グループに新しい管理パックを導入すると、各エージェントで複数の検出ワークフローが実行される可能性があります。 また、新しいインスタンスが検出された場合、一部のエージェントで追加の検出が実行される場合があります。 グループ、上書き、その他のワークフローに対する変更により、検出ワークフローがエージェントで実行される可能性があります。 また、新しいエージェントを導入すると、管理構成サービスが新しいエージェントの構成を使用してインスタンス領域を更新する可能性があります。

構成管理サービスは、次のシナリオで頻繁に正常性サービス構成を再計算することを余儀なくされます。

  • 検出ワークフローは、頻繁に実行するように構成されています。
  • ワークフローによって検出されるプロパティは、検出ワークフローが実行される度に変更されます。

これらのシナリオが多くのエージェントで発生した場合、または管理サーバーが既に負荷の高いワークロードの下にある場合、構成管理サービスは変更率に対応できず、構成の解約が発生する可能性があります。

管理サーバー イベント ログを使用して構成のチャーンを特定する

Operations Manager イベント ログの管理サーバーで次のようなイベントは、新しい検出データのために管理グループの構成が変更されたと示します。

ログ名: Operations Manager
ソース: OpsMgr Connector
イベント ID: 21024
レベル: 情報
コンピューター: <Name>
説明:
OpsMgr の構成は、管理グループの古い可能性があります。構成サービスから更新された構成 <ManagementGroupName> を要求しています。 current(out-of-date) 状態 Cookie は"3A B0 1E 5C 81 F3 12 F5 56 B7 8A EF F8 01 BA 09 86 55 06 48" です。

次のようなイベントは、管理構成サービスが新しい検出データの処理を完了し、新しいデータに基づいて管理グループ構成に必要な変更を計算した状態を示します。

ログ名: Operations Manager
ソース: OpsMgr Connector
イベント ID: 21025
レベル: 情報
コンピューター: <Name>
説明:
OpsMgr は、Configuration Service から管理グループの新しい <ManagementGroupName> 構成を受け取っています。 新しい状態 Cookie は"34 FA 11 61 4D B8 03 59 3D 1D 66 B7 83 F3 C0 AA 7A 6F 1A 3B" です。

一般的な環境では、すべてのイベント 21024 の後にイベント 21025 が続く必要があります。 検出データによって構成データが変更されない場合、イベント ID は代わりに 21026 に設定されます。 大規模な管理グループでは、21024 イベントと 21025 イベントまたは 21026 イベントのペアが 1 時間に数回発生する必要があります。 対応する 21025 イベントまたは 21026 イベントのない 21024 イベントの長い文字列は、構成チャーンの兆候です。 さらに、イベント ログには、チャーンが検出されたという次のイベントが表示される場合があります。

ログ名: Operations Manager
ソース: OpsMgr Config Service
イベント ID: 29202
レベル: 警告
コンピューター: <Name>
説明:
OpsMgr Config Service では、データベースの変更が頻繁すぎるので、OpsMgr データベースから一貫性のある状態を取得できません。
これは、通常の一時的な検出データの増加が原因である可能性があります。ただし、最新の変更点を確認して、この増加が予期しないかどうかを判断します。
最新の監視オブジェクトの変更:
インスタンス = %1
Class = %2
変更時刻 = %3
最新の監視関係の変更:
リレーションシップ インスタンス = %4
ソース インスタンス = %5
ターゲット インスタンス = %6
RelationshipClass = %7
変更時刻 = %8

データ アクセス層が変更を照会する場合、データ アクセス層は複数のテーブルを読み取る必要があります。 読み取り後に、すべてのテーブルが読み取る前にテーブルの 1 つが変更された場合、データ アクセス層は前のイベント ID 29202 をログに記録して再試行します。 この間にエンティティまたはリレーションシップ インスタンスが読み取らされた場合、これらのインスタンスに関する情報はイベント フィールドに含まれます。 それ以外の場合、これらのフィールドは空のままにします。

Operations Manager データ ウェアハウスを使用して構成チャーンの潜在的な原因を特定する

Operations Manager Reporting コンポーネントがインストールされた管理グループでは、頻繁に変更を提出するワークフロー SQL複数のクエリを使用して識別できます。 これらのクエリは、Data Warehouse インスタンスSQL Server Management Studioに対して実行する必要があります。

過去 24 時間の検出ワークフローによって送信された変更の合計。

select
   ManagedEntityTypeSystemName,
   DiscoverySystemName,
   count(*) As 'Changes'
from
   (
      select distinct
         MP.ManagementPackSystemName,
         MET.ManagedEntityTypeSystemName,
         PropertySystemName,
         D.DiscoverySystemName,
         D.DiscoveryDefaultName,
         MET1.ManagedEntityTypeSystemName As 'TargetTypeSystemName',
         MET1.ManagedEntityTypeDefaultName As 'TargetTypeDefaultName',
         ME.Path,
         ME.Name,
         C.OldValue,
         C.NewValue,
         C.ChangeDateTime
      from
         dbo.vManagedEntityPropertyChange C
         inner join
            dbo.vManagedEntity ME
            on ME.ManagedEntityRowId = C.ManagedEntityRowId
         inner join
            dbo.vManagedEntityTypeProperty METP
            on METP.PropertyGuid = C.PropertyGuid
         inner join
            dbo.vManagedEntityType MET
            on MET.ManagedEntityTypeRowId = ME.ManagedEntityTypeRowId
         inner join
            dbo.vManagementPack MP
            on MP.ManagementPackRowId = MET.ManagementPackRowId
         inner join
            dbo.vManagementPackVersion MPV
            on MPV.ManagementPackRowId = MP.ManagementPackRowId
         left join
            dbo.vDiscoveryManagementPackVersion DMP
            on DMP.ManagementPackVersionRowId = MPV.ManagementPackVersionRowId
            AND CAST(DefinitionXml.query('data(/Discovery/DiscoveryTypes/DiscoveryClass/@TypeID)') AS nvarchar(max)) like '%' + MET.ManagedEntityTypeSystemName + '%'
         left join
            dbo.vManagedEntityType MET1
            on MET1.ManagedEntityTypeRowId = DMP.TargetManagedEntityTypeRowId
         left join
            dbo.vDiscovery D
            on D.DiscoveryRowId = DMP.DiscoveryRowId
      where
         ChangeDateTime > dateadd(hh, - 24, getutcdate())
   )
   As # T
group by
   ManagedEntityTypeSystemName,
   DiscoverySystemName
order by
   count(*) DESC

このクエリでは、3 つの列が作成されます。 最初の列は、ワークフローが対象となるオブジェクトのクラスです。 2 番目の列は、探索ワークフローの内部名を示します。 3 番目の列は、過去 24 時間にワークフローによって送信されたこのクラスのすべてのインスタンスのプロパティ変更の総数を示します。 すべてのクラスの変更の総数は、構成管理サービスがエージェント正常性サービスの構成を再計算する必要がある回数を表します。

一部のクラスのオブジェクトに対する変更の数は、安定した環境でもゼロに達しない場合があります。 プロパティの追加または削除、追加または使用停止されたエージェント、追加または変更されたサーバーの役割などの変更は、返される番号に反映されます。 構成チャーンが発生した環境では、1 つ以上のワークフローで他のワークフローよりも大きな値が表示される可能性があります。

過去 24 時間に変更されたプロパティ:

select distinct
   MP.ManagementPackSystemName,
   MET.ManagedEntityTypeSystemName,
   PropertySystemName,
   D.DiscoverySystemName,
   D.DiscoveryDefaultName,
   MET1.ManagedEntityTypeSystemName As 'TargetTypeSystemName',
   MET1.ManagedEntityTypeDefaultName As 'TargetTypeDefaultName',
   ME.Path,
   ME.Name,
   C.OldValue,
   C.NewValue,
   C.ChangeDateTime
from
   dbo.vManagedEntityPropertyChange C
   inner join
      dbo.vManagedEntity ME
      on ME.ManagedEntityRowId = C.ManagedEntityRowId
   inner join
      dbo.vManagedEntityTypeProperty METP
      on METP.PropertyGuid = C.PropertyGuid
   inner join
      dbo.vManagedEntityType MET
      on MET.ManagedEntityTypeRowId = ME.ManagedEntityTypeRowId
   inner join
      dbo.vManagementPack MP
      on MP.ManagementPackRowId = MET.ManagementPackRowId
   inner join
      dbo.vManagementPackVersion MPV
      on MPV.ManagementPackRowId = MP.ManagementPackRowId
   left join
      dbo.vDiscoveryManagementPackVersion DMP
      on DMP.ManagementPackVersionRowId = MPV.ManagementPackVersionRowId
      AND CAST(DefinitionXml.query('data(/Discovery/DiscoveryTypes/DiscoveryClass/@TypeID)') AS nvarchar(max)) like '%' + MET.ManagedEntityTypeSystemName + '%'
   left join
      dbo.vManagedEntityType MET1
      on MET1.ManagedEntityTypeRowId = DMP.TargetManagedEntityTypeRowId
   left join
      dbo.vDiscovery D
      on D.DiscoveryRowId = DMP.DiscoveryRowId
where
   ChangeDateTime > dateadd(hh, - 24, getutcdate())
ORDER BY
   MP.ManagementPackSystemName,
   MET.ManagedEntityTypeSystemName

このクエリは、過去 24 時間に変更されたプロパティを識別できます。 前のクエリと組み合わせて、このクエリは、プロパティの古い値と新しい値、変更を送信したエージェント、検出を実行したワークフロー、およびそれが含まれている管理パックを表示できます。

構成のチャーンを減らす

古い管理パックでは、送信されたプロパティが頻繁に変更される検出ワークフローが導入されました。 ほとんどの管理パックの現在のバージョンでは、これらの検出ワークフローが変更され、データの送信頻度が低かったり、頻繁に変更される揮発性プロパティに対して管理パックがクエリを実行したりすることはできません。 前のクエリで頻繁に発生するワークフローを含む管理パックをアップグレードすることをお勧めします。

管理パックの新しいバージョンが使用できない場合や、新しいバージョンを展開できない場合は、オーバーライドを使用して実行頻度を低くすることで、検出間隔を調整できます。 構成チャーンを担当する検出をオーバーライドによって無効にできる場合があります。 検出が数週間無効になっている場合は、ワークフローによって検出されたオブジェクトがデータベースからグルーミングされる可能性があります。 ただし、検出を無効にすると、データベースからオブジェクトをグルーミングする前に永続的なソリューションを実装できる限り、構成のチャーンを排除するための短期的な回避策を提供できます。 ワークフローを短い間隔で有効にし、オブジェクトがグルーミングされる前にオブジェクトを再発見することもできます。

これらの古い管理パックの一部のワークフローについては、「構成チャーンとは 」で説明されています。

空きディスク領域など、揮発性プロパティを対象とするカスタム検出からのワークフローの場合は、頻繁に変更されるプロパティを対象としないので、探索を書き換える必要があります。 探索ワークフローは、有効期間が短い (数週間以下) インスタンスを対象とすべきではありません。 検出ワークフローは、頻繁に変更されるインスタンスのプロパティを収集し (月に 1 回または複数回) 収集する必要があります。 揮発性データは、構成の計算では考慮されません。 したがって、揮発性データは、検出ワークフローではなく、パフォーマンス ルールによって収集する必要があります。

その他のパフォーマンス調整

大規模な管理グループ (1,000 エージェントを超える) では、ルート管理サーバー (RMS) が、通常は小規模な管理グループで問題を引き起こさなかった操作でビジー状態になる可能性があります。 この状況では、プロパティの変更率が小さい場合でも、変更の処理に必要な時間の長さのために頻繁にチャーンが発生する可能性があります。 いくつかの構成変更を使用して、RMS の運用オーバーヘッドを削減し、構成の解約を回避するために、一般的なプロパティ変更率を迅速に処理できます。 これらの構成の変更については 、「Operations Manager 2007 R2 および 2012のパフォーマンスの最適化」で説明します。

管理グループの構成を強制的に変更する

管理グループの構成チャーンが絶えず発生した場合、問題のワークフローの頻度を減らすか、問題のワークフローを無効にした変更はエージェントに伝達されません。 この場合、System Center 構成管理サービスが、このデータを生成するワークフローが無効になっているか、実行頻度が低い現在の構成を計算するには、受信検出データのフローをブロックする必要があります。

検出データは、データ アクセス サービス OperationsManager (DAS) System Centerデータベースに送信されます。 データは、最初に RMS の System Centerによって DAS に送信されます。 RMS は、エージェントまたは他の管理サーバーからこのデータを取得します。 ファイアウォールまたは他Windowsを使用して、ポート 5723 の RMS への着信接続をブロックできます。 このブロック手順では、データを送信するエージェントの現在の構成を Configuration Management サービスが計算するのに十分な長い期間、検出データがデータベースに送信されるのを OperationsManager 防ぐためです。

構成System Centerサービスが現在の構成を計算している間、RMS の System Center 管理サービスと System Center データ アクセス サービスを停止または無効にすることはできません。 管理System Center構成の計算を完了するには、次の情報が必要です。

  • RMS System Center管理サービスが実行され、正常である必要があります。
  • データ System Center サービスがデータベースと通信できる必要があります。

また、構成管理サービスが現在の構成を計算している間に、一部のデータがエージェントや他の管理サーバーでバックスローされる場合があります。 そのため、RMS の Operations Manager イベント ログにイベント ID 21025 が表示され次第、ファイアウォールまたはポートの除外を解除する必要があります。 このイベントは、構成管理サービスが、ワークフローが無効または変更された管理グループの新しい構成を計算したと示します。

Operations Manager レポートを使用して構成チャーンの潜在的な原因を特定する

新しいレポートが導入されました。 これらのレポートは、管理グループが処理するデータ全体の量に関する分析情報を提供します。 これらのレポートを使用して、標準ベースラインを確立し、オブジェクト検出ワークフローを調整する機会を特定できます。 構成チャーンが特定され、対処されるとすぐに、これらのレポートを長期的な計画に使用して、チャーンの再発を防止できます。

  • 管理パック別データ量レポート

    管理 パック別データ ボリューム レポートは 、管理パックが生成するデータ量に関する情報をコンパイルします。 このレポートには、次のデータ型の管理パックごとの出現回数が一覧表示されます。

    • Discoveries
    • アラート
    • パフォーマンス (パフォーマンス カウンター用に送信され、管理パックによって収集されるインスタンスの数)
    • イベント
    • 状態の変更
  • ワークフローとインスタンス別のデータ ボリューム レポート

    ワークフロー とインスタンス 別のデータ ボリューム レポートは、ワークフロー (検出、ルール、モニターなど) やインスタンス別に生成され、編成されるデータの量に関する情報をコンパイルします。

    このレポートにアクセスするには、次の 2 つの方法があります。

    • [管理 パック 別データ ボリューム] レポートで、レポートの上部にあるテーブルのカウント セルの 1 つを選択して、管理パックの [ワークフロー別データ ボリューム] レポートと [インスタンス] レポートを開きます。
    • オペレーション コンソールの [レポート] セクションから直接 レポートを実行します。 ワークフローとインスタンス別 のデータ ボリューム レポート を直接実行する場合は、結果をカスタマイズするためにレポートのパラメーターを設定する必要があります。 このレポートでは、管理パック別データ ボリューム レポートの情報の詳細を示 します。 したがって、既定のパラメーター設定では、探している情報が提供されない場合があります。