ServiceNow CMDB へのエクスポート
このドキュメントは外部ソースを参照しています。 Nexthink はサードパーティのドキュメントの正確性や、このページに記載されている情報に矛盾を生じさせる可能性のある外部の更新または変更を制御することはできません。 エラーや矛盾をNexthink サポートに報告してください。
このページでは、ServiceNowの構成管理データベース (CMDB) と HTTP API Exporter を統合する方法を説明します。 したがって、このドキュメントの構成サンプルは次の文脈に従います:
Endpoint
api/now/import/<staging_table>/insertMultiple
を使用してNexthinkデータをServiceNow CMDBにエクスポートするNexthink webインターフェース内の各資産と関係を単一のデータエクスポーター内で追加する
ペイロード構造を配列を持つJSONオブジェクトとして設定する
開発チームのみがアクセス可能なNexthinkインスタンスの空のCMDBでテストを行う
前提条件
ServiceNowインテグレーションを実行するためには、次のコンポーネントが必要です:
Nexthinkプラットフォームのインスタンス。
ServiceNowのインスタンス。
Nexthink webインターフェースでServiceNowエンドポイント_insertMultiple_用のコネクタ資格情報。
Nexthink webインターフェースのHTTP Data Exporter。
CMDB戦略。 MDB戦略と計画ドキュメントを参照してください。
データインポートプロセスに関与するユーザーのための、対象テーブルのACLルールに必要なロールのコンプライアンス。
ServiceNow CMDBのためのNexthink推奨設定
次のテーブルは、データエクスポートスケジューリングとデータボリュームの推奨される組み合わせを示しています。
以下の推奨制限を超えるボリュームについて、Nexthinkは次のデータエクスポーターの実行前にデータ取り込みを完了することを保証できません。
つまり、一週間でNexthinkからServiceNowに3.5百万件以上のレコードを直接エクスポートしてはいけません。
毎時
最大25Kレコードまで
毎日
最大600Kレコードまで
毎週
最大3.5Mレコードまで
NQL APIによって返される最大レコード数は1回の呼び出しで100万件です。
NexthinkデータをインポートするためのServiceNow推奨設定
NexthinkはServiceNowでのデータインポートに標準のトランスフォームマップ手順を使用することを推奨しています。
さらに、ServiceNow Integrationでの一般的なAPI呼び出しを設定するためのアップデートセットパッケージを使用できます。 ServiceNowの一般的なAPI呼び出しのインストールガイドを参照してください。
ServiceNow基本設定
以下に記載されている手順は、基本的なServiceNowの設定の簡単なサマリーを提供します。
上記のステップをクリックすると、特定の指示にジャンプします。
ServiceNowインスタンスでタイムアウト設定を変更する
システム定義 > トランザクションクォータールールモジュールに移動します。
RESTインポートセットAPIリクエストのタイムアウトとRESTおよびJSONキャッチオールを検索します。 **最大持続時間(秒)**の値を少なくとも_300_(5分)に変更します。
テーブルCI/ユーザー関係タイプのアプリケーションアクセスを変更する
システム定義 > テーブルモジュールに移動します。
名前で
cmdb_rel_user_type
という値を検索します。\アプリケーションアクセスタブに移動し、すべてのスコープに対して読み取り、作成、更新を有効にします。\
ServiceNowでのインポートセットテーブルの作成
インポートセットテーブルは、レコードインポートのためのステージング位置として機能します。 これらのテーブルのフィールドはインポートされたデータに基づいて自動的に生成されるため、手動での変更は行わないようにしてください。
必要に応じて使用できる標準のインポートセットテーブルをServiceNowは提供しています。 詳しくはServiceNowドキュメントをご参照ください。
リソースをData Exporterに設定するために、インポートセットを作成することは必須です。
インポートセットテーブルを作成する方法は2つあります。
CSVファイルを使用する
カスタムスクリプトを使用する
CSVファイルを使用してインポートセットテーブルを作成する:
CMDBに送信されるアセットまたは関係を含むNQLクエリを選択します。 例として、すべてのMicrosoft Windowsノートパソコンとデスクトップ:
NexthinkのWebインターフェースのInvestigationsモジュールでNQLクエリを実行し、
limit 1
を追加します。結果をエクスポートボタンを使用してCSVファイルをエクスポートします。
ServiceNowでは、フィルターナビゲーターですべて > システムインポートセット > 管理 > データソースに移動します。
新規をクリックします。
フォームを完成させます。以下の表に従ってフィールドを記入します:
名前
このデータソースを識別するための一意の名前。
インポートセットテーブルラベル
使用するインポートセットステージングテーブルのラベル。 例えば、nexthink_workstations。
インポートセットテーブル名
これは、前に設定したテーブルラベルを使用して自動的に生成されます(u_nexthink_workstations)。 すでに存在するテーブルとの名前空間の衝突を防ぎます。
タイプ
ファイル
フォーマット
CSV
CSV区切り文字
,
エクスポートしたCSVファイルを添付します。
すべてのレコードを読み込むをクリックします。
詳細な指示については、ServiceNowドキュメントをご参照ください。
カスタムスクリプトを使用して新しいインポートセットテーブルを作成する
フィルターナビゲーターですべて > システムインポートセット > 管理 > データソースに移動します。
新規をクリックします。
フォームを完成させます。 以下の表に従ってフィールドを記入します:
名前
このデータソースを識別するための一意の名前。
インポートセットテーブルラベル
使用するインポートセットステージングテーブルのラベル。 例えば、nexthink_workstations。
インポートセットテーブル名
これは、前に設定したテーブルラベルを使用して自動的に生成されます(u_nexthink_workstations)。 すでに存在するテーブルとの名前空間の衝突を防ぎます。
タイプ
カスタム(スクリプトで読み込む)。
データローダー
これは通常、ステージングテーブルにデータを読み込むスクリプトを提供するために使用されます。 Nexthinkが送信するすべてのフィールドは、マップ変数の一部として追加されなければなりません。 フィールドは次のようになります:
})(import_set_table, data_source, import_log, last_success_import_time); |
すべてのレコードを読み込むをクリックします。
送信をクリックします。
詳細な指示については、ServiceNowドキュメントをご参照ください。
システムがインポートセットテーブルを作成したことを確認する
すべて > システムインポートセット > インポートセットテーブルに移動します。
ステップ3で作成されたインポートセットテーブルがリストされていることを確認します。
変換マップを作成する
ServiceNow ドキュメント は変換マップを以下のように定義しています:
変換マップは、インポートセットと、インシデント
incident
やユーザーsys_user
などの既存のServiceNowテーブルのフィールド間の関係を決定する一連のフィールドマップです。
データソースからまたは変換マップモジュールから変換マップを作成します。
データソースから、ページの下部に移動し、新規ボタンをクリックします。
システムインポートセット > 変換マップの作成 に移動することもできます。
どちらのオプションも、必要なすべての必須フィールドを入力する必要があるフォームを持つページにリダイレクトされます。
以下の表に従ってフォームを完成させます:
名前
変換マップの一意の名前
ソーステーブル
データソースで生成されたインポートしたデータのステージングテーブル
ターゲットテーブル
すべてのデータが格納される最終テーブル
送信をクリックし、フィールドの変換を作成する準備が整いました。
ページの下部にあるフィールドマップセクションで、新規をクリックします。
新しいフィールドマップセクションでは、ソーススクリプトの使用のボックスをチェックするかチェックしないかのいずれかで変換を設定できます。
ソーススクリプトオプションがチェックされていないときの変換
ソースフィールドからターゲットフィールドへ何も変更せずに値をコピーします。
以下の表に従ってフィールドを完成させます:
ソースフィールド
値を取得するための選択したステージングテーブルからのフィールド。
ターゲットフィールド
値を格納するための選択したターゲットテーブル(最終テーブル)からのフィールド。
合成
これは、レコードの一意性を決定します。 このボックスにチェックを入れると、レコードが挿入または変更されるかどうかを検出するための主キーとして使用されます。
ソーススクリプトオプションがチェックされているときの変換
このオプションでは、ソーススクリプトがターゲットフィールドの値を定義します。
以下の表に従ってフィールドを完成させます:
ターゲットフィールド
値を格納するための選択したターゲットテーブル(最終テーブル)からのフィールド。
合成
これは、レコードの一意性を決定します。 このボックスにチェックを入れると、レコードが挿入または変更されるかどうかを検出するための主キーとして使用されます。
ソーススクリプト
このJavaScriptメソッドは、目的のターゲットフィールドに格納される値を返す必要があります。 変数source
を使用してソーステーブルから情報を取得します。
選択肢アクションフィールド
ターゲットテーブルのいくつかのフィールドは、会社、ユーザー、その他の参照のように他のテーブルへの外部参照である可能性があります。 これらのフィールドを選択すると、新しいオプションである選択肢アクションが有効になります。
選択肢アクションの値を作成に設定します。
作成
システムは参照テーブル(製造元、ユーザー、その他)の新しいレコードを作成します。 ソースフィールドからの値とともに。 ターゲットテーブルはこの新しいレコードを参照します。
無視
システムは値を無視し、最終テーブルのカラムは空のままになります。
拒否
システムはソーステーブルからの全レコードを省略します。
送信をクリックすると、システムは変換マップ詳細ページにリダイレクトします。 フィールドを好きなだけ追加することも、直接変換マップを保存することもできます。
詳細については、ServiceNowドキュメントを参照してください。
さらに、ServiceNow インストールガイドにある一般的な API 呼び出しで利用可能な更新セットパッケージをレビューすることもできます。
ServiceNow CMDB 用 HTTP API データエクスポーターの設定 Nexthink
HTTP API エクスポータードキュメントに記載の手順に従って、新しいデータエクスポーターを作成します。
一般タブで次のパラメーターを設定します:
資格情報: 対象インスタンスの ServiceNow 資格情報。
メソッド: POST。
リソース:
api/now/import/<import_set_table>/insertMultiple
。import_set_table
は、ステップ3で作成および設定されたインポートセットテーブルの名前です。
データタブで次のパラメーターを設定します:
NQL クエリ: 資産または関係をエクスポートするためのクエリを挿入します。
ペイロード構造: 配列を含む JSON オブジェクト。
ペイロード: エクスポートする要素を1つだけ指定し、NQL クエリから取得するプレースホルダーを指定してペイロードを作成します。 以下の JSON 例を参照してください。
データエクスポーターを保存します。
ペイロード内のフィールドの名前は、インポートセットテーブルで定義されたものと一致しなければなりません。
エンドツーエンドの実行
ワークステーションの設定全体をテストするためにエンドツーエンドを実行します。
Nexthink と ServiceNow のエンドツーエンドでの設定
Nexthink web インターフェースで以下のコンポーネントを設定してください:
ServiceNow の認証情報
ワークステーション用データエクスポーター
ServiceNow 上で以下のコンポーネントを設定してください:
ワークステーション用のインポートセットテーブル
ワークステーションの作成/更新用の変換マップ
HTTP データエクスポーターのテスト
データタブで設定されたクエリを実行するために最大20件のレコードをテストロードボタンをクリックしてください。
HTTP API エクスポーターのドキュメントを参照して、最大20件のレコードのテストロードの詳細をご覧ください。
ServiceNow におけるインポートテーブルの内容と変換結果の確認
インポートセットテーブルの名前をコピーしてください。 例えば、
x_nexsa_g_api_call_import_set_workstation
。ServiceNow インターフェースの左側のエクスプローラフィールドに Import Set と入力してください。
Advanced オプション内の Import Set をクリックしてください。
フィルタにインポートセットテーブルを挿入して、そのテーブルを参照するすべてのインポートセットを表示します:
各インポートセットには挿入されるすべてのレコードが含まれる番号があります。
詳細については、インポートセット番号リンクをクリックしてください。
詳細ページで、インポートセットに関する情報を見つけます:
インポートセットテーブルが作成された時期を確認してください。
ロード完了時間を確認してください。
ロード実行時間を確認してください。
詳細ページの下部に以下の情報を持つ3つのタブがあります:
Import Set Run: 挿入/更新されたレコード数、エラー数、および適用された変換マップなどのプロセスに関する統計。
Import Set Rows: 最終テーブルの内容。 この行のいずれかをクリックして、保存された最終レコードを表示してください。
Import log: テスト中に追跡されたログ。
ServiceNow の最終テーブルを確認してエンドツーエンドのテスト結果を確認する
データが正しく挿入されたことを確認するために、ServiceNow の最終テーブルを確認してください。
カスタム変換
ServiceNow ドキュメンテーションで変換マップを次のように定義しています:
フィールドマップのセットである変換マップは、インポートセットのフィールドと既存の ServiceNow テーブルのフィールド間の関係を決定します。
変換用のソーススクリプトの使用オプションがチェックされた場合のセクションで説明されているように、Nexthink からのデータを変更するためにソーススクリプトを有効にできます。
例えば、Nexthink は RAM メモリのデータをバイト単位で保存しますが、ServiceNow は同じデータをメガバイトで保存します。 データを正しく保存するためには、バイトからメガバイトに変換する必要があります。
以下に、受信データを変換するために使用できる基本的なスクリプトの例を示します:
バイトをメガバイトに変換
バイトをギガバイトに変換
2つのフィールドを連結
文字列の最初の半分を挿入
上記で説明したカスタム変換は、ServiceNow の Generic APIコールインストールガイド内のアップデートセットパッケージに含まれています。
ターゲットテーブルの空白フィールドに関するトラブルシューティングガイド
インテグレーションプロセスの終了時にフィールドに値が期待されるかもしれませんが、そのフィールドが空です。
この問題は、インテグレーションのさまざまな部分でのネーミングの問題が原因である可能性が高いです。 すべてが正しく名前付けされ、期待される情報が正しい場所にあることを確認するために、以下の手順に従ってください。
以下の例では device.group_name
フィールドをデモの目的で使用します。
Nexthink 内のトラブルシューティング
問題のフィールドがペイロード (JSON) の一部であり、データモデルの正しいフィールドによって入力されていることを確認します。 この情報は、Nexthink Data Exporter ページ > データタブにあります。
Nexthink Investigations で、問題のフィールドがいくつかの情報を含んでいることを確認してください。
ServiceNow 内のトラブルシューティング
問題のフィールドがステージングテーブルに存在し、その名前がペイロードの名前と一致していることを確認します。
System definition > テーブルに移動します。 目的のインポートセットテーブルを検索し、その名前のリンクをクリックします。
ServiceNow の詳細ページの下部で、リスト内でフィールドを検索します。
フィールドの名前をクリックします。 カラムラベルは、Nexthink Data Exporter に設定されているペイロードのプロパティと等しくする必要があります。
そのフィールドに対して変換セットが存在することを確認してください。
System Import Sets > Administration > Transform maps の下のステージングテーブルに関連付けられた目的の変換マップを見つけ、その名前のリンクをクリックします。
次のページで、リスト内で目的のフィールドを検索し、その名前をクリックします。 ステージングテーブルと最終テーブルで設定されたソースフィールドとターゲットフィールドが一致する項目が1つあるはずです。
ソーススクリプトが値を返していることを確認するために、コードにログトレースを追加してください。 以下の JavaScript を参照してください:
インポートセットテーブルのフィールドにデータが含まれていることを確認してください。 エンドツーエンドセクションで説明された手順に従ってください。
よくある質問 (F.A.Q.)
Last updated