Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

Web サービスを使用した InterSystems IRIS の監視

この付録では、InterSystems IRIS® Data Platform のサポートにより 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 サービスでは、業務に必要なあらゆる処理を実行できます。

スタジオに用意されている SOAP ウィザードを使用して、Web サービスおよび Web クライアントを WSDL から生成できます。このウィザードの使用法の詳細は、"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 で使用できます。

http://server:port/csp/sys/SYS.WSMon.Service.cls

server は、InterSystems IRIS が実行されているサーバです。また、port は、InterSystems IRIS Web サービス・サーバが使用するポートです。以下はその例です。

http://localhost:52773/csp/sys/SYS.WSMon.Service.cls

同様に、この Web サービスの WSDL を次の URL で使用できます。

http://server:port/csp/sys/SYS.WSMon.Service.cls?WSDL=1

モニタリング Web サービスの Web メソッド

SYS.WSMon.ServiceOpens in a new tab クラスには、以下の Web メソッドが用意されています。

EnumBuffer()
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 を使用した作業の詳細は、"Web サービスおよび Web クライアントの作成" の “SOAP メッセージでのデータセットの使用” の章、または %XML.DataSetOpens in a new tab のクラス・リファレンスを参照してください。

SYS.Stats.BufferOpens in a new tab のクラスリファレンスも参照してください。

EnumDatabase()
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 を参照してください。

EnumResource()
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 を参照してください。

EnumWriteDaemon()
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 を参照してください。

EventCancel()
method EventCancel(id) as %Integer

指定された Web サービスのサブスクリプションをキャンセルします。EventSubscribe() を参照してください。

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 を指定します。SYS.WSMon.EventSinkOpens in a new tab では、次のように location を指定できます。

http://server:port/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() を参照してください。

GetDisk()
method GetDisk() as SYS.Stats.Disk

そのインスタンスのグローバルに対するディスク使用量のメトリックを含む SYS.Stats.DiskOpens in a new tab のインスタンスを返します。

クラスリファレンスの SYS.Stats.DiskOpens in a new tab を参照してください。

GetECPAppSvr()
method GetECPAppSvr() as SYS.Stats.ECPAppSvr

そのインスタンスの ECP アプリケーション・サーバのメトリックを含む SYS.Stats.ECPAppSvrOpens in a new tab のインスタンスを返します。

クラスリファレンスの SYS.Stats.ECPAppSvrOpens in a new tab を参照してください。

GetECPDataSvr()
method GetECPDataSvr() as SYS.Stats.ECPDataSvr

そのインスタンスの ECP データベース・サーバのメトリックを含む SYS.Stats.ECPDataSvrOpens in a new tab のインスタンスを返します。

クラスリファレンスの SYS.Stats.ECPDataSvrOpens in a new tab を参照してください。

GetGlobal()
method GetGlobal() as SYS.Stats.Global

そのインスタンスのグローバル・メトリックを含む SYS.Stats.GlobalOpens in a new tab のインスタンスを返します。

クラスリファレンスの SYS.Stats.GlobalOpens in a new tab を参照してください。

GetRoutine()
method GetRoutine() as SYS.Stats.Routine

そのインスタンスのルーチン・メトリックを含む SYS.Stats.RoutineOpens in a new tab のインスタンスを返します。

クラスリファレンスの SYS.Stats.RoutineOpens in a new tab を参照してください。

GetSystem()
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 パラメータを使用します。

Parameter LOCATION = "http://server:port/csp/sys/SYS.WSMon.Service.cls" 

server は、InterSystems IRIS が実行されているサーバです。また、port は、InterSystems IRIS Web サービス・サーバが使用するポートです。

以下に示すように、その他の InterSystems IRIS Web サービス・クライアントを使用するときと同様にこの Web クライアントを使用します。

  1. Web クライアント・クラスのインスタンスを作成します。

  2. 必要に応じて、Location プロパティを設定します。

    この設定は、使用する SYS.WSMon.Server Web サービスがクライアントとは異なるマシンにある場合、または 52773 以外のポートを使用する場合に必要です。

  3. 必要に応じて、その他のプロパティを設定します。

    "Web サービスおよび Web クライアントの作成" を参照してください。

  4. Web メソッドを呼び出します。

  5. Web メソッドによって返される値を確認します。

    詳細は、呼び出す Web メソッドによって異なります。“モニタリング Web サービスの Web メソッド”、およびクラス・リファレンスの返りタイプの説明を参照してください。

ターミナル・セッションの例を以下に示します。

USER>set $namespace = "%SYS"
 
%SYS>set client=##class(SYS.WSMon.Client).%New()
 
%SYS>set client.Location="http://localhost:57799/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>

データを取得してユーザ・インタフェースに表示するときには、プログラムによりクライアントを作成して使用するほうがより一般的です。

Note:

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 で使用できます。

http://server:port/csp/sys/SYS.WSMon.EventSink.cls

server は、InterSystems IRIS が実行されているサーバです。また、port は、InterSystems IRIS Web サービス・サーバが使用するポートです。

この Web サービスにはメソッドが 1 つあります。

CacheEventSink()
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:52773/csp/sys/SYS.WSMon.EventSink.cls"
 
%SYS>set subscriptionid=client.EventSubscribe(eventsinklocation)
 
%SYS>write subscriptionid
CacheEventSubscription_2

eventsinklocation は、イベントを処理するイベント・シンク Web サービスのURL です。

独自のイベント・シンク・Web サービスの作成

独自のイベント・シンク Web サービスを作成するには、スタジオで SOAP ウィザードを使用して、以下の WSDL から Web サービスを生成します。

http://server:port/csp/sys/SYS.WSMon.EventSink.cls?WSDL=1

server は、InterSystems IRIS が実行されているサーバです。また、port は、InterSystems IRIS Web サービス・サーバが使用するポートです。

このウィザードの使用法の詳細は、"Web サービスおよび Web クライアントの作成" を参照してください。

続いて、生成された Web サービスの CacheEventSink() メソッドを変更して、カスタム・ロジックを組み込みます。

FeedbackOpens in a new tab