ServiceNow への SFTP からの CMDB インポート
このページには、SSHファイル転送プロトコル(SFTP)サーバーからServiceNowへのデータをインポートするための手順が記載されています。
Nexthinkは、設定管理データベース(CMDB)にデータをインポートするためにServiceNowの標準プロシージャの使用を推奨します。
以下に、参考用の公式ServiceNowドキュメントをご紹介します:
さらに、Nexthinkは更新セットの形式で設定変更のグループを参考として提供します。 この更新セットの詳細は以下でご確認ください:
前提条件
Nexthink SFTPインポートコネクタには、Nexthink cloudプラットフォームインスタンスが必要です。 システムは、Nexthinkプラットフォームのアウトバウンド統合を使用して生成され、ServiceNowデータソースの消費のためにSFTPサーバーに保存された、SFTPサーバーからCSVファイル形式でServiceNowにデータをインポートします。
プロセスが円滑に進行することを確実にするためには、以下のコンポーネントが必要です:
Nexthink cloudインスタンス。
SFTPサーバー。
ServiceNowインスタンス。
SFTPサーバーにCSVファイルをエクスポートするために「アウトバウンドコネクタ」セクションを使用して作成されたデータエクスポーター。
CMDB戦略
インポートプロセスに関与するユーザーは、対象テーブルのACLルールに準拠するために必要な役割を持っている必要があります。
主要なServiceNowコンポーネント
データソース
プロセスの最初のステップは、SFTPサーバーからデータを取得してインポートセットテーブルに指定されたデータを反映させるためのアーティファクトを作成することです。
詳細は公式ServiceNowドキュメントをご覧ください:データソース | ServiceNow
データソースを作成する方法
データソースを作成するには、システムインポートセット > 管理 > データソースモジュールに移動し、_新規_ボタンをクリックします。
以下の表は、アーティファクトの各フィールドにおいてデータをどのように設定するかを説明しています。
名前
任意の名前を設定できます。
インポートセットテーブルラベル
任意のテーブルラベルを設定できます。
インポートセットテーブル名
前のフィールドの値に基づいて自動的に設定されます。
タイプ
SFTPを取得方法として使用するには、値を「ファイル」に設定する必要があります。
フォーマット
CSV
ファイル取得方法
SFTP
サーバー
SFTP DNS情報
ポート
SFTPポート。 デフォルトは「22」です。 SFTPサーバーの設定でカスタマイズされている場合は、異なるポートを設定してください。
ファイルパス
システムがサーバーにファイルを保存する絶対パス。 ファイル名を含める必要があります。例:/folder/folder/file_name.csv。
ユーザー名
SFTPユーザー名。
パスワード
SFTPユーザーパスワード。
CSVデリミタ
システムが異なる列に分割するためにファイルに設定されたデリミタ。
データソースを設定した後、関連するリンク「20レコードのロードテスト」をクリックして接続性をテストします。 このユーティリティで、提供したすべての詳細が正しいことを確認し、システムがSFTPサーバーからのデータをServiceNowのインポートセットテーブルにインポートしたことを確認します。
このテストで挿入されたデータは、テスト目的で作成されたインポートセットを生成するため、ターゲットテーブルに転送できない点に注意してください。 CMDBテーブルにデータをインポートするには、関連するリンク「すべてのレコードをロード」をクリックしてください。
更新セットに含まれるデータソースの例は以下でご確認ください:
ServiceNow経由でのSFTPインポートインストールガイド | スケジュールされたインポート構成
変換マップ
変換マップはインポートセット内のフィールドと既存のServiceNowテーブル内のフィールド間の関係を定義するフィールドマップのセットです。 このプロセスの一環で、データセットにインポートされた任意のデータを変更、分割、または変換して、要件に基づいて最終テーブルに保存することも可能です。
変換マップを作成する方法
システムはすべての変換マップをテーブル_sys_transform_map_内に作成します。 システムはテーブルフォームで直接それらを作成することができます。 しかし、リンクされるデータソースから始めて変換マップを作成することをお勧めします。
データソースフォームの下部には関連リスト「変換」があります。 このタブをクリックして「新規」をクリックすると、システムは新しい変換マップを作成するフォームにリダイレクトされます:
新しいレコードフォームで、次のフィールドを入力する必要があります:
名前
任意の名前を設定します。
ソーステーブル
データソースのために作成されたインポートセットテーブルを設定します。
アクティブ
このフィールドのボックスをチェックします。
ターゲットテーブル
システムがデータを挿入する必要がある最終的なCMDBテーブル。
上記で説明した詳細を設定した後、レコードを保存し、ページがリロードされるのを待ってから関連リンク「マッピングアシスト」でフィールドマッピングを作成します:
このツールはフィールドマップの作成を簡素化します。 変換マップにある関連リスト「フィールドマップ」を使用してすべてのマッピングを最初から作成する代わりに、この目的には「マッピングアシスト」を使用することを強くお勧めします。 必要に応じて、関連リスト「フィールドマップ」に小さな調整を加えてください。
このツールを使用するには、(ソース:データソース)の左の列と(ターゲットテーブル)の右の列のフィールドをディスプレイ中央にある「フィールドマップ」列に移動します。 その後、ソースとターゲットフィールドの順序を、この列の同じ行で一致させて、正しくマッピングされていることを確認します。
たとえば、ソースフィールド「device.name」をコンピュータテーブルの「Name」フィールドにマッピングするには、両フィールドが同じマップの同じ行にあることを確認してください。
最後に、将来それをインポートしようとする場合にシステムがレコードを更新することを確実にするために、集合フィールドを設定することが重要です。 たとえば、システムがテーブルのフィールド_ name _を使用してCIを識別している場合、重複を作成しないことが重要です。 これを避けるには、ターゲットテーブルレコードを更新し、再挿入されないことを確実にするために、変換マップ設定でフィールドを集合として設定する必要があります。
集合フィールドの動作に関する詳細はここでご確認ください:
カスタム変換を作成する方法
時には、SFTPサーバーからの着信データが期待される形式でない場合や、システムが挿入されたデータ全体ではなくその一部を保持する必要がある場合があります。 これらの場合、「マッピングアシスト」は十分でないため、カスタム変換を_作成する必要があります。
次のセクションでは、カスタム変換を作成する方法の詳細を説明します。 詳細が必要な場合は、公式のServiceNowドキュメントをご覧ください:
カスタム変換を作成するには、スクリプトを使用するために「ソーススクリプトを使用」ボックスをチェックし、ソースフィールドの代わりに使用します。
これを有効にすると、ディスプレイにソーススクリプトエディターが表示されます:
ここでは、挿入される値を計算するためのJavaScriptコードを追加することができます。 返されるように設定されているものは、フィールドマップで設定されているターゲットフィールドに挿入されることに注意してください。
このことから、インポートセットテーブルの列のいずれもこのスクリプトからソースオブジェクトを介してアクセス可能であることが最も便利な部分です。 これにより、たとえば、このオブジェクトを任意のスクリプトの基礎として使用することが可能です:
更新セットに含まれる変換マップの例は以下でご確認ください:
ServiceNow経由でのSFTPインポートインストールガイド | 変換マップ構成
カスタム変換サンプル
Nexthinkからよくインポートされるフィールドの1つはディスクスペース情報です。 NQLデータモデルリファレンスに記載されているように、フィールド_system_drive_free_space_はデータをバイト形式で保存します。 しかし、コンピュータテーブルのターゲットフィールドは、この情報をGBで保存することを期待しています。 この状況を解決するには、カスタムスクリプトを使用します:
前のセクションで説明したように、フィールドマップ設定フォームに移動し、_ソーススクリプトを使用_ボックスを有効にしてください。 エディターが表示されたら、次のスクリプトを設定してください:
上記のスクリプトは、Nexthinkから受信したデータ(バイト)を変数_value_に保存し、同じ値を1024で3回割ります。 言い換えれば、バイトをGBに変換します。
スケジュールされたインポート
スケジュールされたインポートは、システムが指定された時間間隔で指定されたインポート操作を実行することを示します。これは、毎日、毎週、周期的、または異なる時間枠として定義できます。 デフォルトでは、統合によって提供されるスケジュール済みインポートは非アクティブです。 このため、別のスクリプトがプログラム的にそれらを実行します。 詳細は下のセクションでご紹介します。
スケジュールされたインポートを作成する方法
スケジュールされたインポートを作成するには、システムインポートセット > 管理 > スケジュールされたインポートモジュールに移動し、_新規_ボタンをクリックします。 これにより、スケジュールされたデータインポートの新しいレコードフォームが表示されます:
新しいレコードフォームで、次のフィールドを入力します:
名前
任意の名前を設定します。
データソース
データをインポートするようにデータソースをスケジュールします。
アクティブ
このフィールドのボックスをチェックします。
実行
これは、システムがインポートを実行する頻度です。 このフィールドで選択した内容によって、下のフィールドが異なります。
最も重要な設定はアクティブ設定です。 このフィールドをアクティブ化すると、「実行」フィールドの下に、新しいフィールドが表示されるので、スケジュールされたインポートの日付や間隔の詳細を設定できます。 これらのオプションの詳細はServiceNowドキュメントでご確認ください。
アプリケーションアップデートセット用に作成されたスケジュールされたインポートは以下でご覧いただけます:
ServiceNow経由でのSFTPインポートインストールガイド | スケジュールされたインポート構成
インポート手順の実行
データをインポートするための主な方法は2つあります:
手動実行
手動でデータインポート手順を実行するには、インポートセットを作成し、インポートセットテーブルにNexthinkデータを入力する必要があります。
この目的のために、データソースに移動し、関連リンク「すべてのレコードをロード」をクリックします:
システムはインポートステータスフォームにリダイレクトします:
成功と異なる結果を受け取った場合は、返されたエラーを参照し、データソース設定を調整するために構成を再確認してください。
このフォームで、変換の実行リンクをクリックし、インポートセットと変換マップがデータをどこにインポートするかを選択してください:
変換ボタンをクリックすると、変換は完了し、システムはインポートステータスフォームを再度表示します:
ステータスに加えて、インポートセット、変換履歴 と インポートログ をナビゲートして、すべてのCIが期待どおりにインポートされたことを確認することができます。
スケジュールされた実行
インポートセットの実行をスケジュールするには、フィルターナビゲーターで システムインポートセット → Administration → スケジュールされたインポート に移動します。新規をクリックし、以下の例に示されているようにフォームを完成させます:
It is important to accurately fill in the following 3 fields:
データソース
最初に作成したデータソースを使用します。
実行者
システムはここにリストされたユーザーを代行してスケジュールされたインポートを実行します。 このユーザーに割り当てられたロールはプロセス全体に影響を与える可能性がありますのでご注意ください。
実行
インポートを実行したい頻度を選択します。
アクティブボックスをチェックすると、システムが選択した実行フィールドのオプションに応じて列の表示方法が異なります:
月次
週次
日次
定期的
よくある質問
Last updated