Web サービスを使用した InterSystems IRIS の監視
このトピックでは、InterSystems IRIS® データ・プラットフォームのサポートにより WS-Management 仕様準拠機能を使用する方法について簡単に説明します。それらの機能を使用すると、SOAP を介してリモートで InterSystems IRIS インスタンスを監視できます。
InterSystems IRIS での WS-Monitoring のサポートの概要
SYS.WSMon パッケージは、WS-Management 仕様Opens in a new tabに従って、InterSystems IRIS インスタンスのリモート監視に使用できる Web サービスを提供します。このパッケージは、機能面で SNMP インタフェース ("SNMP を使用した InterSystems IRIS の監視" を参照) と類似していますが、組み込みの InterSystems IRIS Web サービス・サポートを使用しています。
WS-Management のサポートには、以下が含まれます。
-
ログ・モニタリング Web サービス (SYS.WSMon.ServiceOpens in a new tab) は、InterSystems IRIS インスタンスに関する情報を返すメソッドを提供します。
-
InterSystems IRIS Web サービス・クライアント (SYS.WSMon.ClientOpens in a new tab) は、そのモニタリング Web サービスまたは別の InterSystems IRIS インスタンスのモニタリング Web サービスのメソッドを呼び出すことができます。
この Web クライアントを使用する代わりに、独自の Web クライアントを作成することができます (場合によってはサードパーティ・テクノロジの使用も可能)。
-
各種 XML 対応クラスは、Web サービスとクライアントが監視情報を表示するために使用されます。
これらのクラスには SYS.WSMon.wsEventOpens in a new tab が含まれ、それによってイベントの表示が可能になります。
-
サンプル・イベント・シンク Web サービス (SYS.WSMon.EventSinkOpens in a new tab) は、イベントを受信して処理します。SOAP 呼び出しを使用し、このサンプル・イベント・シンク・サービスをサブスクライブすることにより、すべてのモニタリング Web サービスのイベントを受信できます。
このサンプルを使用する代わりに、独自のサンプルを作成することができます (場合によってはサードパーティ・テクノロジの使用も可能)。
これらのクラスは、%SYS ネームスペースでのみ使用できます。
基本的な監視として、ログ・モニタリング Web サービスと別インスタンスの Web クライアントを使用できます。以下の図は、監視クライアントがターゲット・インスタンスに監視データを要求する様子を示しています。ターゲット・インスタンス上のログ監視 Web サービスが応答し、クライアント監視データを送信しています。
より高度な例としては、別の InterSystems IRIS インスタンス上で実行されている可能性もある イベント・シンク・サービスを Web クライアントがサブスクライブすることがあります。例えば、以下の図では、監視クライアントはプライマリ・インスタンスに 3 番目のインスタンスをサブスクライブするよう要求を送信しています。プライマリ・インスタンスの監視 Web サービスは、クライアントにサブスクリプション ID を送信して応答し、その後、3 番目のインスタンスにイベントを送信します。3 番目のインスタンスはカスタム・レポートやアラートを作成するなど、さまざまな方法でこれらのイベントを処理できます。
イベント・シンク Web サービスでは、業務に必要なあらゆる処理を実行できます。
WSDL からの Web サービスおよび Web クライアントの生成の詳細は、"Web サービスおよび Web クライアントの作成" を参照してください。
サポートの詳細
インターシステムズでは、WS-Management の仕様の以下の部分をサポートします。
-
wxf:Get
-
wsen:Enumerate
-
wsen:Pull
-
wsen:Release
-
wse:Subscribe
-
wse:Renew
-
wse:Unsubscribe
詳細は、WS-Management の仕様 (https://www.dmtf.org/standards/published_documents/DSP0226_1.1.pdf)Opens in a new tab を参照してください。
モニタリング Web サービスの URL
任意の InterSystems IRIS インスタンスに対して、ログ・モニタリング Web サービスを次の URL で使用できます。<baseURL> はインスタンスのベース URL です。
http://<baseURL>/csp/sys/SYS.WSMon.Service.cls
以下はその例です。
http://localhost:8000/csp/sys/SYS.WSMon.Service.cls
同様に、この Web サービスの WSDL を以下の URL で使用できます。<baseURL> はインスタンスのベース URL です。
http://<baseURL>/csp/sys/SYS.WSMon.Service.cls?WSDL=1
モニタリング Web サービスの Web メソッド
SYS.WSMon.ServiceOpens in a new tab クラスには、以下の Web メソッドが用意されています。
method EnumBuffer() as %XML.DataSet
すべてのバッファ・サイズの統計を列挙する %XML.DataSetOpens in a new tab のインスタンスを返します。このインスタンスのデータセットには SYS.Stats.BufferOpens in a new tab クラスの Sample() クラス・クエリが使用されます。
%XML.DataSetOpens in a new tab を使用した作業の詳細は、"SOAP メッセージでのデータセットの使用"、または "%XML.DataSetOpens in a new tab" のクラス・リファレンスを参照してください。
SYS.Stats.BufferOpens in a new tab のクラスリファレンスも参照してください。
method EnumDatabase() as %XML.DataSet
そのインスタンスのすべてのデータベースを列挙する %XML.DataSetOpens in a new tab のインスタンスを返します。このインスタンスのデータセットには SYS.WSMon.wsDatabaseOpens in a new tab クラスの List() クラス・クエリが使用されます。
EnumBuffer() のコメントおよびクラスリファレンスの SYS.WSMon.wsDatabaseOpens in a new tab を参照してください。
method EnumResource() as %XML.DataSet
あらゆるシステム・リソースの Seize の統計を列挙する %XML.DataSetOpens in a new tab のインスタンスを返します。このインスタンスのデータセットには SYS.Stats.ResourceOpens in a new tab クラスの Sample() クラス・クエリが使用されます。
EnumBuffer() のコメントおよびクラスリファレンスの SYS.Stats.ResourceOpens in a new tab を参照してください。
method EnumWriteDaemon() as %XML.DataSet
すべてのライト・デーモンの統計を列挙する %XML.DataSetOpens in a new tab のインスタンスを返します。このインスタンスのデータセットには SYS.Stats.WriteDaemonOpens in a new tab クラスの Sample() クラス・クエリが使用されます。
EnumBuffer() のコメントおよびクラスリファレンスの SYS.Stats.WriteDaemonOpens in a new tab を参照してください。
method EventCancel(id) as %Integer
指定された Web サービスのサブスクリプションをキャンセルします。EventSubscribe() を参照してください。
method EventSubscribe(location) as %String
指定された Web サービスをサブスクライブして、その InterSystems IRIS インスタンスのイベントに関する情報を受信します。この Web サービスには、例で示されているように、独自の Web サービスまたは SYS.WSMon.EventSinkOpens in a new tab Web サービスを指定することができます。独自の Web サービスを作成する場合、SYS.WSMon.EventSinkOpens in a new tab Web サービスの WSDL に従う必要があります。
location には、その Web サービスの EventSink() メソッドを呼び出すのに必要な URL を指定します。<baseURL> はインスタンスのベース URL です。SYS.WSMon.EventSinkOpens in a new tab では、次のように location を指定できます。
http://<baseURL>/csp/sys/SYS.WSMon.EventSink.cls
server は、InterSystems IRIS が実行されているサーバです。また、port は、InterSystems IRIS が使用するポートです。
それぞれのイベントに対して、InterSystems IRIS は、指定された Web サービスの EventSink() メソッドの呼び出しを試行して、SYS.WSMon.wsEventOpens in a new tab のインスタンスを送信します。
このメソッドが返す ID は、サブスクリプションのキャンセルに使用できます。EventCancel() を参照してください。
method GetDisk() as SYS.Stats.Disk
そのインスタンスのグローバルに対するディスク使用量のメトリックを含む SYS.Stats.DiskOpens in a new tab のインスタンスを返します。
クラスリファレンスの SYS.Stats.DiskOpens in a new tab を参照してください。
method GetECPAppSvr() as SYS.Stats.ECPAppSvr
そのインスタンスの ECP アプリケーション・サーバのメトリックを含む SYS.Stats.ECPAppSvrOpens in a new tab のインスタンスを返します。
クラスリファレンスの SYS.Stats.ECPAppSvrOpens in a new tab を参照してください。
method GetECPDataSvr() as SYS.Stats.ECPDataSvr
そのインスタンスの ECP データベース・サーバのメトリックを含む SYS.Stats.ECPDataSvrOpens in a new tab のインスタンスを返します。
クラスリファレンスの SYS.Stats.ECPDataSvrOpens in a new tab を参照してください。
method GetGlobal() as SYS.Stats.Global
そのインスタンスのグローバル・メトリックを含む SYS.Stats.GlobalOpens in a new tab のインスタンスを返します。
クラスリファレンスの SYS.Stats.GlobalOpens in a new tab を参照してください。
method GetRoutine() as SYS.Stats.Routine
そのインスタンスのルーチン・メトリックを含む SYS.Stats.RoutineOpens in a new tab のインスタンスを返します。
クラスリファレンスの SYS.Stats.RoutineOpens in a new tab を参照してください。
method GetSystem() as SYS.WSMon.wsSystem
InterSystems IRIS インスタンスのシステム情報を含む SYS.WSMon.wsSystemOpens in a new tab のインスタンスを返します。
クラスリファレンスの SYS.WSMon.wsSystemOpens in a new tab を参照してください。
Web クライアントの監視
SYS.WSMon.ClientOpens in a new tab クラスとその関連クラスは、同一または別の InterSystems IRIS インスタンスにある SYS.WSMon.Server Web サービスのメソッドを呼び出すことのできる、InterSystems IRIS Web サービス・クライアントです。
この Web クライアント・クラスでは、以下の LOCATION パラメータを使用します。<baseURL> はインスタンスのベース URL です。
Parameter LOCATION = "http://<baseURL>/csp/sys/SYS.WSMon.Service.cls"
server は、InterSystems IRIS が実行されているサーバです。また、port は、InterSystems IRIS Web サービス・サーバが使用するポートです。
以下に示すように、その他の InterSystems IRIS Web サービス・クライアントを使用するときと同様にこの Web クライアントを使用します。
-
Web クライアント・クラスのインスタンスを作成します。
-
必要に応じて、Location プロパティを設定します。
この設定は、使用する SYS.WSMon.Server Web サービスがクライアントとは異なるマシンにある場合、または 52773 以外のポートを使用する場合に必要です。
-
必要に応じて、その他のプロパティを設定します。
"Web サービスおよび Web クライアントの作成" を参照してください。
-
Web メソッドを呼び出します。
-
Web メソッドによって返される値を確認します。
詳細は、呼び出す Web メソッドによって異なります。"モニタリング Web サービスの Web メソッド"、およびクラス・リファレンスの返りタイプの説明を参照してください。
ターミナル・セッションの例を以下に示します。
USER>set $namespace = "%SYS"
%SYS>set client=##class(SYS.WSMon.Client).%New()
%SYS>set client.Location="http://localhost:8000/csp/sys/SYS.WSMon.Service.cls"
%SYS>set myroutinestats=client.GetRoutine()
%SYS>write myroutinestats.RtnCallsLocal
19411581
%SYS>write myroutinestats.RtnCallsRemote
0
%SYS>write myroutinestats.RtnCommands
432764817
%SYS>
データを取得してユーザ・インタフェースに表示するときには、プログラムによりクライアントを作成して使用するほうがより一般的です。
SYS.WSMon パッケージを使用できるのは、%SYS ネームスペースに限られます。つまり、ここに記載されている手順を実行するには、%SYS ネームスペースを使用する必要があります。
イベントの処理
InterSystems IRIS が提供するサンプル Web サービス (SYS.WSMon.EventSinkOpens in a new tab) は、ログ・モニタリング Web サービスによって送信されるイベントを受信して処理できます。この Web サービスを使用することも、独自の Web サービスを作成することもできます。
サンプル・イベント・シンク Web サービスの使用
SYS.WSMon.EventSinkOpens in a new tab は、イベントを受信して処理することのできる、InterSystems IRIS のサンプル Web サービスです。
任意の InterSystems IRIS インスタンスに対して、ログ・モニタリング Web サービスを次の URL で使用できます。<baseURL> はインスタンスのベース URL です。
http://<baseURL>/csp/sys/SYS.WSMon.EventSink.cls
server は、InterSystems IRIS が実行されているサーバです。また、port は、InterSystems IRIS Web サービス・サーバが使用するポートです。
この Web サービスにはメソッドが 1 つあります。
Method CacheEventSink(event As SYS.WSMon.wsEvent) As %Integer
Windows プラットフォームでは、イベントが発生すると、このサンプル・メソッドによってポップアップ・ウィンドウが表示されます。その他のプラットフォームでは、^SYS("MONITOR","WSMON","EVENT_RECEIVED",$h) にエントリが追加されます。
このメソッドは常に 1 を返します。
このサンプル・サービスをサブスクライブして、モニタリング Web サービスからイベントを受信するには、ターミナルで以下のように実行します。
USER>set $namespace = "%sys"
%SYS>set client=##class(SYS.WSMon.Client).%New()
%SYS>set eventsinklocation="http://localhost:8000/csp/sys/SYS.WSMon.EventSink.cls"
%SYS>set subscriptionid=client.EventSubscribe(eventsinklocation)
%SYS>write subscriptionid
CacheEventSubscription_2
eventsinklocation は、イベントを処理するイベント・シンク Web サービスのURL です。
独自のイベント・シンク・Web サービスの作成
独自のイベント・シンク Web サービスを作成するには、以下の WSDL から Web サービスを生成します。<baseURL> はインスタンスのベース URL です。
http://<baseURL>/csp/sys/SYS.WSMon.EventSink.cls?WSDL=1
server は、InterSystems IRIS が実行されているサーバです。また、port は、InterSystems IRIS Web サービス・サーバが使用するポートです。
詳細は、"Web サービスおよび Web クライアントの作成" を参照してください。
続いて、生成された Web サービスの CacheEventSink() メソッドを変更して、カスタム・ロジックを組み込みます。