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

システム・モニタの使用

システム・モニタは、柔軟でユーザ拡張可能なユーティリティです。その用途としては、InterSystems IRIS® Data Platform インスタンスを監視して、さまざまなメトリックの 1 つまたは複数の値が潜在的な問題を示した場合に通知を生成することです。システム・モニタには、以下の InterSystems IRIS インスタンス監視ツールが付属しています。

  • システム・モニタは、システムの状態およびリソースを監視し、固定パラメータに基づいて通知 (アラートおよび警告) を生成し、システム・ヘルス全体を追跡します。

  • ヘルス・モニタは、主要なシステム・メトリックおよびユーザ定義メトリックをサンプリングし、それらをユーザ構成可能パラメータおよび規定の通常値と比較して、サンプルが該当しきい値を超えた場合に通知を生成します。

  • アプリケーション・モニタは、重要なシステム・メトリックをサンプリングし、その値をローカル・ネームスペースに格納して、ユーザが作成したアラート定義を使用して評価します。アラートがトリガされると、電子メール通知を生成するか、指定されたクラス・メソッドを呼び出します。

既定では、これら 3 つのツールはすべて %SYS ネームスペースで動作します。システム・モニタおよびアプリケーション・モニタは、必要に応じて、他のネームスペースでネームスペース固有の構成および設定で実行することができます。要件に合わせて独自のコンポーネントを定義および構成して、各ネームスペースのシステム・モニタの機能を拡張することができます。

一般的な InterSystems IRIS インスタンス監視ツールの概要については、このドキュメントの “ログ・モニタの使用” の章の "システム監視ツール" を参照してください。また、メッセージ・ログ内の通知 (システム・モニタによって生成されるものを含む) から電子メール・メッセージを生成するようにログ・モニタを構成する方法については、同じ章の "Manage Email Options" を参照してください。この章で取り上げるログ・ファイルの詳細は、"ログ・ファイルの監視" を参照してください。

システム・モニタ

システム・モニタは、重要なシステム・ステータス・インジケータおよびリソース使用量インジケータ (ECP 接続のステータスや使用中のロック・テーブルの割合など) をサンプリングして、固定されたステータスおよびしきい値に基づいて、通知 (アラート、警告、および “ステータス OK” メッセージ) を生成します。これらの通知は、メッセージ・ログに書き込まれます。これにより、ログ・モニタはこれらから電子メール・メッセージを生成できます (そのように構成されている場合)。また、システム・モニタは、単一のシステム・ヘルス状態全体も保持します。

システム・モニタは、^%SYSMONMGR を使用して管理されます。

このセクションの残りの部分では、以下の項目について説明します。

システム・モニタ・プロセス

システム・モニタは、実行場所として構成されている各ネームスペースで、3 つのタイプのクラス (つまり、システム・モニタのコンポーネント) を使用して、以下のように 3 段階でシステム・メトリック情報の収集および配信を実行します。センサ・クラスは情報を収集し、サブスクライバ・クラスは情報を評価して通知を生成し、通知クラスは通知を適切なアラート・システムに送信します。以下に、その順序について詳しく説明します。

  1. メトリック情報の取得

    センサ・クラス には、システム・メトリックまたはアプリケーション・メトリックの値を取得するためのメソッドが組み込まれています。例えば、システム・センサ・クラス SYS.Monitor.SystemSensors には、GetProcessCount() メソッド (InterSystems IRIS インスタンスのアクティブなプロセスの数を返す) と GetLockTable() メソッド (インスタンスのロック・テーブルのうち使用中の割合を返す) が含まれています。

    システム・モニタは、構成されている各センサ・クラスの GetSensors() メソッドを定期的に呼び出します。センサ・クラスは、以下のいずれかを実行します。

    • システム・モニタによってサブスクライバ・クラスに渡されるセンサの名前と値の組み合わせの配列を返します (第 2 段階を参照)。

    • 取得したセンサの値を評価して、システム・モニタによって通知クラスに送信される通知を返します (第 3 段階を参照)。

    システム・モニタに付属しているセンサ・クラスの 1 つである SYS.Monitor.SystemSensors が名前と値の配列を返します。もう 1 つのセンサ・クラス %SYS.Monitor.AppMonSensor がそれ自体の評価を実行して、それ自体の通知を生成します。

  2. メトリック情報の評価

    サブスクライバ・クラスには、センサの値を評価し、通知を生成するためのメソッドが組み込まれています。システム・モニタは、名前と値の配列を返す各センサ・クラスを呼び出した後に、各サブスクライバ・クラスの Receive() メソッドを呼び出して、SensorReading プロパティにその配列を入力します。サブスクライバ・クラスは、Receive() メソッドに指定されたセンサの名前と値の組み合わせごとに値を評価し、必要に応じてテキストおよび深刻度コードが含まれた通知を返します。

    例えば、システム・モニタが、SYS.Monitor.SystemSensors.GetSensors() から返された値と名前の配列をサブスクライバ・クラスに渡した場合、以下のようになります。

    • システム・サブスクライバ SYS.Monitor.SystemSubscriber は、LockTablePercentFull 値がそのセンサに対する警告しきい値である 85 を超えていることを検出して、深刻度コード 1 と適切なテキストを含む通知を返します。

    • ヘルス・モニタ・スクライバ SYS.Monitor.Health.Control は、ProcessCount 値がそのセンサの構成済みパラメータおよび既定の通常値と比較して大きすぎると判定し、深刻度コード 2 と適切なテキストを含む通知を返します。

  3. 通知の生成

    通知クラスには、1 つまたは複数のアラート・システムに通知を渡すためのメソッドが組み込まれています。システム・モニタは、各センサ・クラスおよびサブスクライバ・クラスを呼び出した後に、各通知クラスの Post() メソッドを呼び出して、Notifications プロパティにセンサ・クラスまたはサブスクライバ・クラスから返された通知を入力します。通知クラスは、各通知を目的のアラート・メソッドに渡します。例えば、システム通知は、システム・サブスクライバから返された LockTablePercentFull に関する通知とヘルス・モニタ・サブスクライバから返された ProcessCount に関する通知を受け取ると、深刻度コードとテキストをメッセージ・ログに書き込みます。この手法では、ユーザ定義のアラート・システムのほかに、相互運用プロダクション・アラート・プロセッサや TrakCare 内のアラート・システムなどの独立したアラート・システムにも通知を渡すことができます。

システム・モニタは、インスタンスの起動時に、構成されている各実行開始ネームスペースで自動的に起動し、構成されているセンサ・クラスの呼び出しを開始して、構成されているサブスクライバ・クラスにセンサの値を渡し、次に、構成されている通知クラスに通知を渡します。ネームスペースごとにユーザ独自のシステム・モニタのセンサ・クラス、サブスクライバ・クラス、および通知クラスを定義して構成することができます。この章の "システム・モニタの既定のコンポーネント" のセクションの既定クラスを参照してください。

Note:

緊急時には、システム・モニタのシャットダウンが必要になる場合があります。クラスメソッド %SYS.Monitor.Enabled([flag]) はシステム・モニタの状態の設定、クリア、およびレポートします。flag0 の場合、システム・モニタは起動しません。

システム・モニタ通知の追跡

通常、システム・モニタのアラート (深刻度 2 の通知) またはシステム・モニタの警告 (深刻度 1) のシーケンスを調査する必要があります。ヘルス・モニタは、システム・モニタのアラートや警告も生成できます。

システム・モニタのアラート、警告、およびステータス・メッセージ (深刻度 0) はメッセージ・ログ (install-dir\mgr\messages.log) に書き込まれます (すべてのシステム・モニタのステータス・メッセージおよびヘルス・モニタのステータス・メッセージは、システム・モニタ・ログ (install-dir\mgr\SystemMonitor.log) に書き込まれます。アプリケーション・モニタのアラートはログに書き込まれませんが、電子メールで送信したり、指定した通知方法で受け渡しできます)。

システム・モニタのアラートおよび警告を追跡するために、以下のことを実行できます。

  • ^%SYSMONMGR ユーティリティを使用して、システム・モニタのアラートを表示します。このオプションを使用すると、すべてのセンサまたは特定のセンサのアラートの表示および記録されているすべてのアラートまたは指定の期間内に発生したアラートのみの表示を行えます。警告は表示しません。

  • メッセージ・ログを監視します (“管理ポータルを使用した InterSystems IRIS の監視” の章の "ログ・ファイルの監視" を参照してください)。システム・モニタのアラートのシーケンスが短期間内に指定されたセンサに対して生成される場合、最初のもののみがメッセージ・ログに書き込まれることに注意してください。

    Note:

    メッセージ・ログでは、システム・モニタ状態通知の最初の文字が大文字で示されます (例 : [System Monitor] started in %SYS)。警告、アラート、OK メッセージは大文字で示されます (例 : [SYSTEM MONITOR] CPUusage Warning: CPUusage = 90 ( Warnvalue is 85))。

  • メッセージ・ログに表示されるアラート (およびオプションで警告) の電子メール通知を送信するようにログ・モニタを構成します (既定では、アラート・ログに書き込まれます)。この方法を使用する場合、ログ・モニタは、構成された深刻度のすべてのメッセージ・ログ・エントリに対して通知を生成するわけではないことに注意してください。約 1 時間以内に指定プロセス (システム・モニタなど) で連続エントリがある場合、通知は最初のエントリに対してのみ生成されます。例えば、ネットワークの問題によって ECP 接続および開いているトランザクションに関する複数のシステム・モニタのアラートが 15 分の間に生成された場合、ログ・モニタは、(最初に生成されたアラートに対して) 通知を 1 つのみ生成します。このため、ログ・モニタからシステム・モニタの通知を 1 通受け取ったら、すぐにシステム・モニタのアラートを表示し、メッセージ・ログを確認する必要があります。

システム・モニタのステータスおよびリソース・メトリック

以下のテーブルに、システム・モニタによってサンプリングされるシステム・ステータスおよびリソース使用量のメトリックと、警告 (深刻度 1)、アラート (深刻度 2)、および “ステータス OK” (深刻度 0) の通知の生成につながるそれぞれの通知しきい値および通知ルールを示します。

システム・モニタのステータスおよびリソース通知
メトリック 説明 通知ルール

ディスク容量

データベース・ディレクトリの空き領域
  • < 250MB — 警告

  • < 50MB — アラート

  • > 250MB (警告/アラート後) — OK

ジャーナル空き

ジャーナル・ディレクトリの空き領域
  • < 250MB — 警告

  • < 50MB — アラート

  • > 250MB (警告/アラート後) — OK

ページング 使用中の物理メモリおよびページング領域の割合
  • ページング領域 > 30% — 警告

  • (物理メモリ > 96%) + (ページング領域 > 50%) — アラート

ロック・テーブル 使用中のロック・テーブルの割合
  • > 85% — 警告

  • > 95% — アラート

  • < 85% (警告/アラート後) — OK

ライト・デーモン

ライト・デーモンの状態
  • ライト・デーモンはアクティブ状態で、自身の (空でない) キューを処理中であるが、1 サイクルを完了するのに、構成されているライト・デーモン・サイクル時間 (既定値は 80 秒) よりも 10 秒以上長い時間がかかっている — アラート

  • アラート後にライト・デーモンがパスを完了した — OK

ECP 接続

ECP アプリケーション・サーバまたは ECP データ・サーバへの接続の状態
  • 5 秒以上障害状態になっている — アラート

共有メモリ・ヒープ (一般メモリ・ヒープ) 共有メモリ・ヒープ (SMH、別名は一般メモリ・ヒープ (gmheap)) のステータス
  • SMH (gmheap) ステータス 1 — 警告

  • SMH (gmheap) ステータス 2 — アラート

オープン・トランザクション 最も長く開いているローカル・トランザクションおよびリモート (ECP) トランザクションの継続時間
  • > 10 分 — 警告

  • > 20 分 — アラート

ライセンス期限切れ ライセンスが期限切れになるまでの日数
  • 7 日 — 警告

  • 5 日以下 — アラート (毎日)

SSL/TLS 証明書期限切れ 証明書が期限切れになるまでの日数
  • 個別の証明書が 30 日以内に期限切れ — 警告 (毎日繰り返し)

  • 1 つまたは複数の期限切れ証明書の警告 (毎日) — アラート (警告の集計、1 日 1 回)

ISCAgent (ミラー・メンバのみ) ISCAgent のステータス
  • 1 分未満の応答不能 — 警告

  • 1 分を超える応答不能 — アラート

システム・モニタのヘルス状態

InterSystems IRIS インスタンスによって直接生成された両方のシステム・アラート、システム・モニタおよびそのヘルス・モニタ・コンポーネントによって生成されたアラートおよび警告など、メッセージ・ログに送信された通知に基づいて (このドキュメントの “管理ポータルを使用した InterSystems IRIS の監視” の章の "ログ・ファイルの監視" を参照)、システム・ヘルス全体を表す単一値を共有メモリのレジスタにシステム・モニタは保持します。

起動時、システム・ヘルスの状態は、起動プロセス中にメッセージ・ログに送信されたシステム (システム・モニタではない) のアラート数に基づいて設定されます。システム・モニタが実行されると、システムのアラートまたはシステム・モニタのアラートあるいは警告によってヘルス状態を引き上げることができます。最後のシステムのアラートまたはシステム・モニタのアラートあるいは警告が送信されてから 30 分が経過すると、ステータスは次に低いレベルに引き下げられます。以下の表に、システム・ヘルス状態がどのように決まるかを示します。

システム・モニタのヘルス状態
状態 起動時の動作 起動後の動作 設定される状態

GREEN (0)

起動時に送信されたシステムのアラートなし 最後のシステムのアラートまたはシステム・モニタのアラートまたは警告が送信されてから 30 分 (状態が YELLOW だった場合) または 60 分 (状態が RED だった場合) 経過 N/A

YELLOW (1)

起動時に送信されたシステムのアラートが 4 個以下 状態が GREEN かつ
  • 1 つのシステムのアラートが送信された

    または

  • 1 つまたは複数のシステム・モニタのアラートまたは警告 (あるいは両方) が送信されたが、以下のように RED に設定するのに十分なアラートではない

最後のシステムのアラートまたはシステム・モニタのアラートあるいは警告が送信されてから 30 分経過した場合 GREEN

RED (2)

起動時に 5 つ以上のシステムのアラートが送信された
  • 状態が YELLOW で 1 つのシステムのアラートが送信された

    または

  • 状態が GREEN または YELLOW で 30 分以内に 5 つ以上の異なるセンサからシステム・モニタのアラートが送信されたか、または 1 つのセンサから 3 つのシステム・モニタのアラートが送信された

最後のシステムのアラートまたはシステム・モニタのアラートあるいは警告が送信されてから 30 分経過した場合 YELLOW
Note:

4 つ目の状態 HUNG は、グローバル更新がブロックされた場合に発生する可能性があります。特に、以下のイベントによって状態が HUNG に変更されます。

  • ジャーナル・デーモンの一時停止が 5 秒を超えたか、またはフリーズした ("データ整合性ガイド" の “ジャーナリング” の章の "ジャーナル入出力エラー" を参照してください)。

  • スイッチ 10、11、13、14 のいずれかがセットされた ("専用のシステム/ツールおよびユーティリティ" の “InterSystems IRIS のリモート管理” の章の "スイッチの使用法" を参照してください)。

  • ライト・デーモンが何らかの理由で停止したか、更新ロック・フラグのセットが 3 秒を超えた。

  • (データベース・キャッシュ内の) 使用可能なグローバル・バッファ数が危険な領域まで低下し、なおかつその状態が 5 秒を超えた。

ヘルス状態が HUNG に変更されると、その理由がメッセージ・ログに書き込まれます。

システム・モニタのヘルス状態は、以下を使用して表示できます。

  • ^%SYSMONMGR[システム・データを表示] メニューにある [システム・ヘルスの表示] オプション (HUNG はレポートしません)。

  • $SYSTEM.Monitor API。システム・ステータスに直接アクセスできます。$SYSTEM.Monitor.State()Opens in a new tab を使用して、システム・ステータスを返します。SetState メソッド、Clear メソッド、Alert メソッド、GetAlerts メソッド、および ClearAlerts メソッドも参照してください。

  • iris list コマンドおよび iris qlist コマンド (Windows のヘルス状態は含まれません)。

Note:

システム・モニタが動作していない場合、システム・モニタのヘルス状態は常に GREEN となります。

システム・モニタの既定値

システム・モニタは、拡張可能な一連の付属のクラスを呼び出し、%SYS ネームスペースで稼働し、変更可能な 3 つの既定の設定で動作します。

システム・モニタの既定のコンポーネント

InterSystems IRIS には 5 つのクラスが付属しています。これらのクラスは、既定では %SYS ネームスペースのシステム・モニタで構成されます。

センサ・クラス :

  • SYS.Monitor.SystemSensors

    構成されているサブスクライバ・クラス (システム・モニタのサブスクライバ (SYS.Monitor.SystemSubscriber) やヘルス・モニタのサブスクライバ (SYS.Monitor.Health.Control) など) に渡されるセンサ値を取得するシステム・センサ・クラス。

  • %SYS.Monitor.AppMonSensor

    アプリケーション・モニタにセンサ・サービス、サブスクライバ・サービス、および通知サービスを提供するクラス。センサの値を取得し、その値をローカル・ネームスペースに保存して、ユーザ定義のアラートに基づいて値を評価します。アラート定義に基づいてアラートがトリガされたときには、電子メール・メッセージを生成するか、ユーザが指定したメソッドを呼び出します。

サブスクライバ・クラス :

  • SYS.Monitor.Health.Control

    ヘルス・モニタのサブスクライバ・クラス。SYS.Monitor.SystemSensors からセンサ統計値を受け取って評価し、システム通知に通知を送信します。

  • SYS.Monitor.SystemSubscriber

    すべてのセンサ・クラスで使用できるシステム・モニタ・サブスクライバ。SYS.Monitor.SystemSensors のセンサの監視および分析に必要なすべてのコードが含まれています。一部のセンサのシステム・モニタ通知およびヘルス・モニタ通知を生成します。

通知クラス :

  • SYS.Monitor.SystemNotifyOpens in a new tab

    すべてのサブスクライバ・クラスで使用できるシステム通知。システム・サブスクライバ (SYS.Monitor.SystemSubscriber) またはヘルス・モニタ・サブスクライバ (SYS.Monitor.Health.Control) から通知を受け取ると、その通知をシステム・モニタ・ログに書き込みます。通知が深刻度 2 (アラート) の場合はそれをメッセージ・ログに書き込みます (これらのログ・ファイルの詳細は、このドキュメントの “管理ポータルを使用した InterSystems IRIS の監視” の章を参照してください)。

    また、システム通知は、SYS.Monitor.State() メソッドを使用して取得できるシステム・ステータスの単一の全体的評価も生成します。このメソッドは、0 (GREEN)、1 (YELLOW)、または 2 (RED) を返します。

^%SYSMONMGR を使用して、ユーザ定義のクラスを構成することができます。

システム・モニタの既定のネームスペース

すべてのシステム・モニタおよびアプリケーション・モニタの構成と設定は、ネームスペースに固有です。既定では、システム・モニタは %SYS ネームスペースでのみ起動および稼働します。^%SYSMONMGR を使用して、システム・モニタおよびアプリケーション・モニタの追加の実行開始ネームスペースを構成できます。あるネームスペースのシステム・モニタ構成またはアプリケーション・モニタ構成に変更を加えた後は、変更を有効にするためにそのネームスペースでシステム・モニタを再起動する必要があります。

ヘルス・モニタは、%SYS ネームスペースでのみ稼働します。

システム・モニタの既定の設定

既定では、システム・モニタはインスタンスの実行中は常に稼働しています。システム・モニタは、^%SYSMONMGR を使用して停止することはできますが、インスタンスが次回起動したときに自動的には再起動されません。

システム・モニタの既定の動作は以下のとおりです。

  • 構成されている各センサ・クラスの GetSensors() メソッドを 30 秒ごとに呼び出します。

  • システム・モニタ・ログにアラート、警告、およびメッセージのみを書き込みます。センサの読み取り値は書き込みません。

  • センサの読み取り値は保存しません。

これらの設定は、^%SYSMONMGR を使用して変更できます。

^%SYSMONMGR ユーティリティの使用

^%SYSMONMGR ユーティリティでは、システム・モニタを管理および構成できます。このユーティリティは任意のネームスペースで実行できます。このユーティリティを使用して行った変更は、このユーティリティが起動されたネームスペースにのみ影響します。ネームスペースで ^%SYSMONMGR を実行して構成した実行開始ネームスペースごとに個別のシステム・モニタ構成を保持する必要があります。あるネームスペースのシステム・モニタ構成に変更を加えた後は、変更を有効にするためにそのネームスペースでシステム・モニタを再起動する必要があります。

Important:

ここで説明している ^%SYSMONMGR ユーティリティを使用した手動操作はすべて、%Monitor.Manager API のメソッドを使用してプログラムで実行できます。

システム・モニタを管理するには、ターミナルで以下のコマンドを入力します。

%SYS>do ^%SYSMONMGR

メイン・メニューが表示されます。

1) Start/Stop System Monitor
2) Set System Monitor Options
3) Configure System Monitor Classes
4) View System Monitor State
5) Manage Application Monitor
6) Manage Health Monitor
7) View System Data
8) Exit 

Option? 

実行する操作の番号を入力します。ユーティリティを終了するには Enter キーを押します。

メイン・メニューのオプションでは、以下のテーブルに示すシステム・モニタのタスクを実行できます。

オプション 説明
1) Start/Stop System Monitor
  • システム・モニタの起動

  • システム・モニタの停止

2) Set System Monitor Options
  • 構成されているセンサ・クラスのサンプリング間隔の設定

  • システム・モニタ・ログに書き込まれる情報のデバッグ・レベルの設定

  • センサの読み取り値保存の有効化および保存日数の設定

  • サンプリング間隔、デバッグ・レベル、およびセンサの読み取り値の保存を既定に戻す

3) Configure System Monitor Components
  • ユーザ定義のセンサ・クラス、サブスクライバ・クラス、および通知クラスの構成または削除

  • 実行開始ネームスペースの構成

4) View System Monitor State
  • システム・モニタおよびシステム・モニタに構成されているコンポーネントの動作状態の表示

5) Manage Application Monitor
  • アプリケーション・モニタのサブメニューの表示

6) Manage Health Monitor
  • ヘルス・モニタのサブメニューの表示 (^%SYSMONMGR%SYS ネームスペースで実行されている場合にのみ使用可)

7) View System Data

Start/Stop System Monitor

システム・モニタは、InterSystems IRIS インスタンスの起動時に、構成されている各実行開始ネームスペースで自動的に起動し、構成されているクラスの呼び出しを開始します。これは、変更できません。ただし、インスタンスの実行中に、システム・モニタを停止することはできます。ヘルス・モニタの構成を変更するには、システム・モニタを停止する必要があります。また、あるネームスペースのシステム・モニタ構成に変更を加えた後は、変更を有効にするためにそのネームスペースでシステム・モニタを再起動する必要があります。

メイン・メニューで 1 を入力すると、以下のメニューが表示されます。

1) Start System Monitor
2) Stop System Monitor
3) Exit

実行中のシステム・モニタを停止するには 2 を入力し、停止中のシステム・モニタを起動するには 1 を入力します。

Note:

システム・モニタは、メッセージ・ログのサイズを監視し、必要に応じてロール・オーバーします。システム・モニタが停止すると、メッセージ・ログは、インスタンスが再起動されるか、PurgeErrorsAndLogs タスクが実行されるまで、MaxConsoleLogSize 構成設定で設定された制限を超える場合があります。メッセージ・ログについては、“管理ポータルを使用した InterSystems IRIS の監視” の章の "ログ・ファイルの監視" を参照してください。

Set System Monitor Options

システム・モニタのグローバル設定を変更するか、それらの設定を既定値に戻すには、システム・モニタが実行中の場合はシステム・モニタを停止し、メイン・メニューで 2 を入力します。

1) Set Sample Interval
2) Set Debugging Level
3) Reset Defaults
4) Manage Debug Data
5) Exit

1 を入力して、システム・モニタが構成されている各センサ・クラスを呼び出す間隔を設定します。既定値は 30 秒です。

2 を入力して、デバッグ・レベルを設定します。既定値は 0 (base) で、システム・モニタおよびヘルス・モニタのステータスとエラー・メッセージがシステム・モニタ・ログに書き込まれます。センサの読み取り値は保存されません。デバッグ・レベル 1 (log all sensors) では、センサ読み取り値がメッセージとともにシステム・モニタ・ログに書き込まれ、センサ読み取り値が保存されます。これは、[システム・データを表示] メニューの [センサ・データの表示] オプションを使用して表示することができます。

3 を入力して、サンプル間隔、デバッグ・レベル、およびセンサ読み取り値の保存を既定値にリセットします。

4 を入力して、センサ読み取り値を保存する日数を設定します (既定は 5)。

変更は、次回システム・モニタを起動または再起動したときに有効になります。

Configure System Monitor Components

"システム・モニタ" で説明したように、%SYS.Monitor.AbstractSensorOpens in a new tab%SYS.Monitor.AbstractSubscriberOpens in a new tab、および %SYS.Monitor.AbstractNotificationOpens in a new tab をそれぞれ拡張して、独自のセンサ・クラス、サブスクライバ・クラス、および通知クラスを作成し、それらをシステム・モニタで構成して、"システム・モニタの既定のコンポーネント" で説明した付属のクラスの機能を拡張することができます。システム・モニタを起動および実行する場所として %SYS 以外のネームスペースを追加することもできます。

Configure System Monitor Classes

メイン・メニューで 3 を入力すると、以下のメニューが表示されます。

1) Configure Components
2) Configure Startup Namespaces
3) Exit

1 を入力すると、クラスを構成するための以下のオプションが表示されます。

1) List Classes
2) Add Class
3) Delete Class
4) Exit

1 を入力すると、^%SYSMONMGR を起動したネームスペースで現在構成されているクラス (付属のシステム・クラスおよびユーザが構成したクラスを含む) がリストされます。

2 を入力すると、^%SYSMONMGR を起動したネームスペースのユーザ定義のクラスを構成できます。指定するクラスは、そのネームスペースに存在し、システム・モニタによって有効なセンサ・クラス、サブスクライバ・クラス、または通知クラスとして認識される必要があります。また、クラスの説明を入力することもできます。

3 を入力すると、構成したユーザ定義クラスを削除できます。

Note:

クラスの構成または削除は、^%SYSMONMGR を起動したネームスペースにのみ影響します。

Configure System Monitor Namespaces

システム・モニタは、インスタンスの起動時に、構成されている各実行開始ネームスペース (既定では %SYS のみ) で個別のプロセスとして自動的に起動します。すべてのシステム・モニタの構成と設定は、ネームスペースに固有です。^%SYSMONMGR を使用して変更を加えた場合、その変更はこのユーティリティを起動したネームスペースにのみ影響します。

Note:

^%SYSMONMGR のすべてのインスタンスは、同一のシステム・モニタ・ログにメッセージを書き込みます。実行開始ネームスペースは、任意のネームスペースから構成できます。

メイン・メニューで 3 を入力すると、以下のメニューが表示されます。

1) Configure Components
2) Configure Startup Namespaces
3) Exit

2 を入力すると、ネームスペースを構成するための以下のオプションが表示されます。

1) List Startup Namespaces
2) Add Namespace
3) Delete Namespace
4) Exit

1 を入力すると、現在構成されている実行開始ネームスペースがリストされます。

2 を入力すると、実行開始ネームスペースを追加できます。

3 を入力すると、実行開始ネームスペースを削除できます (%SYS は削除できません)。

View System Monitor State

メイン・メニューで 4 を入力すると、^%SYSMONMGR を起動したネームスペースのシステム・モニタとそのコンポーネントのステータスが表示されます。以下に例を示します。

       Component                   State
System Monitor                     OK
%SYS.Monitor.AppMonSensor          None
SYS.Monitor.SystemSensors          OK
SYS.Monitor.Health.Control         Running: Period is Thursday 09:00 - 11:30
SYS.Monitor.SystemSubscriber       OK
SYS.Monitor.SystemNotifier         OK

この例では、システム・モニタとそのシステム・センサ・クラス、サブスクライバ・クラス、および通知クラスが正常に動作しています。ヘルス・モニタのサブスクライバ・クラスも同様です。ただし、アプリケーション・モニタのクラスは有効化されていないため ("Manage Monitor Classes" を参照)、センサのサンプルの評価やアラートの生成は実行しません。

Manage Application Monitor

"^%SYSMONMGR を使用したアプリケーション・モニタの管理" を参照してください。

ヘルス・モニタの管理

"^%SYSMONMGR を使用したヘルス・モニタの管理" を参照してください。

システム・データの表示

メイン・メニューで 7 (または、%SYS 以外のネームスペースでは 6) を入力して、システムに関するシステム・モニタ情報を表示するオプションを表示します。

1) View Sensor Data
2) View System Health
3) View Alerts
4) Exit

[Set System Monitor Options] メニューの [Manage Debug Data] オプションを使用して、センサ・データの読み取り値の保存を有効化した場合、1 を入力して、保存されたセンサの読み取り値を表示します。すべてのセンサまたは特定のセンサの保存された読み取り値を表示できます。また、保存されているセンサの読み取り値すべてを表示するか、または指定した期間の読み取り値のみを表示できます。

2 を入力して、システム・モニタのヘルス状態を表示します。これには、前の GREEN 状態と現在の状態 (GREEN でない場合) の間のすべてのアラートが含まれます。

3 を入力してシステム・モニタのアラートを表示します。すべてのセンサまたは特定のセンサのアラートを表示できます。また、[Set System Monitor Options] メニューの [Manage Debug Data] オプションを使用して指定した期間内のすべてのアラートを表示できます。あるいは、指定した期間内のアラートのみ表示できます。

システム・モニタのコンポーネントの定義

SYS.Monitor API で、ユーザ独自のセンサ・クラスサブスクライバ・クラス、および通知クラスを定義できます。

センサ・クラス

センサ・クラスは、%SYS.Monitor.AbstractSensorOpens in a new tab を拡張します。システム・モニタ・コントローラは、最初に各センサ・クラスの Start() メソッドを呼び出します。その後、各サイクルで GetSensors() メソッドを呼び出します。SetSensor() メソッドは、センサ・クラス内で使用され、SensorReading プロパティにセンサの名前と値の組み合わせを設定します。このプロパティは、GetSensors() によって返され、すべてのサブスクライバ・クラスに渡されます。

また、センサ・クラスはセンサの読み取り値を評価し、評価の結果として、通知またはユーザ定義のアラート・メソッドから電子メール・メッセージを生成するための %SYS.Monitor.EmailOpens in a new tab クラスを呼び出します。

サブスクライバ・クラス

サブスクライバ・クラスは、%SYS.Monitor.AbstractSubscriberOpens in a new tab を拡張します。システム・モニタ・コントローラは、最初に各サブスクライバ・クラスの Start() メソッドを呼び出します。その後、各サイクルで、そのサイクルで呼び出されるセンサ・クラスごとに 1 回 Receive() メソッドを呼び出し、そのセンサ・クラスから受け取ったセンサの名前と値の組み合わせを設定した SensorReading プロパティを渡します。サブスクライバ・クラスは、1 つまたは複数の名前と値の組み合わせを評価し、Notify() メソッドを使用して通知を設定します。このメソッドは、Notifications プロパティに値を入力します。

また、サブスクライバ・クラスは、センサ評価の結果として、通知またはユーザ定義のアラート・メソッドから電子メール・メッセージを生成するための %SYS.Monitor.EmailOpens in a new tab クラスも呼び出します。

サンプル・サブスクライバ・クラスとして、%SYS.Monitor.SampleSubscriberOpens in a new tab が用意されています。

通知クラス

通知クラスは、%SYS.Monitor.AbstractNotificationOpens in a new tab を拡張します。システム・モニタ・コントローラは、最初に各通知クラスの Start() メソッドを呼び出します。その後、各サイクルで、そのサイクルで呼び出されるサブスクライバ・クラスごとに 1 回 Post() メソッドを呼び出し、そのサブスクライバから受け取った通知を設定した Notifications プロパティを渡します。次に、通知クラスは、自身のアラート・メソッド (複数可) に通知を渡します。このメソッドには、通知またはユーザ定義のアラート・メソッドから電子メール・メッセージを生成するための %SYS.Monitor.EmailOpens in a new tab クラスが含まれていることがあります。

ヘルス・モニタ

ヘルス・モニタは、特定の期間にさまざまな重要なメトリックの値をサンプリングし、それらをそのメトリックの構成済みパラメータおよびその期間の規定の通常値と比較して、実行中の InterSystems IRIS インスタンスを監視します。サンプル値が大きすぎると、ヘルス・モニタはアラート (深刻度 2 の通知) または警告 (深刻度 1) を生成します。例えば、ヘルス・モニタによって月曜日の午前 10:15 にサンプリングされた CPU 使用率の値が、構成されている CPU 使用率の最大値または月曜日の午前 9:00 から午前 11:30 の期間に得られた通常の CPU 使用率サンプルと比較して大きすぎた場合、ヘルス・モニタは通知を生成します。

このセクションでは、以下のトピックについて説明します。

ヘルス・モニタの概要

ヘルス・モニタは、一定の規則を使用してサンプル値を評価し、異常に大きい値を特定します。この設計は、"NIST/SEMATECH e-Handbook of Statistical MethodsOpens in a new tab" の “Process or Product Monitoring and Control” のセクションで説明されている、製造プロセスを監視するための手法に基づいています。通常値からの偏差は、WECO 統計的確率規則 (Western Electric RulesOpens in a new tab) に基づく規則を使用して判定されます。どちらも InterSystems IRIS 監視の目的に合うように特別に調整されています。

ヘルス・モニタのアラート (深刻度 2) および警告 (深刻度 1) はメッセージ・ログ (install-dir\mgr\messages.log) に書き込まれます。これらの通知を理解していることを確認する方法は、"システム・モニタ通知の追跡" を参照してください。

ヘルス・モニタのステータス・メッセージ (深刻度 0) は、システム・モニタ・ログ (install-dir\mgr\SystemMonitor.log) に書き込まれます。

Note:

システム・モニタおよびアプリケーション・モニタとは異なり、ヘルス・モニタは %SYS ネームスペースでのみ動作します。

以下のサブセクションでは、ヘルス・モニタがどのように動作するかについて説明し、ヘルス・モニタを構成および拡張するさまざまな方法に関する情報を提供します。

ヘルス・モニタ・プロセスの説明

既定では、ヘルス・モニタは、インスタンスの起動時に自動的に起動しません。自動的に起動させるには、^%SYSMONMGR ユーティリティを使用してシステム・モニタ内でヘルス・モニタを有効にする必要があります (ヘルス・モニタを有効にした場合、InterSystems IRIS が起動してからヘルス・モニタが起動するまでの間隔を指定できます。これにより、インスタンスは、サンプリングの開始前に通常の動作状態に到達できます)。このユーティリティは、ヘルス・モニタの現在の状態を確認するために、常時使用可能です。詳細は、この章で後述する "^%SYSMONMGR を使用したヘルス・モニタの管理" を参照してください。

ヘルス・モニタ・プロセスの基本要素について以下に説明します。

  • ヘルス・モニタは、センサ・オブジェクトとして表される多数のシステム・センサを監視します。各センサ・オブジェクトには、センサ・サンプルのベース (最小) 値があります。また、オプションで 2 つの通知しきい値 (アラート用に 1 つと、警告用に 1 つ) が含まれ、絶対値または乗数として設定できます。これらの値によって、ヘルス・モニタが通知を送信するタイミングが決定されます。

    以下の "センサとセンサ・オブジェクト" のセクションに、ヘルス・モニタが使用するすべてのセンサ・オブジェクトのリスト、およびその簡単な説明と既定値を示します。

  • 事前定義された期間の間、各センサは 30 秒ごとにサンプリングされ、ベース値を下回るサンプルは破棄されます。既定では 63 の週次の期間がありますが (1 日 9 回)、独自の週、月、四半期、または年ごとの期間を構成できます。以下の "期間" のセクションに、既定の期間をリストします。

  • 指定されたセンサでは、通知しきい値が絶対値として設定されている場合を除き、ヘルス・モニタはグラフに基づいてセンサの読み取り値を評価します。現行期間に必要なグラフがない場合、ヘルス・モニタはセンサを分析モードにして、グラフを生成します。

    グラフを編集または作成して、ヘルス・モニタがセンサの読み取り値を評価する方法を調整できます。詳細は、"グラフ" のセクションを参照してください。

  • 分析モードでない場合、センサは監視モードになっています。監視モードでは、センサの読み取り値は、該当するサブスクライバ・クラスによって評価されます。一時的なサンプルの異常値によって通知がトリガされないように、3 分ごとに各 6 つのサンプル値が平均化されて 1 つの読み取り値が生成され、それらが評価対象の読み取り値となります。

  • 連続する読み取り値が、通知の条件 (以下の ”通知ルール” のセクションで説明) を満たす場合、サブスクライバ・クラスは、テキストと深刻度コードを含む通知をシステム通知 (SYS.Monitor.SystemNotifyOpens in a new tab) に渡してアラートまたは警告を生成します。

    Note:

    センサ・オブジェクトに最大値と警告値が指定されているセンサからの読み取り値を評価するのにグラフは必要ないため、それらのセンサの読み取り値の評価とその結果として生成される通知の送信は、SYS.Monitor.Health.Control サブスクライバ・クラスではなく SYS.Monitor.SystemSubscriber サブスクライバ・クラスによって処理されます ("システム・モニタの既定のコンポーネント" を参照してください)。結果的に、ヘルス・モニタが有効になっていない場合でも、システム・モニタが稼働している限り、これらのセンサの通知は生成されます。

    一部のセンサについては絶対値を使用して通知を生成し、その他のセンサについては乗数を使用して通知を生成する (例えば、一部のデータベースでは DBLatency センサの絶対値を使用し、その他のデータベースでは乗数を使用する) 場合は、センサ・オブジェクトで乗数を設定し、絶対値を使用するセンサのグラフを手動で作成します。詳細は、"グラフの編集" を参照してください。

センサとセンサ・オブジェクト

ヘルス・モニタのセンサ・オブジェクトは、SYS.Monitor.SystemSensors 内のいずれかのセンサを表します。各センサ・オブジェクトは、ベース値を持つ必要があります。必要に応じて、最大 (アラート) しきい値および警告しきい値 (絶対値または乗数) を持つこともできます。センサの読み取り値の評価でこれらの値がどのように使用されるかについては、"通知ルール" を参照してください。以下のテーブルに、ヘルス・モニタのセンサ・オブジェクトとその既定のパラメータを示します。

一部のセンサは、InterSystems IRIS インスタンスの全体的メトリックを示します。全体的メトリックは、以下のテーブルのセンサ・アイテム列に値のないメトリックです。例えば、LicensePercentUsed センサは、現在使用中のインスタンスの許可済みライセンス・ユニットの割合をサンプリングします。また、JournalGrowthRate センサは、インスタンスのジャーナル・ファイルに書き込まれたデータの量 (1 分あたりの KB) をサンプリングします。

他のセンサは、特定のセンサ・アイテム (CSP サーバ、データベース、またはミラー) に関する情報を収集します。例えば、DBReads センサは、マウントされている各データベースからの 1 分あたりの読み取り数をサンプリングします。これらのセンサは、<sensor_object> <sensor_item> と指定されています。例えば、DBLatency install-dir\IRIS\mgr\user センサは、USER データベースでランダム読み取りが完了するまでに要する時間を (ミリ秒単位で) サンプリングします。

センサ・オブジェクトは、以下の "ヘルス・モニタ・クラスの構成" のセクションの説明に従って ^%SYSMONMGR ユーティリティを使用して表示および編集 (ただし削除は不可) できます。センサ・オブジェクトの編集では、1 つまたはすべての値を変更できます。入力できるのは、ベース値のみ、ベース値、最大 (アラート) 値、および警告値、またはベース値、最大 (アラート) 乗数、および警告乗数です。

ヘルス・モニタのセンサ・オブジェクト
センサ・オブジェクト センサ・アイテム 説明 ベース値 最大値 最大乗数 警告値 警告乗数
CPUUsage   システムの CPU 使用率 (%)。 50 85 75
CSPSessions IP_address:port リストされている Web ゲートウェイ・サーバ上のアクティブな Web セッションの数。 100 2 1.6
CSPActivity IP_address:port リストされている Web ゲートウェイ・サーバへの 1 分あたりの要求数。 100 2 1.6
CSPActualConnections IP_address:port リストされている Web ゲートウェイ・サーバ上で作成された接続の数。 100 2 1.6
CSPInUseConnections IP_address:port リストされている Web ゲートウェイ・サーバへの現在アクティブな接続の数。 100 2 1.6
CSPPrivateConnections IP_address:port リストされている Web ゲートウェイ・サーバへのプライベート接続の数。 100 2 1.6
CSPUrlLatency IP_address:port IP_address:port/csp/sys/UtilHome.csp からの応答の取得に要した時間 (ミリ秒)。 1000 5000 3000
CSPGatewayLatency IP_address:port CSP センサ・オブジェクトによって表されるメトリックのフェッチ時に、リストされている Web ゲートウェイ・サーバからの応答の取得に要した時間 (ミリ秒)。 1000 2000 1000
DBLatency database_directory リストにあるマウントされたデータベースからのランダム読み取りが完了するまでに要した時間 (ミリ秒)。 1000 3000 1000
DBReads database_directory リストにあるマウントされたデータベースからの 1 分あたりの読み取り数。 1024 2 1.6
DBWrites database_directory リストにあるマウントされたデータベースへの 1 分あたりの書き込み数。 1024 2 1.6
ECPAppServerKBPerMinute   ECP データ・サーバへの 1 分あたりの送信データ量 (KB)。 1024 2 1.6
ECPConnections   アクティブな ECP 接続の数。 100 2 1.6
ECPDataServerKBPerMinute   ECP データ・サーバでの 1 分あたりの受信データ量 (KB)。 1024 2 1.6
ECPLatency   ECP データ・サーバとこの ECP アプリケーション・サーバ間のネットワーク遅延 (ミリ秒)。 1000 3000 3000
ECPTransOpenCount   開いている ECP トランザクションの数。 100 2 1.6
ECPTransOpenSecsMax   現在最も長く開いている ECP トランザクションの継続時間 (秒)。 60 2 1.6
GlobalRefsPerMin   1 分あたりのグローバル参照数。 1024 2 1.6
GlobalSetKillPerMin   1 分あたりのグローバル set 数とグローバル kill 数。 1024 2 1.6
JournalEntriesPerMin   1 分あたりのジャーナル・エントリ書き込み数。 1024 2 1.6
JournalGrowthRate   ジャーナル・ファイルへの 1 分あたり書き込みデータ量 (KB)。 1024 2 1.6
LicensePercentUsed   現在使用中の許可済みライセンス・ユニットの割合。 50 1.5
LicenseUsedRate   1 分あたりのライセンス取得数。 20 1.5
LockTablePercentFull   使用中のロック・テーブルの割合。 50 99 85
LogicalBlockRequestsPerMin   1 分あたりの論理ブロック要求数。 1024 2 1.6
MirrorDatabaseLatencyBytes mirror_name ミラーのバックアップ・フェイルオーバー・メンバにおける、プライマリからは受け取ったものの、バックアップのミラーリング対象データベースには適用されていないジャーナル・データのバイト数 (バックアップ・データベースの遅滞尺度)。 2*107 2 1.6
MirrorDatabaseLatencyFiles mirror_name ミラーのバックアップ・フェイルオーバー・メンバにおける、プライマリからは受け取ったものの、バックアップのミラーリング対象データベースにはまだ完全に適用されていないジャーナル・ファイルの数 (バックアップ・データベースの遅滞尺度)。 3 2 1.6
MirrorDatabaseLatencyTime mirror_name ミラーのバックアップ・フェイルオーバー・メンバにおける、プライマリから最終ジャーナル・ファイルを受け取った時間と、バックアップのミラーリング対象データベースに最終ジャーナル・ファイルが完全に適用された時間の差 (ミリ秒) (バックアップ・データベースの遅滞尺度)。 1000 4000 3000
MirrorJournalLatencyBytes mirror_name ミラーのバックアップ・フェイルオーバー・メンバにおける、プライマリからは受け取ったものの、バックアップのジャーナル・ディレクトリには書き込まれていないジャーナル・データのバイト数 (バックアップの遅滞尺度)。 2*107 2 1.6
MirrorJournalLatencyFiles mirror_name ミラーのバックアップ・フェイルオーバー・メンバにおける、プライマリからは受け取ったものの、バックアップのジャーナル・ディレクトリには書き込まれていないジャーナル・ファイルの数 (バックアップの遅滞尺度)。 3 2 1.6
MirrorJournalLatencyTime mirror_name ミラーのバックアップ・フェイルオーバー・メンバにおける、プライマリから最終ジャーナル・ファイルを受け取った時間と、最終ジャーナル・ファイルがバックアップのジャーナル・ディレクトリに完全に書き込まれた時間の差 (ミリ秒) (バックアップの遅滞尺度)。 1000 4000 3000
PhysicalBlockReadsPerMin   1 分あたりの物理ブロック読み取り数。 1024 2 1.6
PhysicalBlockWritesPerMin   1 分あたりの物理ブロック書き込み数。 1024 2 1.6
ProcessCount   InterSystems IRIS インスタンスのアクティブなプロセスの数。 100 2 1.6
RoutineCommandsPerMin   1 分あたりのルーチン・コマンドの数。 1024 2 1.6
RoutineLoadsPerMin   1 分あたりのルーチンのロード数。 1024 2 1.6
RoutineRefsPerMin   1 分あたりのルーチン参照数。 1024 2 1.6
SMHPercentFull   使用中の共有メモリ・ヒープ (一般メモリ・ヒープ) の割合。 50 98 85
TransOpenCount   開いているローカル・トランザクション (ローカルおよびリモート) の数。 100 2 1.6
TransOpenSecondsMax   現在最も長く開いているローカル・トランザクションの継続時間 (秒)。 60 2 1.6
WDBuffers   1 ライト・デーモン・サイクルの間に更新されるデータベース・バッファの平均数。 1024 2 1.6
WDCycleTime   1 ライト・デーモン・サイクルを完了するために必要な平均の秒数。 60 2 1.6
WDWIJTime   ライト・イメージ・ジャーナル (WIJ) の更新にかかる 1 サイクルあたりの平均時間 (秒)。 60 2 1.6
WDWriteSize   1 ライト・デーモン・サイクルあたりの平均書き込みバイト数。 1024 2 1.6
Note:

いくつかのセンサは、全部の InterSystems IRIS インスタンスに対してサンプリングされません。例えば、ECP... センサは、ECP データとアプリケーション・サーバのみについてサンプリングされます。

ミラー・メンバを監視しているときに ("高可用性ガイド" の “ミラーリング” の章を参照してください)、ヘルス・モニタには以下の特別な条件が適用されます。

  • ミラーの再起動中 (例えば、バックアップ・フェイルオーバー・メンバがプライマリを引き継いだ直後) や、ミラーでのメンバのステータスが不確定である場合は、センサはサンプリングされません。

  • センサが一定期間分析モードになっていて、ミラーでのメンバのステータスがその期間中に変化した場合、グラフは作成されず、センサは分析モードのままになります。

  • バックアップ・フェイルオーバー・ミラー・メンバでは MirrorDatabaseLatency* センサと MirrorJournalLatency* センサのみがサンプリングされます。

  • プライマリ・フェイルオーバー・ミラー・メンバでは、MirrorDatabaseLatency* センサと MirrorJournalLatency* センサを除くすべてのセンサがサンプリングされます。

期間

既定では 63 の週次の繰り返し期間があり、センサはそれらの期間にサンプリングされます。これらの期間はそれぞれ、特定の曜日の以下の指定済みの間隔のいずれかを表します。

既定のヘルス・モニタの期間
午前 0:15 ~ 午前 2:45 午前 3:00 ~ 午前 6:00 午前 6:15 ~ 午前 8:45
午前 9:00 ~ 午前 11:30 午前 11:45 ~ 午後 1:15

午後 1:30 ~ 午後 4:00

午後 4:15 ~ 午後 6:00

午後 6:15 ~ 午後 8:45

午後 9:00 ~ 午後 11:59

^%SYSMONMGR ユーティリティの [期間の構成] オプションを使用して、期間をリスト、追加、および削除できます (以下の "ヘルス・モニタ・クラスの構成" のセクションを参照)。週次の期間のほかに、月、四半期、および年ごとの期間を追加できます。

Note:

四半期ごとの期間は、開始月として指定された月から 3 か月ごとにリスト表示されます。例えば、開始月に 5 (5 月) を指定した場合、四半期のサイクルは、8 月(8)、11 月 (11)、および 2 月 (2) に繰り返されます。

ユーザ定義期間では、説明はオプションです。

グラフ

センサ・オブジェクトの通知しきい値が乗数として与えられていない場合 (または指定されていない場合)、ヘルス・モニタでこれらのセンサ読み取り値を評価するには、グラフが必要です。ヘルス・モニタは、サンプルのセンサ読み取り値から平均値、標準偏差、および最大値を計算して、必要なグラフを生成します。このセクションでは、ヘルス・モニタによって分析モードでグラフを生成する方法、およびグラフの編集またはカスタム・グラフの作成の方法について説明します。

分析モード

センサのサンプルを評価する前に、ヘルス・モニタは、そのセンサにグラフが必要かどうかを確認します。グラフが必要であるがまだ存在しない場合、ヘルス・モニタはそのセンサを自動的に分析モードにします。

分析モードでは、ヘルス・モニタは単純に収集したサンプル値を記録し、期間の終了時にそのセンサに必要なグラフを生成します。グラフの信頼性を確保するために、分析モードでは最低 13 サンプルを取得しておく必要があります。1 回の期間で有効な 13 サンプルが取得されるまで、センサは分析モードにとどまり、その期間に対するグラフは生成されません。

Note:

グラフは、InterSystems IRIS インスタンスが通常の安定した動作をしている間に取得されたサンプルから生成される必要があります。例えば、月曜日 09:00 a.m. ~ 11:30 a.m. のグラフが存在しないとき、月曜日が休日の場合や、技術的な問題が InterSystems IRIS インスタンスの動作に影響している場合には、グラフを生成しないでください。

あるセンサまたはセンサ/アイテムの特定の期間に対してグラフが生成されてから、5 回その期間が経過すると (アラートが生成された期間を除く)、これら 5 回の通常期間における読み取り値が評価され、センサの平均値の上昇や変化が検出されます。平均値が 95% の確信度で上昇しているか、変化している場合は、グラフが再校正されます。センサのその期間の既存のグラフは、その期間の最後の発生時に取得されたサンプルから生成されたグラフと置き換えられます。例えば、あるデータベースへのユーザのアクセス数が緩やかでも着実に増加している場合、そのデータベースの DBReads 値の平均も緩やかかつ着実に増加する傾向にあり、これにより 5 期間ごとにグラフの定期的な再校正が発生し、不当なアラートが回避されます。

センサ・オブジェクトの絶対値と乗数値を同じように自動的に再校正することはできません。グラフの自動再校正はこのようなセンサには適用されないため、手動で調整する必要があります。例えば、データベースのユーザのアクセス数が増加している場合、DBLatency センサ・オブジェクトのベース値、最大 (アラート) 値、および警告値は手動で調整する必要があります。

グラフの編集

^%SYSMONMGR ユーティリティでは、現在のすべてのグラフのリストと、それぞれの平均値と標準偏差を表示できます。特定のグラフの個々の読み取り値や最大読み取り値などの詳細を表示することもできます。ユーティリティからこれらのオプションにアクセスするには、[Configure Health Monitor Classes] サブメニューから [Configure Charts] を選択します。

[Configure Charts] オプションは、グラフをカスタマイズすることでアラートをカスタマイズする 2 つの方法を提供します。

  • 既存のグラフを編集して、平均値や標準偏差を任意の値に変更できます。標準の通知ルールは適用されますが、入力した値が使用されます。

  • グラフを作成して、アラート値と警告値を指定できます。グラフを作成することは、通知しきい値に絶対値を設定することと似ています。アラートと警告は、グラフに指定した値のみに基づいて生成されます。

Note:

グラフをリスト、検証、編集、または作成するときに、アイテムの見出しまたはプロンプトは、データベース (ディレクトリ・パスで指定)、Web ゲートウェイ・サーバ (IP アドレスで指定)、またはミラー (ミラー名で指定) を参照します。詳細は、"センサとセンサ・オブジェクト" を参照してください。

また、以下の SYS.Monitor.Health.ChartOpens in a new tab クラス・メソッドにより、リストの値に基づいた統計グラフをプログラムで作成することができます。

  • CreateChart()Opens in a new tab — 特定のサンプリング期間やセンサのグラフの作成、リストの値の評価、および結果として得られる平均値と標準偏差 (σ) 値の設定を行います。

  • SetChartStats()Opens in a new tab — リストの値の評価、および特定のサンプリング期間やセンサについて、結果として得られる平均値と標準偏差 (σ) 値の設定を行います。

詳細は、SYS.Monitor.Health.ChartOpens in a new tab クラス・ドキュメントを参照してください。

Note:

上述の "分析モード" のセクションで説明されているように、ヘルス・モニタによって生成されたグラフ (ユーザが編集したグラフも含む) は、自動的に再校正できます。また、InterSystems IRIS インスタンスをアップグレードすると、編集済みのものも含め、ヘルス・モニタによって生成されたすべてのグラフは削除されます。

[Configure Charts] サブメニューまたは CreateChart()Opens in a new tab クラス・メソッドを使用して作成されたグラフは、自動的に再校正されることもアップグレード時に削除されることもありません。したがって、ユーザが作成したグラフは、[Configure Health Monitor Classes] サブメニューの [Reset Defaults] オプション内の [Reset Charts] オプションを選択するか、[Configure Charts] オプション内の [Recalibrate Charts] を選択しない限り、選択したセンサと期間の組み合わせに永続的に関連付けられます。

通知ルール

ヘルス・モニタは、ある期間のセンサの読み取り値が 3 回連続してセンサの最大しきい値を上回った場合にアラート (深刻度 2 の通知) を生成し、ある期間のセンサの読み取り値が 5 回連続してセンサの警告しきい値を上回った場合に警告 (深刻度 1 の通知) を生成します。最大しきい値および警告しきい値は、センサ・オブジェクトの設定と、適用可能なグラフがヘルス・モニタによって生成されたのかユーザによって作成されたのかによって異なります。以下のテーブルを参照してください。

以下についても注意してください。

  • センサ・オブジェクトに最大値と警告値が設定されている場合は、グラフは必要ないため生成されません。通知はヘルス・モニタが無効になっている場合でも生成されます。

  • センサ・オブジェクトに最大乗数と警告乗数が設定されている場合やベース値のみが設定されている場合は、グラフが必要です。分析モードで十分なサンプルが収集されてグラフが生成されるまで、通知は生成されません。

  • ユーザが作成したグラフがある場合は、センサ・オブジェクトの設定がどのようになっていてもかまいません。

センサ・オブジェクトの設定 グラフ・タイプ センサの最大値 センサの警告値 アクティブになる条件
ベース値、最大値、警告値 なし センサ・オブジェクトの最大値 センサ・オブジェクトの警告値 システム・モニタが稼働中
ベース値、最大乗数、警告乗数 生成済み 以下のうちの大きい方の値にセンサ・オブジェクトの最大乗数を掛けた値
  • グラフの平均値に標準偏差を 3 回加えた値

  • グラフの最大値に標準偏差を加えた値

以下のうちの大きい方の値にセンサ・オブジェクトの警告乗数を掛けた値
  • ベース値

  • グラフの平均値に標準偏差を 2 回加えた値

  • グラフの最大値

システム・モニタが稼働中、ヘルス・モニタが有効
ベース値のみ 生成済み 以下のうちの大きい方の値
  • グラフの平均値に標準偏差を 3 回加えた値

  • グラフの最大値

以下のうちの大きい方の値
  • グラフの平均値に標準偏差を 2 回加えた値

  • グラフの最大値

システム・モニタが稼働中、ヘルス・モニタが有効
(ユーザが作成したグラフが存在する場合は、該当なし) ユーザ作成済み グラフのアラート値 グラフの警告値 システム・モニタが稼働中、ヘルス・モニタが有効

この例では、月曜日の 9:00 a.m. ~ 11:30 a.m. の期間における DBReads install-dir\IRIS\mgr\user センサのグラフに、USER データベースからの 1 分あたりの平均読み取り数が 2145、標準偏差が 141、および最大値が 2327 であることが示されています。DBReads の既定の通知しきい値乗数は、2 です。読み取り値が 3 回連続して次の 2 つの値のうちの大きい方を上回ると、このセンサにアラートが生成されます。

  • 最大乗数 * (グラフの平均値 + (3 * グラフの標準偏差))

    2 * (2145 + (3 * 141)) = 5136

  • 最大乗数 * (グラフの最大値 + グラフの標準偏差)

    2 * (2327 + 141) = 4936

このため、この期間にこのセンサで読み取り値が 3 回連続して 5136 を上回ると、アラートが生成されます。

乗数または最大値がないセンサは、1 の乗数で評価されます。例えば、DBReads センサ・オブジェクトが編集され、乗数が削除されて、ベース値のみが残った場合、読み取り値が 3 回連続して (以下のうち大きい方として計算された) 2568 を上回ると、DBReads install-dir\IRIS\mgr\user アラートが生成されます。

  • 最大乗数 * (グラフの平均値 + 標準偏差に 3 を掛けた値)

    1 * (2145 + (3 * 141)) = 2568

  • 最大乗数 * (グラフの最大値 + 標準偏差)

    1 * (2327 + 141) = 2468

^%SYSMONMGR を使用したヘルス・モニタの管理

"^%SYSMONMGR ユーティリティの使用" で説明されているように、^%SYSMONMGR ユーティリティでは、ヘルス・モニタを含め、システム・モニタを管理および構成できます。ヘルス・モニタを管理するには、ターミナルで %SYS ネームスペースに変更してから、以下のコマンドを入力します。

%SYS>do ^%SYSMONMGR

1) Start/Stop System Monitor
2) Set System Monitor Options
3) Configure System Monitor Classes
4) View System Monitor State
5) Manage Application Monitor
6) Manage Health Monitor
7) View System Data
8) Exit 

Option? 

Note:

ヘルス・モニタは、%SYS ネームスペースでのみ稼働します。別のネームスペースで ^%SYSMONMGR を起動すると、オプション 6 (Manage Health Monitor) は表示されません。

6 (Manage Health Monitor) を入力します。以下のメニューが表示されます。

1) Enable/Disable Health Monitor 
2) View Alerts Records
3) Configure Health Monitor Classes 
4) Set Health Monitor Options
5) Exit 

Option? 

実行する操作の番号を入力します。ヘルス・モニタ・ユーティリティを終了するには Enter キーを押します。

メイン・メニューのオプションでは、以下のテーブルに示すヘルス・モニタのタスクを実行できます。

オプション 説明
1) Enable/Disable Health Monitor
  • ヘルス・モニタの有効化 (ヘルス・モニタが既定で無効になっている場合)。これにより、システム・モニタの起動時にヘルス・モニタが起動します。ヘルス・モニタは、構成されている起動待機時間が完了するまで、センサの読み取り値の収集を開始しません。

  • ヘルス・モニタの無効化 (ヘルス・モニタが有効になっている場合)。これにより、システム・モニタの起動時にヘルス・モニタは起動しません。

2) View Alert Records
  • 指定された日付範囲での 1 つまたはすべてのセンサ・オブジェクトのアラート・レコードの表示。

3) ヘルスモニタクラスの構成
  • 通知ルールの表示。

  • 既存の期間のリスト表示と削除、および新しい期間の追加。

  • グラフのリスト表示、検証、編集、および作成。

  • センサ・オブジェクトのリスト表示とセンサ・オブジェクトの設定の編集。

  • ヘルス・モニタの要素を既定値にリセット。

4) ヘルスモニタオプションの設定
  • 起動待機時間の設定。

  • アラート・レコードを削除する時期の指定。

Note:

ユーティリティから、センサ、ルール、期間、グラフなど、1 つの要素を指定するように求められた場合には、番号付きリストのプロンプトで「? 」(疑問符) を入力して、その後で必要な要素の番号を入力できます。

このユーティリティからのすべての出力は、ターミナルで表示するか、指定のデバイスに送信できます。

アラート・レコードの表示

特定のセンサまたはすべてのセンサについて、最近生成されたアラートを表示するには、このオプションを選択します。 グラフの平均値および標準偏差や通知をトリガする読み取り値など、個別のアラートおよび警告の詳細を検証することができます。(アラート・レコードは、構成された日数後に削除されます。詳細は "ヘルスモニタオプションの設定" を参照してください。)

ヘルスモニタクラスの構成

このサブメニューの各オプションでは、以下のテーブルのようにヘルス・モニタをカスタマイズできます。

Note:

システム・モニタの稼働中にこれらのオプションを使用してヘルス・モニタをカスタマイズすることはできません。まず、システム・モニタを停止し、変更を行った後にシステム・モニタを再起動する必要があります。

オプション 説明
1) ルールのアクティブ化/非アクティブ化

(このリリースでは使用しません)

2) 期間の構成

現在構成されている期間のリストを表示し、期間を追加および削除します。

3) 図の構成

以下のことができます。

  • すべての既存のグラフの平均値と標準偏差のリストを期間ごとにまとめて表示します。

  • 平均値や標準偏差の基になる読み取り値や、最大読み取り値など、個々のグラフの詳細情報を確認します。

  • [Edit Charts] オプションを使用して、既存のグラフの平均値と標準偏差を変更します。

  • グラフを作成して、アラートしきい値と警告しきい値を指定します。

  • 最新のデータを使用して、すべてのグラフ (ユーザが作成したグラフも含む) または個々のグラフを手動で再校正します。

4) Edit Sensor Objects

SYS.Monitor.SystemSensors クラス内のセンサを表すセンサ・オブジェクトを表示し、センサ・オブジェクトのベース値、最大値、警告値、最大乗数、および警告乗数を変更します。

5) 既定にリセット

以下のことができます。

  • 既定の期間構成にリセットし、既存のグラフをすべて削除し、すべての期間を分析モードに戻します ("ヘルス・モニタ・プロセスの説明" を参照してください)。

  • ユーザ定義の期間構成は削除せずに、既存のグラフ (ユーザが作成したグラフも含む) をすべて削除し、すべての期間を分析モードに戻します。

  • すべてのセンサ・オブジェクトを既定値にリセットします。

  • ヘルス・モニタのオプション (起動待機時間およびアラートの削除時間 ) を既定値にリセットします。

ヘルスモニタオプションの設定

このサブメニューでは、以下のテーブルに示すヘルス・モニタのいくつかのオプションを設定できます。

オプション 説明
1) 起動待機時間の設定

起動後、センサの読み取り値をヘルス・モニタ・サブスクライバ SYS.Health.Monitor.Control に渡すまでのシステム・モニタの待機時間 (分) を構成します (ヘルス・モニタが有効になっている場合)。これにより、InterSystems IRIS は、ヘルス・モニタがグラフの作成または読み取り値の評価を開始する前に、通常の動作状態に到達できます。

2) アラートの削除時間の設定 アラート・レコードをいつ削除するかを指定します。既定では、アラートの生成から 5 日後です。

アプリケーション・モニタ

アプリケーション・モニタは、ユーザ拡張可能なメトリック・セットを監視し、自身が収集したデータの永続リポジトリを維持し、ユーザが構成したアラートをトリガします。

このセクションでは、以下のトピックについて説明します。

アプリケーション・モニタの概要

アプリケーション・モニタは、システム・モニタに構成されている各実行開始ネームスペースで、ユーザが選択したシステム定義メトリックとユーザ定義メトリックのセットを監視する、拡張可能なユーティリティです。"システム・モニタの既定のコンポーネント" で説明されているように、%SYS.Monitor.AppMonSensor (アプリケーション・モニタ・センサ・クラス) は、システム・モニタによって呼び出されると、メトリックをサンプリングし、サンプルを評価し、それ自体の通知を生成します。(システム・モニタの通知やヘルス・モニタの通知と異なり、これらはメッセージ・ログに書き込まれません。)具体的に言うと、アプリケーション・モニタはシステム・モニタの各実行開始ネームスペースで以下を実行します。

  1. システム・モニタの起動時に、起動します。

  2. 付属のシステム・モニタ・クラスを登録できます (これらは既定で %SYS に登録されます)。

  3. 監視対象のシステム定義クラスおよびユーザ定義クラスを有効化できます。有効化できるのは、登録されているシステム・クラスと、ローカル・ネームスペースにあるユーザ定義クラスです。例えば、ユーザ定義クラスを USER ネームスペースでのみ作成すると、そのクラスは USER ネームスペースでのみ有効化できます。

  4. 各アクティブ・クラスによって指定されたメトリックをサンプリングして、それらのクラスを監視します。これらのメトリックは、モニタ・クラスの GetSample() メソッドによって呼び出されたサンプル・クラスから返されるプロパティを表します。例えば、%Monitor.System.LockTableOpens in a new tab クラスは、%Monitor.System.Sample.LockTableOpens in a new tab クラスを呼び出します。このクラスは、TotalSpace プロパティ (ロック・テーブルの合計サイズを格納) や、UsedSpace プロパティ (ロック・テーブルの使用中の領域のサイズを格納) などを返します。サンプリングされたデータとモニタ・メタデータおよびクラス・メタデータは、ローカル・ネームスペースに保存され、すべてのオブジェクトおよび SQL からアクセスできるようになります。

  5. あるクラスのアラートが構成されており、そのクラスがアラートに構成されている評価式を満たすプロパティ値を返した場合、電子メール・メッセージを生成するかクラス・メソッドを呼び出します (これらのアクションのいずれかがアラートに構成されている場合)。例えば、最初に受信者への電子メール通知を構成し、次に %Monitor.System.LockTableOpens in a new tab クラス用のアラートを構成し、%Monitor.System.Sample.LockTableOpens in a new tabUsedSpace プロパティの TotalSpace プロパティに対する比率が .9 (使用率 90%) より大きい場合に電子メールが送信されるように指定します。

Note:

アプリケーション・モニタで提供されている %Monitor.System.HistorySysOpens in a new tab クラスと %Monitor.System.HistoryPerfOpens in a new tab クラスは、有効化されると、システムの使用状況とパフォーマンスのメトリックの履歴データベースを作成および保持します。これは、システムの使用状況とパフォーマンスの問題を経時的に分析するのに役立ちます。これらのクラスと %Monitor.System.HistoryUserOpens in a new tab は、%SYS でのみ動作し、他のネームスペースに登録することはできません。これらのクラスと履歴データベースの詳細は、このドキュメントの “履歴モニタ” の章を参照してください。

^%SYSMONMGR を使用したアプリケーション・モニタの管理

"^%SYSMONMGR ユーティリティの使用" で説明されているように、^%SYSMONMGR ユーティリティでは、アプリケーション・モニタを含め、システム・モニタを管理および構成できます。このユーティリティは任意のネームスペースで実行できます。このユーティリティを使用して行った変更は、このユーティリティが起動されたネームスペースにのみ影響します。ネームスペースで ^%SYSMONMGR を起動して構成した実行開始ネームスペースごとに、個別のアプリケーション・モニタ構成を保持する必要があります。

Note:

アプリケーション・モニタ構成にクラスの有効化などの変更を加えた後は、変更を有効にするために、その変更を行ったネームスペースでシステム・モニタを再起動する必要があります。

アプリケーション・モニタを管理するには、ターミナルで以下のコマンドを入力します。

%SYS>do ^%SYSMONMGR

次に、5 (Manage Application Monitor) を入力します。以下のメニューが表示されます。

1) Set Sample Interval
2) Manage Monitor Classes
3) Change Default Notification Method
4) Manage Email Options
5) Manage Alerts
6) Debug Monitor Classes
7) Exit
 
Option?

実行する操作の番号を入力します。アプリケーション・モニタ・ユーティリティを終了するには Enter キーを押します。

Manage Application Monitor

メイン・メニューのオプションでは、以下のテーブルで説明するようにアプリケーション・モニタを管理できます。

オプション 説明
1) Set Sample Interval

メトリックがサンプリングされる間隔を設定します。既定値は 30 秒です。この設定は、([Manage Monitor Classes] サブメニューの [Set Class Sample Interval] オプションを使用して) クラス固有の間隔を設定することでクラスごとにオーバーライドできます。

注意 : システム・モニタのサンプリング間隔 ([Set System Monitor Options] サブメニューの [Set Sample Interval] を参照) がアプリケーション・モニタ・クラスのサンプリング間隔よりも長い場合、2 つの間隔のうち長い方が使用されます。例えば、システム・モニタの間隔が 30 でアプリケーション・モニタの間隔が 120 である場合、アクティブなアプリケーション・モニタ・クラスはすべて 120 秒ごとにサンプリングされます。システム・モニタの間隔が 60 で %Monitor.System.LockTableOpens in a new tab クラスの間隔が 20 の場合、クラスは 60 秒ごとにサンプリングされます。

2) Manage Monitor Classes アプリケーション・モニタ・マネージャを実行しているネームスペースでシステム定義モニタ・クラスとユーザ定義モニタ・クラスを管理するための [Manage Monitor Classes] サブメニューが表示されます。
3) Change Default Notification Method アラートがトリガされたときに実行されるアラートの既定のアクションを指定できます。別途指定しない限り、作成したすべてのアラートでこのアクションが使用されます。

4) Manage Email Options [Monitor Email Options] サブメニューが表示されます。このサブメニューでは、アラートでこのアクションを指定できるように、電子メール通知を有効化して構成することができます。
5) Manage Alerts [Manage Alerts] サブメニューが表示されます。このサブメニューでは、システム定義およびユーザ定義のモニタ・クラスのアラートを作成できます。

Manage Monitor Classes

このサブメニューでは、システム定義モニタ・クラスおよびユーザ定義モニタ・クラスを管理できます。 実行する操作の番号を入力します。メイン・メニューに戻るには Enter キーを押します。

Option? 2
 
1) Activate/Deactivate Monitor Class
2) List Monitor Classes
3) Register Monitor System Classes
4) Remove/Purge Monitor Class
5) Set Class Sample Interval
6) Exit
 
Option?

このサブメニューでは、以下のテーブルのように、システム定義クラスおよびユーザ定義クラスを管理するメニュー項目が表示されます。

オプション 説明
1) Activate / Deactivate Monitor Class

アプリケーション・モニタは、アクティブなクラスのみをサンプリングします。このオプションでは、非アクティブなクラスを有効化するか、アクティブなクラスを無効化できます。ローカル・ネームスペースに登録されているシステム定義クラスとユーザ定義クラスの番号付きリストとそれぞれの有効化状況を表示するには、[Class?] プロンプトで「?」と入力し、番号またはクラス名を入力します。

2) List Monitor Classes

ローカル・ネームスペースに登録されているシステム定義クラスとユーザ定義クラスのリストと、それぞれの有効化状況を表示します。

3) Register Monitor System Classes

すべてのシステム・モニタ・クラス (%Monitor.System.HistorySysOpens in a new tab クラス、%Monitor.System.HistoryPerfOpens in a new tab クラス、および %Monitor.System.HistoryUserOpens in a new tab クラスは除く) を登録して、それらのクラスをローカル・ネームスペースに保存します。サンプリングを開始するために、このメニューの [1) Activate/Deactivate Monitor Class] オプションを使用して、システム・クラスを引き続き有効にしておく必要があります。

4) Remove/Purge Class

ローカル・ネームスペースにあるクラスのリストからモニタ・クラスを削除します。ローカル・ネームスペースに登録されているシステム定義クラスとユーザ定義クラスの番号付きリストとそれぞれの有効化状況を表示するには、[Class?] プロンプトで「?」と入力し、番号またはクラス名を入力します。

Note:

このオプションでは、クラスそのものが削除されるわけではなく、有効化できる登録クラスのリストからそのクラスの名前が削除されるだけです。リストをリセットするには、このメニューのオプション [3) Register Monitor System Classes] を選択します。

5) Set Class Sample Interval

アプリケーション・モニタの既定のサンプリング間隔をクラスごとにオーバーライドできます。この間隔は [Manage Application Monitor] メニューの [1) Set Sample Interval] オプションで指定されています。既定値は 0 で、そのクラスにはクラス固有のサンプリング間隔が設定されていないことを意味します。

この設定の間隔、[Set Sample Interval] 設定の間隔、および "Set System Monitor Options" で説明しているシステム・モニタのサンプリング間隔の優先順位については、[Set Sample Interval] オプションの説明を参照してください。

6) Debug Monitor Classes

[Debug Monitor Classes] メニューが表示されます (エラーのリストも表示されます)。このメニューでは、デバッグ機能を有効化または無効化できます。

Debug Monitor Classes

このサブメニューでは、システムのデバッグ機能を管理できます。

[Debugging monitor classes] により、サンプル値の収集中に、ユーザ定義のアプリケーション・モニタ・クラスによって生成されたエラーを取得する機能が追加されます。

実行する操作の番号を入力します。メイン・メニューに戻るには Enter キーを押します。

Option? 6
 
1) Enable Debug
2) Disable Debug
3) List Errors
4) Exit
 
Option?

このサブメニューの各オプションでは、以下のテーブルに示すように、アプリケーション・モニタのデバッグ機能を管理できます。

入力フィールド 説明
1) Enable Debug

デバッグ機能を有効にします。クラスがサンプル値を生成していない場合は、エラーが原因でサンプル値の保存が妨げられているかどうかを確認してください。

2) Disable Debug

デバッグ機能を無効にします。

3) List Errors

ローカル・ネームスペース内のエラーの定義がすべて表示されます。例えば、以下のようなものがあります。

%Save()%New()Initialize()GetSample()

^%SYSMONMGR を使用してクラスのデバッグ機能を有効にすると、システム・モニタはクラス内の特定のメソッドで捕捉した最後のエラーを保存します。

Change Default Notification Method

アラートの作成時に、そのアラートがトリガされたときに実行されるアクションを指定します。このアクションの既定の選択肢が、このオプションを使用して設定する既定の通知方法です。実行する操作の番号を入力します。メイン・メニューに戻るには Enter キーを押します。

Option? 3
  
Notify Action (0=none,1=email,2=method)? 0 => 

このオプションでの選択は、以下のテーブルのように、既定の通知メソッドを使用するアラートの構成で使用されます。

入力フィールド 説明
0

アラートがトリガされてもアクションを実行しません。

1

アラートがトリガされると、構成されている受信者に電子メール・メッセージを送信します。電子メールの構成に関する詳細は、"Manage Email Options" を参照してください。

2

アラートがトリガされると、通知メソッドを呼び出します。このアクションを選択すると、アラートで指定されているアプリケーション名と、サンプル・クラスによってモニタ・クラスに返されるプロパティを含む %List オブジェクトを引数とする通知メソッドが呼び出されます ("アプリケーション・モニタの概要" を参照してください)。プロンプトが表示されたら、完全なクラス名とメソッド (packagename.classname.method) を入力します。このメソッドは、ローカル・ネームスペースに存在する必要があります。

Manage Email Options

このサブメニューのオプションでは、電子メールの構成および有効化が可能です。電子メールが有効になっている場合、電子メール通知を送信するよう構成されているアラートがトリガされると、アプリケーション・モニタから電子メール通知が送信されます。実行する操作の番号を入力します。メイン・メニューに戻るには Enter キーを押します。

Option? 4

1) Enable/Disable Email
2) Set Sender
3) Set Server
4) Manage Recipients
5) Set Authorization
6) Test Email
7) Exit

Option? 

このサブメニューの各オプションでは、以下のテーブルのようにアプリケーション・モニタの電子メール通知を管理できます。

オプション 説明
1) Enable / Disable Email

電子メールを有効にすると、アラートがトリガされたときに、アプリケーション・モニタが電子メール通知を送信できます (構成されている場合)。電子メールを無効にすると、アラートがトリガされても電子メール通知は送信されません。

Note:

電子メールを無効にしてから、再び有効にした場合は、電子メール・オプションを再構成する必要はありません。

2) Set Sender

このオプションは必須です。電子メールの送信者を識別するテキストを入力します。指定されている送信メール・サーバに応じて、このテキストが有効な電子メール・アカウントである必要がある場合とない場合があります。

3) Set Server

このオプションは必須です。サイトの送信電子メールを処理するサーバの名前を入力します。サーバの名前が不明の場合、IT 担当者に問い合わせてください。

4) Manage Recipients

このオプションでは、受信者の有効な電子メール・アドレスのリスト、追加、または削除が可能な次のサブメニューが表示されます。 1) List Recipients 2) Add Recipient 3) Remove Recipient 4) Exit

受信者を追加または削除する場合は、電子メール・アドレスを個別に (1 行に 1 つずつ) 入力する必要があります。無効な形式のアドレスは拒否されます。

5) Set Authorization

電子メール・サーバが承認を必要とする場合、承認のユーザ名とパスワードを指定できます。IT 担当者に問い合わせて、この情報を入手してください。エントリを入力しないと、承認のユーザ名とパスワードは NULL に設定されます。

6) Test Email

指定された電子メール・サーバを使用して、指定された受信者にテスト・メッセージを送信します。送信に失敗した場合は、結果として生成されたエラー・メッセージが問題の解決に役立つことがあります。

Manage Alerts

アラートでは以下を指定します。

  • 対象のネームスペース内の条件。モニタ・クラスによってサンプリングされたプロパティの値によって定義されます。

  • その条件が発生した場合にそれをユーザに通知するために実行されるアクション。

前述の例に戻るには、アラートを作成して、以下を指定します。

プロパティに基づいた条件の定義は、評価式と呼ばれます。使用するサンプル・クラスのプロパティを指定した後に、評価式を指定します。評価式では、プロパティは、ユーザがプロパティを指定した順番と対応するプレースホルダで示されます。例えば、ロック・テーブルのアラートを作成するときに、最初に UsedSpace プロパティを指定し、次に TotalSpace プロパティを指定した場合、評価式を「%1 / %2 > .9」と入力します。このとき、プロパティを逆の順番で入力すると、式は「%2 / %1 > .9」となります。

アラート・メニューが表示されたら、実行する操作の番号を入力します。メイン・メニューに戻るには Enter キーを押します。

Option? 2
 
1) Create Alert
2) Edit Alert
3) List Alerts
4) Delete Alert
5) Enable/Disable Alert
6) Clear NotifyOnce Alert
7) Exit
 
Option?

このサブメニューの各オプションでは、以下のテーブルのようにアプリケーション・モニタのアラートを管理できます。

入力フィールド 説明
1) Create Alert

新しいアラートを定義できます。プロンプトおよびそれに対する入力の説明は、"アラート・プロンプトへの入力" を参照してください。新しく作成したアラートは既定で有効になります。

2) Edit Alert

既存のアラートを変更できます。編集するアラートの名前を入力するか、「?」と入力して既存のアラートのリストを表示して、番号または名前を入力します。

Note:

内容を変更しないプロンプトも含め、すべてのプロンプトで入力する必要があります。つまり、変更するフィールドの改訂情報だけでなく、変更しないフィールドの情報も再入力する必要があります。プロンプトおよびそれに対する入力の説明は、"アラート・プロンプトへの入力" を参照してください。

3) List Alerts

ローカル・ネームスペースにあるすべてのアラートの定義を表示します。例えば、以下のようになります。

Alert: LockTable90 USER

Action: email

Class: %Monitor.System.LockTable

Property: UsedSpace,TotalSpace

Expression: %1/%2>.9

Notify Once: True

Enabled: Yes

4) Delete Alert

既存のアラートを削除できます。編集するアラートの名前を入力するか、「?」と入力して既存のアラートのリストを表示して、番号または名前を入力します。

Note:

各アラートを個別に入力する必要があります。つまり、削除するアラートを列や範囲で指定することはできません。

5) Enable / Disable Alert

アラートを有効にすると、そのアラートはアクティブになります。アラートを無効にすると、そのアラートは非アクティブになります。

Note:

アラートを無効にしてから、再び有効にした場合は、アラート・オプションを再構成する必要はありません。

6) Clear NotifyOnce Alert

アラートがトリガされたときに、指定のアラート名に内部フラグ Notified を設定できます。これが設定されると、別のアラートが送信されることはありません。

以下のテーブルでは、アラート・プロンプトでの有効な入力について説明します。

アラート・プロンプトへの入力
入力フィールド 説明
Alert Name?

英数字の名前を入力します。ローカル・ネームスペースで既に定義されているアラート名の番号付きリストを表示するには、[Alert Name?] プロンプトで「?」と入力します。

Application?

電子メール・メッセージまたは通知メソッドに渡す説明テキストを入力します。このテキストには、この後の手順の [Property?] プロンプトで指定するプロパティへの参照を %N の形式で含めることができます。%1 は最初のプロパティを表し、%2 は 2番目のプロパティを表します (以下同様)。

Action (0=default, 1=email, 2=method)?

アラートがトリガされたときに実行されるアクションを指定します。以下のオプションのいずれかを入力します。

  • 0 – 既定で指定されている通知方法 (なし、電子メール、またはクラス・メソッド) を使用します。"Change Default Notification Method" を参照してください。

  • 1 – アラートがトリガされると、説明テキストとサンプル・クラスによってモニタ・クラスに返されたプロパティの名前と値が含まれた電子メール・メッセージ ("アプリケーション・モニタの概要" を参照) を構成された電子メール受信者に送信します。電子メールの構成に関する詳細は、"Manage Email Options" を参照してください。

  • 2 – 説明テキストと、サンプル・クラスによってモニタ・クラスに返されるプロパティを含む %List オブジェクトを引数とする、指定の通知メソッドを呼び出します ("アプリケーション・モニタの概要" を参照してください)。

    プロンプトが表示されたら、完全なクラス名とメソッド (packagename.classname.method) を入力します。このメソッドは、ローカル・ネームスペースに存在する必要があります。

Raise this alert during sampling?

またはDefine a trigger for this alert?

アラートの作成では、1 番目のプロンプトが表示されます。作成時に 1 番目のプロンプトで「No」を入力したアラートの編集では、2 番目のプロンプトが表示されます。以下のいずれかを入力します。

  • Yes – 必要な情報のプロンプト表示を続行します。

  • No – スキップして終了します。[Class?][Property?]、および [Evaluation expression?] の各プロンプトは省略されます。

Class?

ローカル・ネームスペースに登録されているシステム定義モニタ・クラスまたはユーザ定義モニタ・クラスの名前を入力します。ローカル・ネームスペースにある登録クラスの番号付きリストとそれぞれの有効化状況を表示するには、[Class?] プロンプトで「?」と入力します。

Note:

非アクティブなクラスのアラートを作成できます。アラートが構成されているクラスが削除されても、アラート自体は削除されません。

Property?

前のプロンプトで指定したクラスで定義されているプロパティの名前 (式の評価や説明テキストで使用しているもの) を入力します。指定のクラスで定義されているプロパティの番号付きリストを表示するには、[Property?] プロンプトで「?」と入力して、番号または名前を入力します。各プロパティは個別に入力する必要があります。入力の完了後、空白のプロンプトで Enter キーを押すと、プロパティのリストが指定した順序で表示されます。

Evaluation expression?

[Property?] プロンプトで指定したプロパティの評価に使用する式。 例えば、(%1 = "User") && (%2 < 100) では、%1 はプロパティのリストの最初のプロパティを表し、%2 は 2 番目のプロパティを表します。

Notify once only?

以下のいずれかを入力します。

  • Yes – アラートの最初のトリガでのみユーザに通知します。

  • No – アラートがトリガされるたびにユーザに通知します。

アプリケーション・モニタのメトリック

アプリケーション・モニタに付属のシステム・モニタ・クラスは、次の表に示すように、さまざまなサンプル・クラスを呼び出します。

サンプル・クラス アプリケーション・モニタ・システム・クラス
監査メトリック %Monitor.System.Sample.AuditCountOpens in a new tab および %Monitor.System.Sample.AuditEventsOpens in a new tab
クライアント・メトリック %Monitor.System.Sample.ClientsOpens in a new tab
Web ゲートウェイ・メトリック %Monitor.System.Sample.CSPGatewayOpens in a new tab
ディスク容量メトリック %Monitor.System.Sample.DiskspaceOpens in a new tab
空き容量メトリック %Monitor.System.Sample.FreespaceOpens in a new tab
グローバル・メトリック %Monitor.System.Sample.GlobalsOpens in a new tab
履歴データベース・メトリック (このドキュメントの “履歴モニタ” の章を参照) %Monitor.System.Sample.HistoryPerfOpens in a new tab%Monitor.System.Sample.HistorySysOpens in a new tab%Monitor.System.Sample.HistoryUserOpens in a new tab
ジャーナル・メトリック %Monitor.System.Sample.JournalsOpens in a new tab
ライセンス・メトリック %Monitor.System.Sample.LicenseOpens in a new tab
ロック・テーブル・メトリック %Monitor.System.Sample.LockTableOpens in a new tab
プロセス・メトリック %Monitor.System.Sample.ProcessesOpens in a new tab
ルーチン・メトリック %Monitor.System.Sample.RoutinesOpens in a new tab
サーバ・メトリック %Monitor.System.Sample.ServersOpens in a new tab
システム活動メトリック %Monitor.System.Sample.SystemMetrics

各カテゴリのサンプル・メトリックに対応するプロパティのリストは、"インターシステムズ・クラス・リファレンス" を参照してください。

MONITOR 機能を制御する類似の関数群が、%Monitor.System パッケージのクラスに用意されています。このパッケージを使用すると、収集したデータに名前を付け、永続オブジェクト形式として保存できます。詳細は、"インターシステムズ・クラス・リファレンス" で、%Monitor.System.Sample パッケージ・クラスのドキュメント、および %Monitor.System.SystemMetricsOpens in a new tab クラスのドキュメントを参照してください。

メトリックの生成

%Monitor.SampleAgent クラスは実際のサンプリングを行い、メトリック・クラスの Initialize() メソッドと GetSample() メソッドを呼び出します。

%Monitor.SampleAgent.%New() コンストラクタは、実行するメトリック・クラスの名前を引数として取ります。役割は、そのクラスのインスタンスを生成し、そのクラスの Startup() メソッドを呼び出すことです。その後、%Monitor.SampleAgent.Collect() メソッドが呼び出されるたびに、Sample Agent はそのクラスの Initialize() メソッドを呼び出し、そのクラスの GetSample() メソッドを繰り返し呼び出します。さらに、GetSample() が呼び出されるたびに、%Monitor.SampleAgent は、メトリック・クラスのサンプル・クラスを作成します。これらの処理の擬似コードは以下のとおりです。

set sampler = ##class(%Monitor.SampleAgent).%New("MyMetrics.Freespace")
/* at this point, the sampler has created an instance of MyMetrics.Freespace,
and invoked its Startup method */
for I=1:1:10 { do sampler.Collect() hang 10 }
/* at each iteration, sampler calls MyMetrics.Freespace.Initialize(), then loops
on GetSample().  Whenever GetSample() returns $$$OK, sampler creates a new
MyMetrics.Sample.Freespace instance, with the sample data. When GetSample()
returns an error value, no sample is created, and sampler.Collect() returns. */

メトリック・データの表示

すべてのメトリック・クラスは、CSP 対応です。サンプル・クラスの生成時に、CSP コードが自動的に生成されます。したがって、メトリックを表示する最も簡単な方法は、Web ブラウザを使用することです。例えば、"メトリックの生成" の例に基づくと、また、スーパーサーバ・ポート番号を 52773 と仮定すると、CSP の URL は http://<instance-host>:52773/csp/user/MyMetrics.Sample.Freespace.cls です。これにより、以下のような出力が表示されます。

Monitor - Freespace c:\InterSystems\IRIS51\ 
            Name of dataset:  c:\InterSystems\IRIS51\
Current amount of Freespace:  8.2MB

Monitor - Freespace c:\InterSystems\IRIS51\mgr\ 
            Name of dataset:  c:\InterSystems\IRIS51\mgr\
Current amount of Freespace:  6.4MB

%Monitor.ViewOpens in a new tab クラスの Display(metric_class) メソッドを使用することもできます。例えば、以下のようになります。

%SYS>set mclass="Monitor.Test.Freespace"

%SYS>set col=##class(%Monitor.SampleAgent).%New(mclass)

%SYS>write col.Collect()
1
%SYS>write ##class(%Monitor.View).Display(mclass)

Monitor - Freespace    c:\InterSystems\IRIS51\
                Name of dataset:  c:\InterSystems\IRIS51\
    Current amount of Freespace:  8.2MB

Monitor - Freespace    c:\InterSystems\IRIS51\mgr\
                Name of dataset:  c:\InterSystems\IRIS51\mgr\
    Current amount of Freespace:  6.4MB

Note:

名前に % (パーセント記号) が含まれているクラスの URL は、その場所に %25 を使用する必要があります。例えば、%Monitor.System.FreespaceOpens in a new tab クラスの場合、以下のようになります。

http://localhost:52773/csp/sys/%25Monitor.System.Freespace.cls

ユーザ定義アプリケーション・モニタ・クラスの記述

付属のシステム・クラスのほか、ユーザ・アプリケーションのデータとカウンタを監視する独自のモニタ・クラスおよびサンプル・クラスを記述することができます。

モニタ・クラスは、抽象モニタ・クラス %Monitor.AdaptorOpens in a new tab から継承する任意のクラスです。%Monitor.System クラスはそのようなクラスの例です。独自のユーザ定義モニタ・クラスを作成する手順は次のとおりです。

  1. データを監視するネームスペースで ^%MONAPPMGR を実行します。オプション 2 を使用してモニタ・クラスをリストし、そのメニュー内のオプション 3 を使用して、モニタ・システム・クラスを登録します。

    SAMPLES>d ^%MONAPPMGR
     
     
    1) Set Sample Interval
    2) Manage Monitor Classes
    3) Change Default Notification Method
    4) Manage Email Options
    5) Manage Alerts
    6) Exit
     
    Option? 2
     
    1) Activate/Deactivate Monitor Class
    2) List Monitor Classes
    3) Register Monitor System Classes
    4) Remove/Purge Monitor Class
    5) Set Class Sample Interval
    6) Exit
     
    Option? 3
    Exporting to XML started on 06/21/2022 12:52:36
    Exporting class: Monitor.Sample
    Export finished successfully.
     
    Load started on 06/21/2022 12:52:36
    Loading file C:\InterSystems\SRCCTRL\mgr\Temp\t0jFhPqLkZoYAA.stream as xml
    Imported class: Monitor.Sample
    Compiling class Monitor.Sample
    Compiling table Monitor.Sample
    Compiling routine Monitor.Sample.1
    Load finished successfully.
     
     
    1) Activate/Deactivate Monitor Class
    2) List Monitor Classes
    3) Register Monitor System Classes
    4) Remove/Purge Monitor Class
    5) Set Class Sample Interval
    6) Exit
     
    Option?
    
  2. %Monitor.AdaptorOpens in a new tab を継承するクラスを記述します。この継承は、永続性、パラメータ、プロパティ、コード生成、およびユーザのクラス定義からモニタ・メタデータを生成するプロジェクションを提供します。このクラスおよびユーザが記述する必要があるコードの詳細は、%Monitor.AdaptorOpens in a new tab クラスの説明を参照してください。

  3. クラスをコンパイルします。%Monitor.AdaptorOpens in a new tab から継承したクラスをコンパイルすると、ユーザ・クラスのサブパッケージである Sample に新しいサンプル・クラスが生成されます。例えば、A.B.MyMetric をコンパイルすると、新しいクラスが A.B.Sample.MyMetric に生成されます。生成されたクラスで何らかの操作を実行する必要はありません。

    Important:

    アプリケーション・モニタ・クラスを削除するには、モニタ・クラスのみを削除します。つまり、生成されたサンプル・クラスは削除しないようにします。管理ポータルを使用して、サンプル・クラス (例えば、A.B.Sample.MyMetric) の生成元であるモニタ・クラス (例えば、A.B.MyMetric) のみを削除します。これにより、モニタ・クラスと生成されたサンプル・クラスの両方が自動的に削除されます。

サンプル・クラスはすべて自動的に CSP 対応になるので、A.B.Sample.MyMetric.cls を指定すれば、ユーザ・メトリックのサンプル・データを参照できます。アプリケーション・モニタはこのクラスを自動的に呼び出し、このクラスが有効な場合はデータとアラートを生成します。モニタ・クラスの有効化に関する情報は、"Manage Monitor Classes" を参照してください。

Important:

SECURITYRESOURCE パラメータは、明示的に変更していない場合、%Monitor.AdaptorOpens in a new tab 内 (したがって、%Monitor.AdaptorOpens in a new tab から継承するユーザ・クラス内) では空です。コード生成では、SECURITYRESOURCE 値がユーザ定義のクラスから生成されたサンプル・クラスにコピーされます。

以下の簡単な例では、InterSystems IRIS インスタンスの各データセットに空き領域を確保します。

それぞれのサンプリングでは、n インスタンスのサンプル・データ・オブジェクトを要求します。各インスタンスはデータセットに対応しています。また、この例では、各インスタンスのプロパティは 1 つだけ (サンプル収集時におけるそのデータセットの空き容量) です。

  1. %Monitor.AdaptorOpens in a new tab を継承するクラスを作成します。

    Class MyMetric.Freespace Extends %Monitor.Adaptor [ ProcedureBlock ]
    {
    }
    
  2. サンプル・データの一部となるプロパティを追加します。それらの型は %Monitor パッケージ内のクラスである必要があります。

    • Gauge

    • Integer

    • Numeric

    • String

    例えば以下のようになります。

    Class MyMetric.Freespace Extends %Monitor.Adaptor [ ProcedureBlock ]
    {
    /// Name of dataset
    Property DBName As %Monitor.String(CAPTION = "Database Name");
    
    /// Current amount of Freespace
    Property FreeSpace As %Monitor.String;
    }
  3. サンプルのインスタンスの中で、どのフィールドが一意キーになるかを指定する INDEX パラメータを追加します。

    Parameter INDEX = "DBName";
    
  4. 必要に応じてコントロール・プロパティを追加して、そのプロパティが生成されたクラスのストレージ定義の一部にならないように [Internal] のマークを付けます。

    /// Result Set for use by the class
    Property Rspec As %SQL.StatementResult [Internal];
    
  5. Initialize() メソッドをオーバーライドします。Initialize() は、各メトリックの収集を開始する時点で呼び出されます。

    /// Initialize the list of datasets and freespace.
    Method Initialize() As %Status
    {
        set stmt=##class(%SQL.Statement).%New()
        set status= stmt.%PrepareClassQuery("SYS.Database","FreeSpace")
        set ..Rspec = stmt.%Execute()
        return $$$OK
    }
  6. GetSample() メソッドをオーバーライドします。GetSample() は、状態値 0 が返されるまで繰り返し呼び出されます。各サンプル・インスタンスにメトリック・データを取り込むためのコードを記述します。

    /// Get dataset metric sample.
    /// A return code of $$$OK indicates there is a new sample instance.
    /// A return code of 0 indicates there is no sample instance.
    Method GetSample() As %Status
    {
        // Get freespace data
        set stat = ..Rspec.%Next(.sc)
    
        // Quit if we have done all the datasets
        if 'stat {
            Quit 0
        }
    
        // populate this instance
        set ..DBName = ..Rspec.%Get("Directory")
        set ..FreeSpace = ..Rspec.%Get("Available")
    
        // quit with return value indicating the sample data is ready
        return $$$OK
    }
  7. クラスをコンパイルします。クラスは以下のようになります。

    Class MyMetric.Freespace Extends %Monitor.Adaptor
    {
    Parameter INDEX = "DBName";
    
    /// Name of dataset
    Property DBName As %Monitor.String;
    
    /// Current amount of Freespace
    Property FreeSpace As %Monitor.String;
    
    /// Result Set
    Property Rspec As %SQL.StatementResult [Internal];
    
    /// Initialize the list of datasets and freespace.
    Method Initialize() As %Status
    {
        set stmt=##class(%SQL.Statement).%New()
        set status= stmt.%PrepareClassQuery("SYS.Database","FreeSpace")
        set ..Rspec = stmt.%Execute()
        return $$$OK
    }
    
    /// Get routine metric sample. 
    /// A return code of $$$OK indicates there is a new sample instance. 
    /// Any other return code indicates there is no sample instance. 
    Method GetSample() As %Status
    {
        // Get freespace data
        set stat = ..Rspec.%Next(.sc)
    
        // Quit if we have done all the datasets
        if 'stat {
            Quit 0
        }
    
        // populate this instance
        set ..DBName = ..Rspec.%Get("Directory")
        set ..FreeSpace = ..Rspec.%Get("Available")
    
        // quit with return value indicating the sample data is ready
        return $$$OK
    }
    
    }
  8. さらに、必要であれば、Startup() メソッドと Shutdown() メソッドをオーバーライドします。これらのメソッドは、サンプリングの開始時に一度だけ呼び出されます。したがって、チャネルを開く操作など、1 回限りの初期化処理を実行できます。

    /// Open a tcp/ip device to send warnings
    Property io As %Status;
    
    Method Startup() As %Status
    {
        set ..io="|TCP|2"
        set host="127.0.0.1"
        open ..io:(host:^serverport:"M"):200
    }
    
    Method Shutdown() As %Status
    {
        close ..io
    }
    
    
  9. このクラスをコンパイルすると、パッケージ MyMetric.Sample に新しいクラス MyMetric.Sample.Freespace が作成されます。

    /// Persistent sample class for MyMetric.Freespace
    Class MyMetric.Sample.Freespace Extends Monitor.Sample 
    {
    Parameter INDEX = "DBName";
    
    Property Application As %String [ InitialExpression = "MyMetric" ];
    
    /// Name of dataset
    Property DBName As %Monitor.String(CAPTION = "");
    
    /// Current amount of Freespace
    Property FreeSpace As %Monitor.String(CAPTION = "");
    
    Property GroupName As %String [ InitialExpression = "Freespace" ];
    
    Property MetricsClass As %String [ InitialExpression = "MyMetric.Freespace" ];
    
    }
    Note:

    このクラスは変更しないでください。ただし、このクラスから継承して、サンプル・データに対するカスタム・クエリを記述することは可能です。

    Important:

    アクティブなユーザ定義のアプリケーション・モニタ・クラスを変更してリコンパイルすると、そのクラスは非アクティブ化され、クラス固有のサンプリング間隔のオーバーライドは削除されます (設定されている場合)。このクラスをリストアするには、アクティブ化し、必要に応じてサンプリング間隔を再設定して、システム・モニタを再起動します。

FeedbackOpens in a new tab