パターンとは、ネットワーク上でどの CI を検出するか、どの認証情報を使用するか、CMDB でどのテーブルに入力するかをディスカバリーに指示する一連の操作です。

このトピックでは、水平ディスカバリーのフェーズについて理解していることを前提としています。プローブおよびパターンの水平ディスカバリープロセスについて確認する必要がある場合は、以下を参照してください。
注: プローブからパターンへの移行の詳細については、ナレッジ記事 KB0694477 を参照してください。

ディスカバリーでパターンを使用する方法

パターンはプローブと同じ機能を持ち、ターゲット CI を識別して探索します。ディスカバリーではディスカバリーの最後の 2 つのフェーズ (識別と探索) においてのみパターンを使用します。

パターンを使用して水平ディスカバリーを開始すると、パターンを使用していない場合と同じようにスキャンフェーズと分類フェーズが実行されます (プローブとセンサーを使用する場合のみ)。分類ステージが完了すると、ディスカバリーは分類子のトリガープローブを調べて、起動するプローブを確認します。Horizontal Pattern プローブがトリガープローブとして指定されている場合、ディスカバリーは Horizontal Pattern プローブと指定されたパターンの両方を起動します。

プローブとパターンの違い

水平ディスカバリーでパターンを使用する場合と、水平ディスカバリーでプローブのみを使用する場合の主な違いは、この表に示すとおりです。

トピック プローブを使用する水平ディスカバリー パターンを使用する水平ディスカバリー
ディスカバリーのフェーズ プローブは 4 つのディスカバリーフェーズすべてで実行されます。 パターンは識別フェーズと探索フェーズにおいてのみ実行されます。ディスカバリーでは引き続き、Shazzam プローブとポートプローブを使用してディスカバリーを開始します。
新しい CI の検索

ディスカバリーには、いくつかの初期設定のプローブとセンサーがあります。

ただし、新しい CI を探したり、ディスカバリーが CMDB で入力したデータを変更したりするには、ニュースプローブとセンサーを作成するか、既存のものをカスタマイズする必要があります。これを行うには、Java と JavaScript の知識が必要です。また、プローブが他のプローブやセンサーとどのようにして連携動作するか理解する必要があります。

ディスカバリーは、すべてのメジャーリリースと ServiceNow アプリストアにより多くのパターンを提供しています。

新しいパターンを作成したり、既存のパターンをカスタマイズしたりする場合は、分かりやすいインターフェイスであるパターンデザイナーを使用してステップをビルドし、値を入力することができます。

機能サポート すべての標準ネットワークと CI ディスカバリーをサポートします。パターンを使用しないと、特定のアプリケーションはサポートされません。完全なリストについては、「ITOM ヴィジビリティ により検出された製品に関する詳細情報」を参照してください。 すべての標準的なディスカバリーのサポートに加えて、パターンは次のものをサポートしています。
  • クラウドディスカバリー
  • 構成ファイルの追跡
  • CI 削除のストラテジー
ECC キューとトラブルシューティング

ディスカバリーでは、起動するプローブの数に応じて複数の ECC キューレコードが作成されます。

水平ディスカバリーに関する問題のトラブルシューティングを行うには、いくつかの ECC キューレコードを分析して、ディスカバリーが取得したデータを確認する必要があります。

ディスカバリーでは、そのパターンの追加の ECC キューレコードが 1 件のみ作成されます。

識別および探索中に水平ディスカバリーを使用して問題をトラブルシューティングするには、パターンの ECC キューレコードを 1つ分析する必要があります。

パフォーマンス 識別および探索しようとしているターゲット CI のタイプに応じて、ディスカバリーは識別フェーズ中に複数のプローブをトリガーし、ディスカバリーフェーズ中に追加のプローブをトリガーします。多くのプローブをトリガーして処理するとオーバーヘッドが増加するため、プローブを使用した水平ディスカバリーに長く時間がかかる可能性があります。 ディスカバリーは、識別フェーズと探索フェーズで 1 つのパターンをトリガーします。ディスカバリーで実行される必要があるすべての操作はパターン内にあり、ディスカバリーはパターンが終了するまで順番に実行できます。したがって、パターンディスカバリーによってパフォーマンスが向上する可能性があります。

垂直および水平ディスカバリーのパターン

ディスカバリーとサービスマッピングはともに、水平および垂直ディスカバリーに同じパターンを使用できます。ただし、これらは異なる方法で編集されます。すべての手順については、「パターンの作成またはカスタマイズ」を参照してください。垂直ディスカバリーでのみ使用されていたパターンを水平ディスカバリーに使用する場合は、いくつかの変更を加える必要があります。手順については、「水平ディスカバリーにおけるパターンの使用」を参照してください。

パターンオーケストレーター

パターンオーケストレーターは、検出でデータ収集に関連する複数のパターンを階層でトリガーできるようにするプロセスです。このプロセスは、MID サーバーで検出が遅くなって OOM (メモリー不足) の問題が発生する可能性がある大きなデータセット (または大きなペイロード) の問題の解決に役立ちます。

パターンオーケストレーターは、[パターンデザイナー] の [パターンオーケストレーター] タブでアクセスできます。このタブには、[トリガールール]、[オーケストレーター入力]、[オーケストレーター出力] の 3 つの新しいテーブルが含まれます。

[パターンデザイナー] の [パターンオーケストレーター] タブ
[トリガールール] テーブルでは、親パターンを [親パターン] フィールドで指定します。[バッチサイズ] フィールドでは、親パターンから子パターンにトリガーする必要があるアイテムの数を指定します。[バッチサイズ] には、[カウント]、[すべて]、[親コンテキストのみを使用] の各オプションがあります。
  • [カウント] では、バッチサイズカウントの数を指定する必要があります。子パターンは、親パターンが指定された数の CI を送信するたびにトリガーされます。
  • [すべて] では、親パターンから送信されたすべての CI を使用して子パターンを 1 回トリガーします。
  • [親コンテキストのみを使用] では、親パターンの出力設定に依存するため、トリガーする必要がある子パターンを指定できます。2 つのパターンの親が同じであるがどちらかを先にトリガーする必要がある際に便利です。

[オーケストレーター入力] で [CI タイプ] フィールドを使用して、CI タイプを親パターンまたは親の親パターンから受け入れます。[名前を付けて保存] フィールドでは、パターンで使用する CI タイプの名前を保存します。サービスアカウントは特殊なケースであり、service_account という名前にする必要があります。[CI 属性] フィールドでは、親パターンの出力を使用して使用する属性を選択します。

[オーケストレーター出力] では、後続のパターンに送信されるデータを制御します。これには、検出される CI のタイプを指定する [CI クラスタイプ] フィールドと、子パターンへの入力として渡される変数を指定する [変数名] フィールドが含まれます。[変数名] で指定されていない変数は、子パターンには送信されません。変数 source_native_key は、[変数名] フィールドで検索することによって手動で追加できます。

ソースネイティブキー

状況によっては、1 つのパターンでは CI に関する部分的な情報が、別のパターンでは同じ CI に関する部分的な情報がそれぞれ取得される場合があります。冗長なレコードを作成したり部分的な情報を破棄したりする代わりに、情報は CMDB IRE 部分のペイロード [cmdb_ire_partial_payloads_list] テーブルに保存されます。充分なパターンが部分的な情報を収集した後、そのデータを関連付けて CI の詳細情報を提供できます。

ページネーション

MID サーバーのメモリー負荷を軽減するもう 1 つの方法は、ページネーションです。ページネーションでは、大きいペイロードをページと呼ばれる小さい順序付けられたスライスに分割します。ページネーションでは、受信したアイテムの最大サイズを制限してトークンを生成します。そのページが処理されると、すべてのページが完了するまでトークンが次のページに渡されて処理されます。

ページネーションは、カスタム運用テーブル [sa_custom_operation] から制御されます。フォームでは、[ページネーションに対応] フィールドはデフォルトで非表示ですが、フォームのカスタマイズコントロールでフォームに追加できます。true に設定すると、パターンデザイナーの関連するパターンに [ページネーション] フィールドが含まれます。[ページネーション] フィールドを true に設定すると、そのステップがページネーションを含むパターンで実行されます。

分類子への水平パターンプローブの追加

水平ディスカバリーの識別および探索フェーズにパターンを使用するには、検出しようとしている CI の分類子に水平パターンプローブを追加する必要があります。

始める前に

必要なロール:discovery_admin

このタスクについて

警告: この手順は、カスタム分類子レコードまたはデフォルトでパターンが含まれていない場合のみを対象としています。ただし、この分類子からプローブを使用して CMDB にデータを既に設定している場合にパターンの使用に切り替えると、ディスカバリーで重複する CI が作成される可能性があります。このため、この手順に従うのは、この分類子タイプのプローブで ディスカバリーを実行したことがない場合のみです。

手順

  1. [すべて] > [ディスカバリー定義] > [CI 分類] > [{分類子の種類}]に移動します。
  2. 分類子のレコードを開きます。
  3. [プローブのトリガー] 関連リストをクリックします。
  4. 既存の識別および探索プローブを非アクティブ化します。
  5. [編集] をクリックし、[水平パターン] プローブを追加します。
    プローブが関連リストに表示されます。
  6. 関連リストビューから、[パターン] 列の下のフィールドをダブルクリックし、分類に関連付けるパターンを追加します。
    水平パターンプローブとパターンの追加
  7. [プローブのトリガー] 関連リストから他のプローブを削除するか、非アクティブ化します。
    注: パターンを削除しても、水平パターンプローブは分類子から自動的に削除されません。水平プローブに対して別のパターンを選択する必要があります。また、分類子に固有の識別および探索プローブの使用に切り替えることもできます。パターンを指定せずに水平プローブを使用すると、ディスカバリーは分類ステージの後に停止します。

水平ディスカバリーにおけるパターンの使用

新しいパターンを使用する場合、または垂直ディスカバリーに使用していたパターンがすでにある場合は、関連する分類子にいくつかの変更を加えて、水平ディスカバリー用のパターンを使用することができます。

始める前に

必要なロール:discovery_admin

このタスクについて

警告: この手順は、カスタム分類子レコードまたはデフォルトでパターンが含まれていない場合のみを対象としています。ただし、この分類子からプローブを使用して CMDB にデータを既に設定している場合にパターンの使用に切り替えると、ディスカバリーで重複する CI が作成される可能性があります。このため、この手順に従うのは、この分類子タイプのプローブで ディスカバリーを実行したことがない場合のみです。

手順

  1. ディスカバリーでパターンを使用できることを確認します。
    1. [パターン デザイナー] > [ディスカバリーパターン]に移動します。
    2. パターンを開きます。
      サービスマッピングで使用されるアプリケーションパターンは、タイプ 1-アプリケーションとして示されます。
    3. [基本] タブの [識別セクション] で、[TCP] または [すべて] のエントリーポイントタイプを許可するセクションが少なくとも 1 つあることを確認します。
      ない場合は 1 つ作成します。新しいパターンを作成するための識別手順を参照してください。
    4. パターンを保存します。
  2. インスタンスで、検出する CI タイプの分類を作成または変更します。
    分類子を次のように設定します。
    1. [ディスカバリー定義] > [CI 分類] > [{分類タイプ}]に移動します。
    2. 関連する分類子を開きます。
    3. 分類子を次のように設定します。
      • [関係性タイプ]:[Runs on::Runs] を選択します (プロセス分類子のみ)。
      • [条件]:パターンの定義と同じ条件を設定します。
      • [プローブのトリガー] 関連リスト:水平パターンプローブを追加し、使用しているパターンを [パターン] 列に追加します。
    分類子の他のフィールドの説明については、「ディスカバリー CI の分類の作成」を参照してください。

次のタスク

パターンをデバッグモードで実行し、テストします。パターンが正常に機能することを確認したら、ディスカバリースケジュールを設定したり、オンデマンドディスカバリーを実行したりして、ディスカバリーを実行できます。詳細については、「水平ディスカバリーのスケジュール」を参照してください。