重複した CI の検出

  • リリースバージョン: Australia
  • 更新日 2026年03月12日
  • 所要時間:11分
  • IRE 識別プロセスで重複した CI が検出されると、重複した CI の各セットがレビューおよび修正のために重複除外タスクにグループ化されます。重複した CI が多数ある場合、弱い識別ルールに起因する可能性があります。重複した CI を調整するように識別エンジンを設定できます。

    識別および調整エンジン (IRE) プロセス中に、重複 CI の処理が、プロパティ glide.identification_engine.skip_duplicates (デフォルトでは true に設定) および glide.identification_engine.skip_duplicates.threshold (デフォルトでは 5 に設定) と、検出される重複 CI の数によって決まります。重複 CI が自動的に調整され、重複をスキップするようにこれらのプロパティを設定できます。

    • glide.identification_engine.skip_duplicates が true で重複した CI の数が glide.identification_engine.skip_duplicates.threshold で指定されたしきい値よりも小さい場合、最も古い重複 CI が一致するとして選択され、更新されます。また、その最も古い重複 CI は、その重複 CI のセットのメイン CI になります。残りの重複 CI は、その duplicate_of 属性を適切なメイン CI に設定することで重複としてタグ付けされます。照合の間、IRE は、重複としてタグ付けされた CI をすべて除外します。
    • glide.identification_engine.skip_duplicates が false の場合、重複 CI の照合はエラーで失敗し、重複 CI は更新されません。

    また、glide.duplicate_ci_remediator.max.cis プロパティは多数の重複 CI の重複排除処理を決定します。詳細については、「重複 CI の修正」トピックの「多数の重複 CI」セクションを参照してください。

    どちらの場合でも、重複排除タスクは常に作成されます。

    注:
    重複 CI の場合、duplicate_of 以外の CI の属性のいずれかが IRE 処理によって更新されると、その CI は重複 CI とは見なされなくなります。そのような状況では、duplicate_of の値が CI でクリアされます。

    これらのプロパティの詳細については、「識別および調整のプロパティ」を参照してください。

    関連テーブルとルックアップテーブルでの重複 CI の検出

    CI 識別中に、IRE は重複するルックアップアイテム (シリアル番号 [cmdb_serial_number] テーブル) または重複する関連アイテム (ソフトウェアインスタンス [cmdb_software_instance] テーブル) を検出する場合があります。デフォルトでは、IRE はこれらの重複アイテムの重複排除タスクを作成しません。ただし、このデフォルトの動作を変更するには、特定のルックアップまたは関連テーブルの重複排除タスクを生成するように IRE を設定し、重複を修正することができます。

    識別中に IRE が重複排除タスクを生成するテーブルごとに、[CMDB 重複排除タスクのルックアップ] または [関連アイテム許可クラス [cmdb_duplicate_lookup_related_allowed_class] 構成テーブルにエントリを追加します。
    • ルックアップテーブルのエントリを、それぞれの識別ルールの識別子エントリに追加します。
    • 関連するテーブルのエントリをそれぞれの識別ルールの関連エントリに追加します。
    ベースシステムでは、この構成テーブルにはレコードがありません。この場合、識別ルールからのルックアップテーブルまたは関連テーブルの重複に対して、IRE は重複排除タスクを生成しません。関連テーブルまたはルックアップテーブルの重複を検出すると、IRE は構成テーブルにアクティブなエントリーを持つテーブルに対してのみ重複排除タスクを生成します。
    1. cmdb_duplicate_lookup_related_allowed_classテーブルに必要なロールがあることを確認します。
      • レコードを追加または更新するには:sn_cmdb_admin、cmdb_dedup_admin、またはitil_admin
      • レポートの読み取りまたは作成:sn_cmdb_editor、sn_cmdb_admin、itil、itil_admin、cmdb_dedup_admin
    2. ナビゲーションフィルターで、「 cmdb_duplicate_lookup_related_allowed_class.list」と入力します。
    3. [ 新規 ] を選択し、[CMDB 重複排除タスクのルックアップ] または [関連アイテムの許可されたクラス] テーブルフォームに入力します。
      フィールド 説明
      アクティブ エントリーがアクティブかどうか。
      ルックアップまたは関連アイテムクラス 重複レコードを検出したときに IRE に重複排除タスクを作成させるルックアップテーブル (シリアル番号 [cmdb_serial_number] など) または関連テーブル (ソフトウェアインスタンス [cmdb_software_instance] など)。
      識別子テーブル ハードウェア [cmdb_ci_hardware] やオペレーショナルテクノロジー (OT) などの識別ルールクラス。

    CMDB CI クラスモデル ServiceNow® Store アプリは、CMDB クラス階層を拡張するクラスモデルを追加し、追加されたクラスの識別ルールや調整ルールなどのメタデータを含みます。このアプリでクラスモデルを指定するときに、オペレーショナルテクノロジー (OT) テーブルなど、追加されたテーブルに固有のエントリを含むcmdb_duplicate_lookup_related_allowed_classテーブルを含めることもできます。その場合、IRE はテーブルで設定されている重複排除タスクを生成します。詳細については、「CMDB CI クラスモデル アプリ」を参照してください。

    CMDB CI クラスモデルアプリをインストールした後、追加されたクラスの cmdb_duplicate_lookup_related_allowed_class 構成テーブルにレコードを追加することもできます。

    ルックアップベースの識別中の重複参照 CI の検出

    ルックアップベースの識別 (クラスの識別ルールのルックアップ識別子エントリ) では、IRE はルックアップテーブル内の重複する関連アイテムを検出する場合があります。たとえば、シリアル番号が同一であるが、それぞれが異なる CI を参照している 2 つのレコードなどです。この場合、IRE は識別プロセスの一致として、参照されている古い CI を持つレコードを選択します。

    複数の CI に一致するルックアップアイテムは、組織によっては有効であり、他の組織では無効である場合があります。glide.identification_engine.lookup_match.create_duplicate_task_ci.enabled システムプロパティを使用して、重複排除タスクを作成する IRE の動作を構成できます。

    このような重複が組織内で有効かどうかを反映するように、次のようにプロパティを追加して設定します。
    false (デフォルト)

    IRE は古い CI を一致するものとして選択しますが、重複を処理するための重複排除タスクは作成しません。このような重複が重複の問題と見なされない場合に、この設定を使用します。たとえば、それぞれが異なる CI を参照している同一のシリアル番号を持つレコードなどです。ただし、各シリアル番号は実際には異なる種類のハードウェアを表すため、この状況は調整が必要な重複の問題とは見なされません。

    true

    IRE は照合プロセスに古い CI を選択し、重複を修正するための重複排除タスクを生成します。このような重複が修正が必要な問題と見なされる場合に、この設定を使用します。

    次の状況では、 glide.identification_engine.lookup_match.create_duplicate_task_ci.enabledが true の場合でも、IRE は重複排除タスクを作成しません。
    • カウントの完全一致を強制するがfalse に設定されています。設定場所の詳細については、 CI 識別ルールの作成の [別のテーブル (ルックアップテーブル) からの属性を使用する] オプションの詳細オプションを参照してください。
    • 識別中、ルックアップテーブル内の一致する CI の数が 1 より大きい場合。
    ルックアップレコード、入力ペイロード、および識別プロセスの結果の次の例を参照してください。
    • 例 1

      ルックアップテーブルcmdb_serial_numberには、重複するルックアップレコードと、両方のルックアップアイテム ABC123 と DEF456 に一致する複数の CI が含まれています:

      シリアル番号 構成アイテム
      ABC123 CI1
      ABC123 CI1
      ABC123 CI2
      DEF456 CI1
      DEF456 CI2
      DEF456 CI2
      var payload = {
         "items": [
            {
               "className": "cmdb_ci_linux_server",
               "lookup": [
                  {
                     "className": "cmdb_serial_number",
                     "values": {
                        "serial_number": "ABC123",
                        "serial_number_type": "system",
                        "valid": "true"
                     }
                  },
                  {
                     "className": "cmdb_serial_number",
                     "values": {
                        "serial_number": "DEF456",
                        "serial_number_type": "system",
                        "valid": "true"
                     }
                  }
               ],
               "values": {
                  "name": "CI_New"
               }
            }
         ],
         "relations": []
      };
      var jsonUntil = new JSON();
      var input = jsonUntil.encode(payload);
      var output = SNC.IdentificationEngineScriptableApi.createOrUpdateCIEnhanced("ServiceNow", input, {});
      gs.print(output);
      
      
      表 : 1. 識別結果
      カウントの完全一致 重複排除タスクを作成するためのプロパティ = true 重複排除タスクを作成するプロパティ = false
      true
      • 最も古い CI1 が照合され、更新されます。
      • CI1 と CI2 (Linux サーバークラス) の重複排除タスクが作成されます。
      • ABC123/システム & CI1 (シリアル番号ルックアップテーブル) の重複排除タスクが作成されます。
      • DEF456/システム & CI2 (シリアル番号ルックアップテーブル) の重複排除タスクが作成されます。
      • 最も古い CI1 が照合され、更新されます。
      • CI1 と CI2 の重複排除タスクは作成されません。
      • ABC123/システム & CI1 (シリアル番号ルックアップテーブル) の重複排除タスクが作成されます。
      • DEF456/システム & CI2 (シリアル番号ルックアップテーブル) の重複排除タスクが作成されます。
      False 上記と同じ 上記と同じ
    • 例 2

      ルックアップテーブルcmdb_serial_numberに重複するルックアップレコードは見つかりませんでしたが、それぞれ ABC123 と DEF456 に一致する 2 つの CI があります。

      シリアル番号 構成アイテム
      ABC123 CI1
      DEF456 CI2
      var payload = {
         "items": [
            {
               "className": "cmdb_ci_linux_server",
               "lookup": [
                  {
                     "className": "cmdb_serial_number",
                     "values": {
                        "serial_number": "ABC123",
                        "serial_number_type": "system",
                        "valid": "true"
                     }
                  },
                  {
                     "className": "cmdb_serial_number",
                     "values": {
                        "serial_number": "DEF456",
                        "serial_number_type": "system",
                        "valid": "true"
                     }
                  }
               ],
               "values": {
                  "name": "CI_New"
               }
            }
         ],
         "relations": []
      };
      var jsonUntil = new JSON();
      var input = jsonUntil.encode(payload);
      var output = SNC.IdentificationEngineScriptableApi.createOrUpdateCIEnhanced("ServiceNow", input, {});
      gs.print(output);
      
      表 : 2. 識別結果
      カウントの完全一致 重複排除タスクを作成するためのプロパティ = true 重複排除タスクを作成するプロパティ = false
      true
      • 一致する CI が見つかりません。
      • CI1 と CI2 の重複排除タスクは作成されません。
      • ルックアップアイテムの重複排除タスクは作成されません。
      • 一致する CI が見つかりません。
      • CI1 と CI2 の重複排除タスクは作成されません。
      • ルックアップアイテムの重複排除タスクは作成されません。
      False
      • 最も古い CI1 が照合され、更新されます。
      • CI1 と CI2 の重複排除タスクが作成されます。
      • ルックアップアイテムの重複排除タスクは作成されません。
      • 最も古い CI1 が照合され、更新されます。
      • CI1 と CI2 の重複排除タスクは作成されません。
      • ルックアップアイテムの重複排除タスクは作成されません。

    重複排除タスクの修正

    重複排除タスクのレビューと修復、およびメイン CI の使い方の詳細については、「重複 CI の修正」を参照してください。