カスタムプルコネクタの作成
イベントソースの代わりにイベントを取得するために、スクリプト、コネクタ定義、およびコネクタインスタンスを必要とするカスタマイズされたプルコネクタを作成できます。
始める前に
このタスクについて
- イベントモニタリングツールに接続する。
- イベントモニタリングツールからイベントを取得する。
- Web サービス API を使用してイベントをイベント [em_event] テーブルに送信する。「REST API」を参照してください。
手順
-
カスタム MID サーバースクリプトインクルードの作成
この例では、Groovy (使用廃止) を使用しています。Groovy のスクリプトインクルードの代わりに、JavaScript を使用することをお勧めします。
-
次のメソッドを実装します。
- @Override OperationStatus testConnection()
- @Override OperationStatus execute()
-
クラスを設計して、ThirdPartyConnector を拡張します。
public class HypericConnector extends ThirdPartyConnector -
イベントの作成、送信、ログ記録、およびサードパーティのコネクタ基底クラスのためのプラットフォームクラスをインポートします。
package com.service_now.mid.probe.tpcon.test import com.glide.util.Log import com.service_now.mid.MIDServer import com.service_now.mid.probe.event.IEventSender import com.service_now.mid.probe.event.SNEventSender import com.service_now.mid.probe.tpcon.OperationStatus import com.service_now.mid.probe.tpcon.OperationStatusType import com.service_now.mid.probe.tpcon.ThirdPartyConnector import com.snc.commons.eventmgmt.Event - コレクターによって提供される API を使用して、SCOM や VMware vRealize Hyperic (Hyperic) などのデータコレクターに接続します。
-
context パラメーターを使用して、コネクタインスタンスからのイベントフィールド値を設定します。
def authString = (context.username + ':'+ context.password).getBytes().encodeBase64().toString() def urlStr = 'http://'+context.host + ':' + context.parameters.port + '/' + apiFunction -
スクリプトに execute 関数を実装します。
API を使用してコネクタからイベントを読み取り、Event オブジェクトを作成して ServiceNow インスタンスに送信します。たとえば、次のようになります。
GPathResult alertsResponse1 = readAlerts('hqu/hqapi1/alert/find.hqu?begin=' + lastSignatureStr + '&end='+ tillStr +'&count=1000000&severity=1&inEscalation=false¬Fixed=false'); Event event = new Event() event.emsSystem = context.name event.source = "Hyperic" event.description = it.@reason event.type = it.@name ... IEventSender eventSender = MIDServer.getSingleton(SNEventSender.class) for (Event event : list) { eventSender.sendEvent(event) }
-
次のメソッドを実装します。
- 移動先 MID サーバー > MID サーバースクリプトファイル スクリプトを作成します。
- [親] フィールドを Groovy として指定し、必要に応じてフォームに入力して [送信] をクリックします。
- 移動先 イベント管理 > 統合 > コネクタ定義 をクリックし、コネクタ定義を作成します。
-
[実行する Groovy スクリプト] フィールドで、MID サーバースクリプトファイルを選択し、必要に応じてフォームに入力します。
username または host に加えて、他のパラメーター (port など) を追加して、[送信] をクリックします。
- 移動先 イベント管理 > 統合 > コネクタインスタンス コネクタインスタンスを作成します。
- [コネクタ定義] フィールドでコネクタ定義を選択し、必要に応じてフォームに入力して、[送信] をクリックします。
- スクリプトを確認またはデバッグするには、Groovy から MID サーバーログへのデバッグ出力を使用します。
- カスタムコネクタインスタンスを使用して受信イベントを監視するには、 ECC キュー > 順番待ち ConnectorProbe でフィルターします。
-
カスタムコネクタ定義を作成します。
- 移動先 すべて > イベント管理 > 統合 > コネクタ定義.
- [New] をクリックします。
- [名前] フィールドに、コネクター定義のわかりやすい名前を入力します。
- [スクリプトタイプ] フィールドで、[Javascript] を選択します。
- フォームヘッダーを右クリックし、[保存] を選択します。
[実行する Javascript] フィールドには、JavaScript テンプレートファイルの名前が自動的に入力されます。 -
デフォルトの JavaScript ファイルを編集するには、JavaScript ファイル名の右側にある情報アイコン (
) をクリックして、次の手順を実行します。
-
testConnection 関数に必要な情報を指定します。
この関数は、ターゲットへの接続が有効であるかどうかを確認するためにコネクター定義をテストします。
-
execute 関数に必要な情報を指定します。
この関数は、外部ソースから情報を取得します。
-
retrieveKpi 関数に必要な情報を指定します。
この関数は、外部ソースからメトリクスデータを取得します。
-
testConnection 関数に必要な情報を指定します。
- オプション: デフォルトの JavaScript を自分の JavaScript コードに置き換えることができます。
-
必要に応じてフィールドに入力します。
表 : 1. [コネクタ定義] フォーム フィールド 説明 デフォルトスケジュール イベント受信の試行間隔 (秒)。 双方向 アラートが変更された場合に外部モニタリングシステムを更新できるようにすることを指定します。SCOM にデフォルトの実装があります。 アラートフィールド識別子 手動で変更されると外部モニタリングシステムを更新させるアラートフィールドを指定します。 注:このフィールドは、[双方向] が選択されている場合にのみ表示されます。メトリクスを収集 メトリクスの収集を有効にする場合に選択します。 注:メトリクスは、SCOM 外部イベントソースに対してのみ収集されます。メトリクス収集デフォルトスケジュール (秒) 収集する必要がある情報の秒数を指定します。デフォルト値は 10 秒です。 注:このフィールドは、[メトリクスを収集] が選択されている場合にのみ表示されます。コネクタパラメーター イベントサーバーとの通信を有効にするためのパラメーターを指定します。 MID サーバー の機能に対するコネクター定義 イベントサーバーからのイベントを処理する MID サーバー の名前。指定しない場合は、利用可能な MID サーバー が使用されます。 - [送信] をクリックします。