モニタリング

1. モニタリングについて

モニタリングを行うための手順について説明します。

1.1. WebOTXが提供するパフォーマンス情報

WebOTXでは、モニタリングを行うことでパフォーマンス情報を取得することができます。 デフォルトでは次のようなパフォーマンス情報を提供しています。

デフォルトで採取できるパフォーマンス情報
表9.1.1-1
パフォーマンス情報
(WebOTX統計MBean)
説明
domain ドメインのパフォーマンス情報です。
jvm エージェントプロセスのJVMのパフォーマンス情報です。
デフォルトで採取できるパフォーマンス情報(Starndardのみ)
表9.1.1-2
パフォーマンス情報
(WebOTX統計MBean)
説明
ClientSession 接続クライアントのパフォーマンス情報です。
IIOPListener IIOPリスナのパフォーマンス情報です。
interface インターフェースのパフォーマンス情報です。
javaAsyncMsg Java非同期メッセージ(非MDB)のパフォーマンス情報です。
operation オペレーションのパフォーマンス情報です。
process-group プロセスグループのパフォーマンス情報です。
Queue キューのパフォーマンス情報です。
tpsystem TPモニタのパフォーマンス情報です。

また、モニタリングレベルを設定することでさらに詳細なパフォーマンス情報を提供します。 モニタリング設定はモジュール単位で設定することが可能です。 以下にモニタリングを提供するモジュール一覧を示します。 otxadminコマンドによりモニタリングレベルを設定することができます。

パフォーマンス情報を提供するモジュール
表9.1.1-3
モジュール 既定値 説明
コネクタコネクションプール OFF コネクションプールに関する統計情報。OFF、LOW、HIGHのいずれかを設定する。
EJBコンテナ OFF EJBコンテナに関する統計情報。OFF、LOW、HIGHのいずれかを設定する。
HTTPサービス OFF WebコンテナのHTTPサービスに関する統計情報。OFFもしくはONを設定する。
JVM OFF JVM(Java Virtual Machine)に関する統計情報。OFF、LOW、HIGHのいずれかを設定する。
JMSサービス OFF JMSサービスに関する統計情報。OFFもしくはONを設定する。
JDBCデータソース OFF JDBCデータソースに関する統計情報。OFF、LOW、HIGHのいずれかを設定する。
Transactionサービス OFF Transactionサービスに関する統計情報。OFF、LOW、HIGHのいずれかを設定する。
Webコンテナ OFF Webコンテナに関する統計情報。OFF、LOW、HIGHのいずれかを設定する。
配備 OFF 配備に関する統計情報。OFF、LOW、HIGHのいずれかを設定する。
セキュリティ OFF セキュリティに関する統計情報。OFF、ONのいずれかを設定する。
コネクタサービス OFF コネクタサービスに関する統計情報。OFF、LOW、HIGHのいずれかを設定する。
WebServer OFF WebOTX Webサーバに関する統計情報。OFF、LOW、HIGHのいずれかを設定する。

1.1.1. コネクタコネクションプール

コネクタコネクションプールでは次のようなパフォーマンス情報が採取できます。

表9.1.1.1-1
パフォーマンス情報
(WebOTX統計MBean)
説明 採取できるレベル
connector-connection-pool コネクタコネクションプールのパフォーマンス情報です。 HIGH

1.1.2. EJBコンテナ

EJBコンテナでは次のようなパフォーマンス情報が採取できます。

表9.1.1.2-1
パフォーマンス情報
(WebOTX統計MBean)
説明 採取できるレベル
bean-cache EJBキャッシュのパフォーマンス情報です。 HIGH
bean-method beanメソッドのパフォーマンス情報です。 HIGH
bean-pool EJBプールのパフォーマンス情報です。 HIGH
message-driven-bean MessageDrivenBeanのパフォーマンス情報です。 HIGH
singleton-bean SingletonBeanのパフォーマンス情報です。 HIGH
stateful-session-bean StatefulSessionBeanのパフォーマンス情報です。 HIGH
stateless-session-bean StatelessSessionBeanのパフォーマンス情報です。 HIGH

1.1.3. HTTPサービス

HTTPサービスでは次のようなパフォーマンス情報が採取できます。

表9.1.1.3-1
パフォーマンス情報
(WebOTX統計MBean)
説明 採取できるレベル
connection-queue Webコンテナのコネクションキューに関するパフォーマンス情報です。 HIGH
file-cache Webコンテナのファイルキャッシュに関するパフォーマンス情報です。 HIGH
keep-alive Webコンテナのキープアライブに関するパフォーマンス情報です。 HIGH
request Webコンテナのリクエストに関するパフォーマンス情報です。 HIGH
thread-pool Webコンテナのスレッドプールに関するパフォーマンス情報です。 HIGH
virtualserverinfo Webコンテナの仮想サーバに関するパフォーマンス情報です。 HIGH

1.1.4. JVM

JVMでは次のようなパフォーマンス情報が採取できます。

表9.1.1.4-1
パフォーマンス情報
(WebOTX統計MBean)
説明 採取できるレベル
class-loading-system JVM内で使用されるクラスのロードに関するパフォーマンス情報です。 LOW
compilation-system JVM内で実行されるコンパイル処理に関するパフォーマンス情報です。 LOW
garbage-collector JVM内で実行されるGC処理に関するパフォーマンス情報です。 LOW
memory JVM内でのメモリの消費に関するパフォーマンス情報です。 LOW
operating-system JVMが動作するOSに関するパフォーマンス情報です。 LOW
runtime JVMの実行に関するパフォーマンス情報です。 LOW
thread-system JVM内で生成されるスレッドに関するパフォーマンス情報です。 LOW
memory-pool JVM内でのメモリプールに関する情報パフォーマンス情報です。 HIGH
threadinfo JVM内で生成されるスレッドに関するパフォーマンス情報です。 HIGH

1.1.5. JMSサービス

JMSサービスでは次のようなパフォーマンス情報が採取できます。

表9.1.1.5-1
パフォーマンス情報
(WebOTX統計MBean)
説明 採取できるレベル
jms-physical-destination JMSサービスの物理的送信先ごとのパフォーマンス情報です。 ON
jms-service JMSサービスのパフォーマンス情報です。 ON

1.1.6. JDBCデータソース

JDBCデータソースでは次のようなパフォーマンス情報が採取できます。

表9.1.1.6-1
パフォーマンス情報
(WebOTX統計MBean)
説明 採取できるレベル
jdbc-datasource JDBCデータソースのパフォーマンス情報です。 LOW, HIGH

1.1.7. Transactionサービス

Transactionサービスでは次のようなパフォーマンス情報が採取できます。

表9.1.1.7-1
パフォーマンス情報
(WebOTX統計MBean)
説明 採取できるレベル
transaction-service Transactionサービスのパフォーマンス情報です。 LOW

1.1.8. Webコンテナ

Webコンテナでは次のようなパフォーマンス情報が採取できます。

表9.1.1.8-1
パフォーマンス情報
(WebOTX統計MBean)
説明 採取できるレベル
jsp JSPのパフォーマンス情報です。 HIGH
servlet サーブレットのパフォーマンス情報です。 HIGH
servlet-instance サーブレットのパフォーマンス情報です。 HIGH
session セッションのパフォーマンス情報です。 HIGH

1.1.9. 配備

表9.1.1.9-1
パフォーマンス情報
(WebOTX統計MBean)
説明 採取できるレベル
deployment 配備のパフォーマンス情報です。 HIGH

1.1.10. セキュリティ

表9.1.1.10-1
パフォーマンス情報
(WebOTX統計MBean)
説明 採取できるレベル
ejb-security EJBアプリケーションのセキュリティに関するパフォーマンス情報です。 ON
security セキュリティに関するパフォーマンス情報です。 ON
security-realm レルムに関するパフォーマンス情報です。 ON

1.1.11. コネクタサービス

レベルを変更した場合、WebOTX内部のモニタの登録/削除が実行されます。運用管理ツール上は何も変更されません。

1.1.12. WebServer

WebServerでは次のようなパフォーマンス情報が採取できます。

パフォーマンス情報
(WebOTX統計MBean)
説明 採取できるレベル
web-server WebOTX Webサーバのパフォーマンス情報です。 LOW, HIGH

1.2. モニタの種類

統計情報のモニタリングはMonitorMBeanにより行なわれます。MonitorMBeanは管理対象の属性に応じていくつかの種類があります。

1.2.1. CounterMonitor

Counter Monitorはインクリメントされる整数の属性値をモニタリングします。 granularityPeriod(GP)毎に対象となる数値(1ずつ変化している)のチェックを行い、 しきい値を超えている場合イベント発生となります。 この後、次の最初のしきい値にOffset分の値を加えたものを新しいしきい値とし、再度GP毎のチェックを行います。 例えばリクエスト数など単純に増加する属性などのモニタリングに用います。

CounterMonitor
図9.1.2.1-1

発生するイベントについて
表9.1.2.1-1
モジュール 説明
jmx.monitor.counter.threshold 取得した値がthreshold値を超えた

1.2.2. Gauge Monitor

小数点のある値 (Double, Floatなど)も含め、ゲージのように上下する属性値をモニタリングします。 granularityPeriod(GP)毎に対象となる数値(1ずつ変化している)のチェックを行い、 thresholdHighValueとthresholdLowValueの間を越えた (上限よりも上、もしくは下限より下の値になった)ときにイベントが発生します。 例えばキュー滞留数などの上限チェックに用います。

Gauge Monitor
図9.1.2.2-1

発生するイベントについて
表9.1.2.2-1
モジュール 説明
jmx.monitor.gauge.high 取得した値が上限値を超えた
jmx.monitor.gauge.low 取得した値が下限値を下回った

1.2.3. String Monitor

文字列が変更されたかをモニタリングします。GP毎に文字列のチェックを行い、2種類のチェックを行います (比較元の文字列-derived gaugeと同じor違う)図の例の場合は、その両方を行った場合の図です。 NotificationMatchはderived gaugeに設定される文字列と対象文字列を比較して、最初に一致したときにイベントが発生します。 NotificationDifferはderived gaugeに設定される文字列と対象文字列を比較して、最初に不一致を発見したときイベントが発生します。 つまり、MatchであれDifferであれ、一度イベントが発生された後にイベントは発生しません。 図のevent1回目〜2回目のGPや3回目〜4回目のevent間、4回目以降のeventの各GPでeventは発生しません。

String Monitor
図9.1.2.3-1

発生するイベントについて
表9.1.2.3-1
モジュール 説明
jmx.monitor.string.matches 比較元文字列と最初に一致した
jmx.monitor.string.differs 比較元文字列と最初に不一致になった

1.2.4. Alive Check Monitor

サービスのアライブチェックを行います、サービスが正常動作していない(アボート、ストールなど)場合、イベントが発生します。 動作的にはString Monitorと同じです。 GP毎にstatus属性値を取得し、アライブ状態として指定した状態値と最初に一致しない場合、イベントが発生します。 また、一定期間アライブ状態にならない場合もイベントが発生します。

Alive Check Monitor
図9.1.2.4-1

発生するイベントについて
表9.1.2.4-1
モジュール 説明
nec.webotx.monitor.alivecheck.not-alive 前回取得属性値が監視属性値で、今回取得した属性値が監視属性値と異なった
nec.webotx.monitor.alivecheck.not-running 監視属性値でない状態が、monitorRunningWaitPeriod続いている

1.3. WebOTX 統計 MBean

モニタリング情報は全て WebOTX 統計 MBean として登録されています。 このMBeanの属性を取得することにより統計情報を取得することができます。 WebOTX 統計 MBean はモニタリング設定を有効にすることにより登録されます。

WebOTX 統計 MBean の一覧については、 [ WebOTX統計MBean一覧 ] を参照してください。

1.3.1. WebOTX 統計 MBean の属性とオペレーション

WebOTX 統計 MBean はルートの統計MBeanを頂点にツリー構造を形成し、 統計情報を保有するモジュール単位で作成されます。 属性としてパフォーマンス情報を保持し、管理するパフォーマンス情報の一覧を取得するオペレーションを提供します。

属性

それぞれのMBeanが保持する属性はJ2EEのManagement仕様で規定されたStatsインタフェースの情報を保持します。 例えばJVMのWebOTX 統計 MBeanはJVMStatsインタフェースで規定されている属性を保持します。

オペレーション

WebOTX 統計 MBeanは必ずgetChildrenメソッドを提供しています。 それぞれのgetChildrenオペレーションを呼び出すことにより、親として管理している統計MBeanのObjectNameのリストを返却します。

2. モニタリング情報の採取

モニタリングを行なうための設定および情報の採取方法について説明します。

2.1. 統計情報の参照

統計情報の値(WebOTX統計MBeanの属性値)を参照するには以下の方法があります。

統合運用管理ツール/運用管理コンソールで参照

統合運用管理ツール/運用管理コンソールより参照する場合はドメインツリー上の[統計情報]ノードにWebOTX統計MBeanがツリーとして管理されています。 該当するノードを選択するとその統計情報の値を参照できます。 さらに、その統計情報を定期的に取得しグラフ表示したり、 ファイルに保存したりすることができます。

運用管理コマンドで参照

運用管理コマンドで参照する場合は、getコマンドを-monitorオプションをつけて参照することができます。

例1) 全ての統計情報の表示

otxadmin> get --monitor *

例2) アプリケーショングループ”apg”、プロセスグループ”pg”の現在のキューイング数の取得

otxadmin> get --monitor tpsystem.applicationGroups.apg.processGroups.pg.queueingCount-Current

別の方法として、monitorコマンドによって定期的に任意の統計情報を参照することができます。

例) エージェントプロセスの JVM に対する統計情報を 10 秒間隔で定期的に取得

otxadmin> monitor --type jvm --interval 10 server

2.2. モニタリングの設定

モジュールモニタリングレベルを設定することで、詳細な統計情報が採取できます。モジュールモニタリングレベルの種類については[WebOTXが提供するパフォーマンス情報]を参照してください。

統合運用管理ツール/運用管理コンソールから設定

統合運用管理ツール/運用管理コンソールから設定する手順は下記のとおりです。

  1. 左側のツリーを [アプリケーションサーバ] > [モニタリングサービス] > [モジュールモニタリングレベル] と辿ります。
  2. 変更したいモジュールのレベルを変更し、[更新]ボタンを押下します。

2.2.1. プロセスグループの統計情報のCLIName固定化

プロセスグループの統計情報は、既定ではCLINameや統合運用管理ツール/運用管理コンソールのツリーにプロセスIDが含まれます。

例) プロセスIDを含んだCLIName
tpsystem.applicationGroups.apg.processGroups.javaee.processes.1932.jvm.HeapFreeSize-Count=65840592

上記の「1932」の箇所がプロセスIDで、プロセスグループを再起動するたびに値が変わります。 監視ツールやスクリプトファイルなどから統計情報を利用する際、この「プロセスID」を固定化したい場合があります。 固定化するには下記の手順を実施してください。

統合運用管理ツール/運用管理コンソールから設定

統合運用管理ツール/運用管理コンソールから設定する手順は下記のとおりです。

  1. 左側のツリーを [アプリケーションサーバ] > [モニタリングサービス] と辿ります。
  2. 右側の画面の「固定値を使用する」にチェックを入れます。
運用管理コマンドから設定

運用管理コマンドで設定する場合は、下記のコマンドを実行します。

otxadmin> set server.monitoring-service.use-fixed-value=true

上記の設定を実施後、プロセスグループを再起動するとCLINameが固定化されます。

例) 固定値を含んだCLIName
tpsystem.applicationGroups.apg.processGroups.javaee.processes.1.jvm.HeapFreeSize-Count=65840592

2.3. モニタリングの利用例

モニタリング機能を使ったWebOTXの監視を利用することによりAPサーバの稼動状況を監視でき、 障害発生時にリアルタイム通知を発生させることが可能となります。 以下に有用なモニタリング使用例について説明します。

JVMヒープサイズのモニタリング

JVMヒープサイズを監視することにより、エージェントプロセスのメモリ不足を検出することができます。 メモリ不足により予期せぬエラーが発生することを予防できます。

JDBCデータソースのJDBCコネクション数のモニタリング

JDBCデータソースのJDBCコネクション数を監視することにより、 解放漏れによるDBコネクションの増加を検出することができます。 DBコネクション増加によりDBアクセスが出来なくなる事象を予防できます。

キューイング数のモニタリング

最大キューイング数の監視を行なうことにより、処理の滞留によるレスポンス遅延を検出することができます。 早期に検出することでレスポンス遅延がシステム全体に影響してしまうことを予防できます。

接続クライアント数のモニタリング

接続クライアント数の監視を行なうことにより、 ファイルディスクリプタなどのリソースの枯渇でクライアントからの接続ができなくなることを予防できます。 とくにリッチクライアント構成の場合、ゴーストセッションの増大によるセッション数の増加を検出できます。

分散管理サーバのモニタリング

2.3.1. JVMヒープサイズのモニタリング

JVMヒープサイズを監視することにより、エージェントプロセスのメモリ不足を検出することができます。 メモリ不足により予期せぬエラーが発生することを予防できます。

注意:モニタリング可能なプロセスはWebOTXのエージェントプロセスです。 Standardでプロセスグループから起動されるプロセスはモニタリングできません。

設定方法

JVMのWebOTX統計MBean(CLIName: server.jvm 統合運用管理ツール: [統計情報]-[ドメイン名]-[アプリケーションサーバ]-[JVM])の ヒープサイズ(JvmHeapSize)のカレント値の閾値上限を設定してモニタリングします。

2.3.2. JDBCデータソースのJDBCコネクション数のモニタリング

JDBCデータソースのJDBCコネクション数を監視することにより、解放漏れによるDBコネクションの増加を検出することができます。 DBコネクション増加によりDBアクセスが出来なくなる事象を予防できます。

設定方法

次のWebOTX統計MBeanの使用中コネクション数(NumConnUsed)のカレント値について、カウンタモニタで閾値上限を設定し、モニタリングします。

エージェントプロセスで動作する場合

CLIName: server.resources.jdbc-datasource.datasource-name

統合運用管理ツールからのツリー: [統計情報]-[ドメイン名]-[アプリケーションサーバ]-[リソース]- [jdbc-datasource.datasource-name]

Standard のプロセスグループで動作する場合

CLIName: tpsystem.applicationGroups.apg_name.processGroups.pg_name.processes.pid.resources.jdbc-datasource.datasource_name

統合運用管理ツールからのツリー: [統計情報]-[ドメイン名]- [TPシステム]-[アプリケーショングループ]- [apg_name] -[プロセスグループ]-[pg_name]-[processes]-[pid]-[resources]- [jdbc-datasource.datasource_name]

2.3.3. キューイング数のモニタリング

最大キューイング数の監視を行なうことにより、処理の滞留によるレスポンス遅延を検出することができます。 早期に検出することでレスポンス遅延がシステム全体に影響してしまうことを予防できます。

設定方法

キューイング数の設定はシステムレベルとプロセスグループレベルで行なうことが可能です。

システムレベルでの設定:

WebOTX統計MBean(CLIName: tpsystem.Queue統合運用管理ツール: [統計情報]-[TPシステム]-[キュー] )の最大キュー滞留数(MaxStayMsgNum)のカレント値の閾値上限を設定してモニタリングします。

プロセスグループレベルでの設定:

WebOTX統計MBean(CLIName: tpsystem.applicationGroups.apg_name.processGroups.pg_name統合運用管理ツール: [統計情報]-[ドメイン名]-[TPシステム]-[アプリケーショングループ]-[apg_name]-[プロセスグループ]-[pg_name])の キュー滞留数(queueingCount)のカレント値の閾値上限を設定してモニタリングします

2.3.4. 接続クライアント数のモニタリング

接続クライアント数の監視を行なうことにより、ファイルディスクリプタなどのリソースの枯渇でクライアントからの接続ができなくなることを予防できます。 とくにリッチクライアント構成の場合、ゴーストセッションの増大によるセッション数の増加を検出できます。

設定方法

クライアント情報のWebOTX統計MBean(CLIName: tpsystem.ClientSession統合運用管理ツール: [統計情報]-[ドメイン名]-[TPシステム]-[クライアントセッション])接続クライアント数(connectionNum)の カレント値の閾値上限を設定してモニタリングします。