CMDB 識別を使用するための一般的なガイドライン
CMDB 識別を効果的に使用するための次の一般的なガイドラインを確認してください。
識別ルール
依存なし識別ルールは、他の CI とは独立して、CI の属性に基づいて CI を識別します。
依存識別ルールは、その依存 CI と、識別された CI とそれらの依存 CI との関係によって CI を識別します。依存識別ルールを用いた識別は、依存 CI と、識別された CI とその依存 CI との間の関係および修飾子に基づいています。このため識別は依存なし識別ルールよりも多くの時間を必要とし、いくつかの識別エラーが起こりやすくなります。したがって依存ルールの使用は最小限に抑える必要があります。
CI モデリングは、適切な CI 識別のためにどのタイプの識別ルールが必要であるかを決定します。
次の重要度順で識別ルールを作成します。
- 依存なし識別ルール - 依存識別ルールではなく、依存なし識別ルールを作成することが常に望ましいです。CI をモデル化するときは、依存なし識別に適した完全な属性セットを使用して CI を定義します。その場合は識別に追加の CI を使用する必要はありません。
- 依存識別ルール - 依存識別ルールを作成する必要がある場合は、単一レベルの依存関係を定義します。サポートされている依存関係レベルの最大数は 2 です。
- ルックアップ識別子エントリの作成は避けてください。ルックアップ識別子エントリの使用は、パフォーマンスを低下させる可能性があるためお勧めできません。やむを得ない場合は、まずクラス定義を確認し、依存なし識別ルールを使用できるようにする更新を検討してください。
- 識別ルール内の識別子エントリの数を、理想的には 1 に制限します。第 2 の識別子エントリは、各追加の識別子エントリと同様に、性能をさらに低下させる可能性があります。
- 最強の識別子エントリと関連するエントリが最高の優先度で設定されている強力な識別ルールを作成します。
- 識別ルールが必要なクラス レベルにあることを確認します。
ペイロード
次の重要度順でペイロードを作成します。
- ペイロード サイズ - ペイロードあたりの CI 数を 500 に制限します。
- ペイロードにエントリが重複しないようにしてください。例:識別ルールに [名前] フィールドの基準属性がある場合、次のペイロードには重複したアイテムがあり、失敗します。
var payload = { items: [{ className:'cmdb_ci_linux_server', values: { name:'Win Server 200', ram:'2048' }}, { className:'cmdb_ci_linux_server', values: { name:'Win Server 200', ram:'4096' }}] }; - ペイロードで次のようなシステム データを渡さないでください。
var payload = { items: [{ className:'cmdb_ci_linux_server', values: { name:'Win Server 200', sys_domain:'global', sys_domain_path:'xyz', sys_updated_on:'2017-06-15 16:25:11', sys_mod_count:23, }}] }; - 対応する識別ルールに指定されているものに従って、各ペイロード アイテムの基準属性の必要最小限のセットを指定します。
- CI を一致させる場合は、CI の sysId を使用します (可能な場合)。sysId が提供されている場合、IRE はこれを使用して、識別ルールの基準属性を必要とせずに CI を直接見つけることができます。この場合、IRE は照合プロセスで sysId を使用しません。
- 例:更新が必要な依存なし CI - sysId が利用可能です。
var payload = { items: [{ className:'cmdb_ci_linux_server', values: { sys_id:'194876usytrr65378098', ram:'2048', }}] }; - 例:挿入が必要な依存 CI。Tomcat War CI は Tomcat CI に依存し、Tomcat CI は Linux Server CI に依存します。Tomcat および Linux CI の SysId が利用可能です。
var payload = { items: [{ className:'cmdb_ci_app_server_tomcat_war’, values: { name:'war1', short_description:'my description' } }, { className:'cmdb_ci_app_server_tomcat', values: { sys_id:'194876usytrr65378098' } }, { className:'cmdb_ci_linux_server', values: { sys_id:'09876tysueyt6345lakiu' } }], relations: [{ parent:1, child:0, type: 'Contains::Contained by’}, { parent:1, child:2, type:'Runs on::Runs'} ] }; - 例:更新が必要な依存 CI - sysId が利用可能です。
var payload = { items: [{ className:'cmdb_ci_app_server_tomcat_war', values: { sys_id:'039387euey637465sytet', short_description:'my description new' } }] };
- 例:更新が必要な依存なし CI - sysId が利用可能です。
- すべてが同じ CI に依存する多数の CI を挿入する場合は、API 呼び出しをシリアル化する必要があります。そうしないと、多数の CI を同時に処理しようとするとシステムが重くなり、システム全体のパフォーマンスが大幅に低下します。