CMDB 健全性:重複測定基準アルゴリズムIssue 「CMDB 健全性ダッシュボード:正確性スコアの計算」ジョブの実行時に、重複測定基準によってすべての CI がチェックされるわけではありません。「CMDB 健全性:正確性」ジョブを実行すると、重複測定基準は識別ルールが定義されていて、かつ次のいずれかの条件を満たす CI のみをチェックします。 重複 CI のいずれかに空の [検出ソース] 属性がある重複 CI にアクティブな重複排除タスク (reconcile_duplicate_task) がある チェック対象外の CI をすべて修正するには、ディスカバリーを実行します。つまり、 識別および調整エンジン (Identification and Reconciliation Engine、IRE) を呼び出すカスタムスクリプト/インポートエンジンを実行します。 注意:以下の例はもはや古く、New York より前のインスタンスリリースに適用されるものです。New York では、duplicate_of という新しいフィールドを導入しました。ただし、ロジックはまだ以下と非常によく似ています。要するに、どちらの CI も [検出ソース] 値が空でなければ、duplicate_of 属性の値に関係なく検出されません。 いずれかの CI で検出ソースが空でなければならない理由は何でしょうか? 構成アイテム (Configuration Item、CI) は、識別エンジンへの呼び出しを介して挿入されるものと想定されています検出ソースは、調整ルールを適用するなど、識別エンジンによって使用されるフィールドです識別エンジンが呼び出されると、IRE は重複タスクを作成し、重複 CI にフラグを設定しますこれは挿入時に既に行われているため、重複 CI に discovery_source フィールドが設定されている場合は、開始点として重複 CI を再度確認する必要はありませんCMDB のレコード数が数百万へと拡大するにつれて、開始点としてすべてのレコードをチェックしようとすると、重複測定基準ジョブにかなりの時間とリソースが必要になります ロジック このクラスは独立していますか (クラスの識別ルールに基づいて判断します。CI ID を確認して、クラスが独立しているかどうかを判断してください)? はい:続行しますいいえ:ロジックを終了します 次の条件をすべて満たす CI をクエリします。 ((Discovery_Source = Unknown AND (SYS_UPDATED_ON 1 day ago)) OR (Discovery_Source is Empty))duplicate_of が空であるそのクラスの包含ルール cmdb_ie_active_config の条件を満たしている クエリで返された CI のリストを反復処理します CI ごとに識別エンジンを呼び出します識別エンジンは、重複しているかどうかを判断し、重複している場合には重複排除タスクを作成します 例 名前とシリアル番号が同じ CI が 2 つあります。重複測定基準を実行すると、discovery_source と reconcile_duplicate_task に基づいて結果が返されます。 ケース 1: CI01 検出ソース:ServiceNowCI02 検出ソース:ServiceNow 結果:重複排除タスク (reconcile_duplicate_task) がない限り検出されない ケース 2: CI01 検出ソース:ServiceNowCI02 検出ソース:重複 結果:重複排除タスク (reconcile_duplicate_task) がない限り検出されない ケース 3: CI01 検出ソース:SomeSource ([sys_choice] テーブルに存在しない検出ソース)CI02 検出ソース:重複 結果:重複排除タスク (reconcile_duplicate_task) がない限り検出されない ケース 4: CI01 検出ソース:ServiceNowCI02 検出ソース:(空) 結果:検出、空が重複に変化、重複排除タスクが作成される ケース 5: CI01 検出ソース:(空)CI02 検出ソース:(空) 結果:検出、一方は重複に変化、他方は不明に変化、重複排除タスクが作成される Resolution日次重複プロセッサージョブで CI が重複としてマークされない CI は独立したクラスに属していますか? はい:続行しますいいえ:CI は、プロセッサーによってレビューされず、重複としてマークされません CI は次の条件をすべて満たしていますか? ((Discovery_Source = Unknown AND (SYS_UPDATED_ON 1 day ago)) OR (Discovery_Source is Empty))duplicate_of が空であるそのクラスの包含ルール cmdb_ie_active_config の条件を満たしている はい:続行しますいいえ:CI は、プロセッサーによってレビューされず、重複としてマークされません CI に実際に重複がありますか? はい:IRE が重複を判断し、重複排除タスクを作成しますいいえ:タスクは作成されません 重複を見つけるため、重複プロセッサーは識別および調整エンジン (IRE) を呼び出す際にデータソースとして「手動入力」を使用します。デフォルトの「手動入力」オプションが削除されている場合、重複測定基準を処理するときに、IRE は次のエラーをスローします。 identification_engine : INVALID_INPUT_DATA In payload invalid data source [Manual Entry] exist.テーブル [cmdb_ci] の [discovery_source] フィールドから有効な選択値を指定する必要があります。 そのため、すぐに利用可能な検出ソース「手動入力」が変更または削除されていないことを確認してください。 KB0712338 を参照して、健全性ジョブの実行時に機能する重複測定基準ワークフローの説明を確認してください。Related Linksこれは、孤立レコードがある場合にも発生する可能性があります。 チェックインスタンスシステム「ログ > すべて > ソース」CMDB 健全性を確認すると、レコードのテーブル名と最後のプロセス ID (レコードの sys_id) が得られる場合があります。このレコードについて、重複排除タスクテーブルで関連タスクを検索し、重複監査結果の下にあるすべての CI を開くことができるかどうかを確認します。cmdb リストビューで、クラスが<table name>のものを検索し、合計レコード数を<table name>リストビューの数と比較します。両者が異なる場合は、孤立したレコードが存在する可能性があります。タイプ文字列のシステムプロパティ glide.cmdb.logger.source.identification_engine を値 = info,warn,error,debug,debugVerbose で有効にします。詳細については、インスタンスノードログを参照してください。デバッグプロパティ:glide.cmdb.logger.source.CMDBHealth