重複した CI の検出
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 の検出
CI 識別中に、IRE は重複するルックアップアイテム (シリアル番号 [cmdb_serial_number] テーブル) または重複する関連アイテム (ソフトウェアインスタンス [cmdb_software_instance] テーブル) を検出する場合があります。デフォルトでは、IRE はこれらの重複アイテムの重複排除タスクを作成しません。ただし、このデフォルトの動作を変更するには、特定のルックアップまたは関連テーブルの重複排除タスクを生成するように IRE を設定し、重複を修正することができます。
- ルックアップテーブルのエントリを、それぞれの識別ルールの識別子エントリに追加します。
- 関連するテーブルのエントリをそれぞれの識別ルールの関連エントリに追加します。
- 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
- ナビゲーションフィルターで、「 cmdb_duplicate_lookup_related_allowed_class.list」と入力します。
- [ 新規 ] を選択し、[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 の修正」を参照してください。