ServiceNow CMDBへのエクスポート

circle-exclamation

このページでは、HTTP API エクスポーターをServiceNow構成管理データベース(CMDB)と統合する方法を説明しています。 したがって、このドキュメントの構成サンプルは以下のコンテキストに準じています:

  • エンドポイントを使用してNexthinkデータをServiceNow CMDBにエクスポートする: api/now/import/<staging_table>/insertMultiple

  • 単一のデータエクスポーター内でNexthink Webインターフェースに各アセットと関係を追加します。

  • ペイロード構造を配列を含むJSONオブジェクトとして設定します。

  • 開発チームだけがアクセスできるNexthinkインスタンス上で空のCMDBを使用したテストを実施します。

前提条件

ServiceNow統合を実行するために必要なコンポーネント:

Nexthink推奨のServiceNow CMDB設定

以下の表は、データエクスポートのスケジューリングとデータ量の推奨される組み合わせを示しています。

Nexthinkは、下記の推奨制限を超えるボリュームのデータエクスポーターを実行する前に、データの取り込み完了を保証できません。

これは、NexthinkからServiceNowに1週間で350万件以上のレコードを直接エクスポートしてはならないことを意味します。

データエクスポートの再発
送信されるレコード数の推奨最大値

毎時

25K件まで

毎日

600K件まで

毎週

3.5M件まで

circle-info

NQLエクスポートAPI呼び出しの制限は顧客ティアによって異なります。 最新の制限については、バルクデータエクスポート(BDE)およびNQLエクスポートAPIの制限arrow-up-right 表を参照してください。

ServiceNowへのNexthinkデータのインポートのための推奨設定

Nexthinkは、ServiceNowのアウトオブザボックス変換マップ手順を使用して、Nexthinkからのデータをインポートすることを推奨します。

さらに、ServiceNow統合で汎用API呼び出しを設定するための更新セットパッケージを使用することができます。 ServiceNowにおける汎用API呼び出しのインストールガイドを参照してください。

ServiceNow基本設定

以下の手順は、基本的なServiceNow構成の要約を提供します:

circle-info

上記の手順をクリックすると、特定の指示にジャンプします。

ServiceNowインスタンスのタイムアウト設定を変更

  1. システム定義 > トランザクション割当ルール モジュールに移動します。

  2. RESTインポートセットAPIのリクエストタイムアウトとRESTおよびJSONキャッチオールを検索します。 **最大継続時間(秒)**の値を少なくとも_300_(5分)に変更します。

REST and JSON Catch all

アプリケーションアクセスをCI/ユーザーリレーションシップタイプテーブルに変更する

  1. システム定義 > テーブルモジュールに移動します。

  2. cmdb_rel_user_typeで名前で検索します。

    Tables module
  3. アプリケーションアクセスタブに移動し、すべてのスコープでCan readCan createCan updateを有効にします。

    Application access

ServiceNowでインポートセットテーブルを作成する

インポートセットテーブルは、レコードインポートのステージング場所として機能します。 システムはこれらのテーブル上にインポートされたデータに基づいて自動的にフィールドを生成するため、手動での変更は行わないでください。

Service Nowでは、必要に応じて使用できる標準インポートセットテーブルが提供されています。 詳細については、ServiceNowドキュメントarrow-up-rightを参照してください。

circle-info

インポートセットの作成は必須であり、データエクスポーターのリソースを構成するために使用されます。

インポートセットテーブルを作成するには2つの方法があります:

  • CSVファイルを使用する

  • カスタムスクリプトを使用する

CSVファイルを使用してインポートセットテーブルを作成する:

  1. CMDBに送信されるアセットまたはリレーションシップを含むNQLクエリを選択します。 たとえば、すべてのMicrosoft Windowsラップトップとデスクトップ:

  1. Nexthink Webインターフェースの調査モジュールでNQLクエリを実行し - limit 1 を追加します。

  2. 結果をエクスポートボタンを使用してCSVファイルをエクスポートします。

  3. ServiceNowでフィルタナビゲータからAll > System Import Sets > Administration > Data Sourcesに移動します。

  4. 新規をクリックします。

  5. フォームを完成させます**。** 下記の表に従ってフィールドに記入してください:

フィールド
説明

名前

このデータソースを識別するための一意の名前。

インポートセットテーブルラベル

使用するインポートセットステージングテーブルのラベル。 たとえば、nexthink_workstations

インポートセットテーブル名

これは以前に設定されたテーブルラベルを使用して自動生成されます (u_nexthink_workstations)。 既存のテーブルとの名前空間の競合を防ぎます。

タイプ

ファイル

フォーマット

CSV

CSVデリミタ

,

  1. エクスポートしたCSVファイルを添付します。

  2. すべてのレコードをロードをクリックします。

詳細な手順については、ServiceNowドキュメントarrow-up-rightを参照してください。

カスタムスクリプトを使用して新しいインポートセットテーブルを作成する

  1. フィルタナビゲータからAll > System Import Sets > Administration > Data Sourcesに移動します。

  2. 新規をクリックします。

  3. フォームを完成させます。 下記の表に従ってフィールドに記入してください:

フィールド
説明

名前

このデータソースを識別するための一意の名前。

インポートセットテーブルラベル

使用するインポートセットステージングテーブルのラベル。 たとえば、nexthink_workstations

インポートセットテーブル名

これは以前に設定されたテーブルラベルを使用して自動生成されます (u_nexthink_workstations)。 これは既存のテーブルとの名前空間の競合を防ぎます。

タイプ

カスタム (スクリプトでロード)。

データローダー

これは通常、ステージングテーブルにデータをロードするためのスクリプトを提供するために使用されます。 Nexthinkが送信するすべてのフィールドは、マップ変数の一部として追加されなければなりません。 フィールドは次のように見えるはずです:

})(import_set_table, data_source, import_log, last_success_import_time); |

  1. すべてのレコードをロードをクリックします。

  2. 送信をクリックします。

詳細な手順については、ServiceNowドキュメントarrow-up-rightを参照してください。

システムがインポートセットテーブルを作成したことの検証

  1. All > System Import Sets > Import Set Tablesに移動します。

  2. ステップ3で作成したインポートセットテーブルがリストに含まれていることを確認します。

変換マップの作成

ServiceNow documentation arrow-up-rightでは、変換マップは次のように定義されています:

変換マップは、インポートセット内のフィールドと、イベントincidentやユーザーsys_userなどの既存のServiceNowテーブル内のフィールド間の関係を決定するフィールドマップのセットです。

  1. データソースまたは変換マップモジュールから変換マップを作成します。

  2. データソースからページの下部に移動し、新規ボタンをクリックします。

New transform
  1. または、System Import Sets > Create Transform Mapに移動することもできます。

    • どちらのオプションも、必須フィールドをすべて記入する必要があるフォームのあるページにリダイレクトします。

Table transform map
  1. 以下の表に従ってフォームを完成させます:

フィールド
説明

名前

変換マップの一意の名前

ソーステーブル

データがソースを介してインポートされた前の手順で作成されたステージングテーブル

ターゲットテーブル

すべてのデータが保存される最終テーブル

  1. 送信をクリックし、フィールド用の変換を作成する準備が整います。

  2. ページの下部にあるフィールドマップセクションで、新規をクリックします。

新しいフィールドマップセクションでは、ソーススクリプトを使用のボックスをチェックするかチェックしないかで、2通りの変換を構成できます。

ソーススクリプトオプション未チェックの状態での変換

Field map
  1. ソースフィールドからターゲットフィールドに値をそのままコピーします。

  2. 以下の表に従ってフィールドを記入してください:

フィールド
説明

ソース式

選択されたステージングテーブルから値を取得するフィールド。

ターゲットフィールド

選択されたターゲットテーブル(最終テーブル)から値を格納するフィールド。

集約

これによりレコードの一意性が判断されます。 このボックスにチェックを入れると、そのフィールドはレコードが挿入または変更される必要があるかどうかを検出するための主キーとして使用されます。

ソーススクリプトオプションをチェックした状態での変換

このオプションでは、ソーススクリプトがターゲットフィールドの値を定義します。

Source script

以下の表に従ってフィールドを記入してください:

フィールド
説明

ターゲットフィールド

選択されたターゲットテーブル(最終テーブル)から値を格納するフィールド。

集約

これによりレコードの一意性が判断されます。 このボックスにチェックを入れると、そのフィールドはレコードが挿入または変更される必要があるかどうかを検出するための主キーとして指定されます。

ソーススクリプト

このJavaScriptメソッドは、値を返し、対象となるフィールドに保存します。

変数sourceを使用して、ソーステーブルから情報を取得します。

さらに詳しい情報は、このページのカスタム変換セクションを参照してください。

選択アクションフィールド

ターゲットテーブルのいくつかのフィールドは、他のテーブル(会社、ユーザー、その他の参照)への外部参照である可能性があります。 これらのフィールドのいずれかを選択すると、選択アクションという新しいオプションが有効になります。

  1. 選択アクションの値を作成に設定します。

Choice action
説明

作成

システムは、参照テーブル(メーカー、ユーザー、その他。)に新しいレコードを作成します。 ソースフィールドの値を使用して。 ターゲットテーブルはこの新しいレコードを参照します。

無視する

システムは値を無視し、最終テーブルで列は空のままになります。

拒否する

システムはソーステーブルから全レコードを省略します。

  1. 送信をクリックすると、システムは変換マップ詳細ページにリダイレクトします。 必要なだけのフィールドを追加するか、直接変換マップを保存することができます。

詳細はServiceNowのドキュメントarrow-up-rightを参照してください。

さらに、ServiceNowインストールガイドの一般API呼び出しで利用可能な更新セットパッケージも確認できます。

NexthinkでのServiceNow CMDBへのHTTP APIデータエクスポーターの設定

  • 新しいデータエクスポーターを、HTTP API Exporterドキュメントで説明された手順に従って作成します。

  • 一般タブで次のパラメータを設定します:

    • 資格情報: 対象インスタンスのServiceNow認証情報です。

    • メソッド: POST。

    • リソース: api/now/import/<import_set_table>/insertMultipleimport_set_tableは、ServiceNowで作成および設定されたインポートセットテーブルの名前です。

  • データタブで次のパラメータを設定します:

    • NQLクエリ: アセットまたは関係をエクスポートするクエリを挿入します。

    • ペイロード構造: 配列を持つJSONオブジェクト。

    • ペイロード: エクスポートする要素に対応するプレースホルダーをNQLクエリから取り込んで、1つの要素のみを指定してペイロードを作成します。 以下のJSON例を参照してください。

  • データエクスポーターを保存します。

circle-info

ペイロード内のフィールド名は、インポートセットテーブルで定義されたものと一致する必要があります。

エンドツーエンドのを実行する

ワークステーションのために、全体の設定をテストするためにエンドツーエンドを実行します。

エンドツーエンドのためのNexthinkおよびServiceNowの設定

  1. NexthinkのWebインターフェースでこれらのコンポーネントを設定します:

    • ServiceNowの資格情報

    • ワークステーションのためのデータエクスポーター

  2. ServiceNowでこれらのコンポーネントを設定します:

    • ワークステーション用のインポートセットテーブル

    • ワークステーションを作成/更新するための変換マップ

HTTPデータエクスポーターをテストする

最大20件のレコードをテストロードするボタンをクリックして、データタブで構成されたクエリを実行します。

circle-info

20件までのレコードのテストロードに関する詳細はHTTP API Exporterのドキュメントを参照してください。

インポートテーブルのコンテンツとServiceNowでの変換結果を確認する

  1. インポートセットテーブルの名前をコピーします。 例: x_nexsa_g_api_call_import_set_workstation

  2. ServiceNowインターフェースの左側のエクスプローラーフィールドにインポートセットと入力します。

  3. 高度なオプションのインポートセットをクリックします。

  4. そのテーブルを参照するすべてのインポートセットを表示するために、フィルターにインポートセットテーブルを挿入します:

Import set table

各インポートセットは、挿入されるすべてのレコードを含む番号を持っています。

  1. 詳細については、インポートセット番号リンクをクリックします。

  2. 詳細ページで、インポートセットに関する情報を確認します:

    • インポートセットテーブルが作成されたときのことを確認します。

    • ロード完了時間を確認します。

    • 実行時間を確認します。

Import set
  • 詳細ページの下部にある3つのタブで以下の情報を見つけてください:

インポートセット実行: 挿入/更新されたレコード数、エラー数、適用された変換マップなどプロセスに関する統計情報。

Import set runs

インポートセット行: 最終テーブルの内容。 これらの行のいずれかをクリックして、最終的に保存されたレコードを確認します。

Import set rows

インポートログ: テスト中に追跡されたログ。

Import log

ServiceNowでのエンドツーエンドテスト結果の確認

ServiceNowで最終テーブルを確認し、データが正しく挿入されたことを確認します。

Final table

カスタム変換

ServiceNowのドキュメント arrow-up-rightは、変換マップを次のように定義しています:

変換マップは、インポートセットのフィールドと既存のServiceNowテーブル(例: Incident incidentやUser sys_user)のフィールド間の関係を決定するフィールドマップのセットです。

ソーススクリプトオプションがチェックされている変換事項 で説明されているように、変換マップ内でソーススクリプトを有効にして、Nexthinkからの入力データを変更することができます。

たとえば、NexthinkはRAMメモリデータをバイト単位で格納しますが、ServiceNowは同じデータをメガバイト単位で格納します。 データを正しく格納するには、バイトからメガバイトに変換する必要があります。

以下に、受信データを変換するための基本的なスクリプトの例を紹介します:

バイトをメガバイトに変換

バイトをギガバイトに変換

2つのフィールドを連結

文字列の前半を挿入

上記のカスタム変換は、ServiceNowインストールガイドの一般API呼び出し内の更新セットパッケージに含まれています。

ターゲットテーブルでの空フィールドのトラブルシューティングガイド

統合プロセスの終わりには、フィールドが値を持っていることが期待されますが、フィールドは空です。

この問題は、統合の各段階での名前付けの問題によっている可能性が高いです。 すべてが正しく名付けられており、予期される情報が適切な場所にあることを確認するために、以下の手順に従ってください。

circle-info

デモンストレーション用に、以下の例ではフィールドdevice.group_nameを使用しています。

Nexthinkでのトラブルシューティング

  1. 問題のフィールドが、ペイロード(JSON)の一部であり、データモデルから正しいフィールドによって埋められていることを確認します。 この情報は、Nexthink Data Exporterページ>データタブで入手可能です。

NQL query
  1. Nexthink Investigationsで、問題のフィールドにいくつかの情報が含まれていることを確認します。

NQL editor

ServiceNowでのトラブルシューティング

  1. 問題のフィールドが中間テーブルに存在し、その名前がペイロードの名前と一致していることを確認します。

  2. システム定義>テーブルに移動します。 望むインポートセットテーブルを検索し、その名前リンクをクリックします。

  3. ServiceNow詳細ページの下部で、リスト内のフィールドを検索します。

  4. フィールドの名前をクリックします。 カラムラベルは、Nexthink Data Exporterで設定されたペイロードのプロパティと同じでなければなりません。

Dictionary entry
  1. そのフィールド用の変換セットがあることを確認します。

  2. 管理者>変換マップにあるステージングテーブルの関連する変換マップを見つけ、名前リンクをクリックします。

  3. 次のページで、望むフィールドをリスト内で検索し、その名前をクリックします。 ソースフィールドとターゲットフィールドがステージングテーブルと最終テーブルでそれぞれ設定されているアイテムが1つ以上存在するはずです。

  4. ソーススクリプトが値を返していることを確認するために、コードにログ追跡を追加します。 以下のJavaScriptを確認してください:

Field map
  1. インポートセットテーブル内のフィールドにデータが含まれていることを確認します。 エンドツーエンドセクションで説明されている段階を実行します。

Import set workstations

FAQ

chevron-rightCIタイプをインポートするにはどうすればよいですか?hashtag

CIタイプをインポートするには、この文書のConfiguring Data Exporter in Nexthinkセクションで説明されているようにデータエクスポーターを設定する必要があります。 生成されたペイロードが変換マップで設定されたフィールドに一致することを確認してください。

Nexthink WebインターフェースがPOSTリクエストをトリガーすると、システムはServiceNowインスタンスにインポートセットを作成し、設定されたフィールドマップに従ってターゲットテーブルを自動的にポピュレートします。

chevron-rightNexthinkとServiceNow間のペイロードフィールドにエラーがある場合はどうなりますか?hashtag

Nexthink Webインターフェースに設定されたNexthinkペイロードにdevice.nameのような値が含まれている一方で、ServiceNow側でデータソースがdevice_nameを使用して作成されている場合、リクエストが送信されたときにその値は空のままになります。

新しいレコードが最終テーブルで作成されたときに特定の値を検証するビジネスルールがある場合、これはエラーを引き起こす可能性があります。

この種のエラーを避けるために、エクスポーターの自動実行をスケジュールする前に20レコードのテストロードを実行することが重要です。

chevron-rightエンドツーエンドを設定して実行した後に新しいフィールドを追加した場合はどうなりますか?hashtag

このプロセスは、Creating an import set table in ServiceNowセクションで説明されているものと非常に似ています。

  1. インポートセットテーブルを設定するために使用したデータソースを開きます。

  2. インポートセットテーブルを修正します:

    1. インポートセットテーブルの作成にファイルを添付した場合、Nexthink Webインターフェースから新しい列を含む新しいファイルを添付し、再び20レコードのテストロードを実行します。

    2. カスタムスクリプトを使用してインポートセットテーブルを作成した場合、マップ変数内に列を追加し、再び20レコードのテストロードを実行します。

  3. インポートセットテーブルの一部として最終テーブルに新しい列が追加された変換マップを修正します。

  4. Nexthinkデータエクスポーター内のペイロードを修正して、新しいフィールドを含むようにします。

  5. Nexthink Webインターフェースで20レコードのテストロードを実行します。

  6. ServiceNowのインポートセットテーブルに新しい列が追加され、それに応じてポピュレートされていることを確認します。

  7. ServiceNowの最終テーブルがその列を適切にポピュレートしたことを確認します。

chevron-rightデータをインポートしたとき、sys_choiceフィールドはどうなるのでしょうか?hashtag

参照フィールドと同様に、sys_choiceテーブルは、挿入された値がターゲットクラスのsys_choiceテーブルにすでにエントリーを持っている場合、異なった動作をします。

2つの異なるケースがあります:

  1. ターゲットクラス用のsys_choiceテーブルに挿入された値がエントリーを持っていない場合、ServiceNowは値をテーブルに挿入し、フォントカラーは青色です。 これは、挿入された値がレコードにはありますが、そのフィールドの選択コンボボックスから手動で選択することはできません。\

    Operating system

    青のケース選択

  2. 挿入された値がターゲットクラス用のsys_choiceテーブルにすでにエントリーを持っている場合、ServiceNowは値をテーブルに挿入し、フォントカラーは黒色です。 これは、そのフィールドの選択コンボボックスメニューから値を選択する資格があることを意味します。 この段階で、その値がsys_choiceテーブルに存在しない場合、Choice fieldセクションで説明されているように、その挿入前に作成することが可能です。\

    sys-choice table
chevron-right同時に他のインポートメカニズムが実行されている場合はどうなりますか?hashtag

異なるコネクタからCMBDテーブルにデータをインポートする場合、統制フィールドが正確に構成されていることを確認してください。

変換マップの作成セクションで説明されているように、変換マップの動作は、照合チェックボックスに依存します。 ServiceNowがターゲットテーブルに任意のレコードと一意にマークされたフィールドを見つけた場合、CIは最後のインポートセットの情報で更新されます。

chevron-rightインポートプロセスを自動的に実行できますか?hashtag

データエクスポートをNexthinkからスケジュールし、ServiceNowでインポートプロセスを開始する必要があります。

chevron-rightユーザーとワークステーションの関係がアセットの挿入前に実行された場合はどうなりますか?hashtag
  • ユーザーまたはワークステーションのアセットが利用可能になる前にユーザーとワークステーションの関係が実行されても、インポートプロセスは失敗しません。 その代わりに、ServiceNowは関係テーブルにレコードを挿入しますが、アセットへの参照は空のままです。

chevron-rightネットワークやサーバーの問題でデータエクスポーターがサードパーティーツールに接続できない場合はどうなりますか?hashtag

データエクスポーターがサードパーティーツールに接続できない場合、NQLクエリスケジューラからエクスポートされた情報は失われます。

Last updated

Was this helpful?