JBoss Data Gridを監視してみよう
JBoss CLI(Command Line I/F)
2つめの方法はJBoss CLIです。JDGには管理I/FとしてCUIベースでのコマンド操作をすることが出来ますが、この機能を使ってJDGの属性の取得や操作を行う方式になります。
なお、本機能は最新のJDG6.1から提供された機能であり、現時点ではTech Preview扱いとなっています。そのためWindows環境ではうまく動きませんのでご了承ください。
以下のコマンドで本機能を起動することが出来ます。
$ cd $JDG_HOME/bin $ ./jdg-cli.sh –-connect=remoting://localhost:9999/local/default
--connectパラメータでCLIで操作するJDGのノードやキャッシュの指定を行います。上記の例では、”remoting” プロトコルを利用して ”localhost” のノードへつなぎ、”local” というキャッシュコンテナにある ”default” というキャッシュに対する操作として、接続を行っています。
接続すると以下のコンソール表示になります。
[remoting://localhost:9999/local/default]>
helpコマンドを利用することでどのようなコマンドが用意されているかを見ることが出来ます。エントリの格納や確認するコマンド等、たくさんのものが用意されています。
[remoting://localhost:9999/local/default]> help abort begin cache clear ・・・<中略>・・・ stats upgrade version [remoting://localhost:9999/local/default]>
各コマンドが何か分からない場合には、help で各コマンドの機能概要を確認することも出来ます。下記では例としてstatsコマンドの確認を行っています。
[remoting://localhost:9999/local/default]> help stats SYNOPSIS stats [--container | cachename] DESCRIPTION Shows statistics about the specified cache or about the active cache manager ARGUMENTS cachename (optional) the name of the cache for which information will be printed. If omitted, information about the current cache will be shown. If the --container option is specified, then information about the current container will be shown instead. [remoting://localhost:9999/local/default]>
例えば、上記のstatsコマンドを利用すると、以下のようにJDGの属性を取得することが出来ます。
[remoting://localhost:9999/local/default]> stats Statistics: { evictions: 0 averageReadTime: 0 stores: 7 hits: 7 removeMisses: 0 hitRatio: 0.875 removeHits: 0 statisticsEnabled: true numberOfEntries: 4 timeSinceReset: 994 misses: 1 readWriteRatio: 1.1428571428571428 elapsedTime: 994 averageWriteTime: 0 } LockManager: { numberOfLocksAvailable: 0 concurrencyLevel: 500 numberOfLocksHeld: 0 } [remoting://localhost:9999/local/default]>
本機能では、キャッシュに対する包括的なオペレーションが出来るようになっており、状態取得だけではなくキャッシュ操作に向いています。そのため、テスト用のデータを投入したり、取得して確認するような処理を、プログラムを書かずに簡単に実現できます。
JBoss Operations Network for JDG
最後がJBoss Operations Network(通称JON)を使った方法になります。こちらは各JDGインスタンスに監視用のエージェントを組み込み、様々なメトリックを一定の間隔で収集、これらの情報をブラウザからグラフィカルに監視することが出来ます。
各メトリックのその時点での数値を静的に見るだけでなく、グラフとして一定時間内の傾向を確認することも出来ます。
この方法では、監視だけでなくインスタンスの起動/停止という管理に関してもブラウザから行うことが出来るため、実運用環境での監視/管理への利用に最適な方式と言えます。
また、JONではJDGだけでなく他のJBoss製品を含め、多数のノードを一元的に監視/管理できるので、EAPやJDGが混在している100台規模のインスタンスをまとめて監視/管理することも出来ます。これにより、さらに運用効率を上げることも可能でしょう。
なお、JONの構築には監視対象となるJDGだけではなく、JON自体やJONが利用するDBのインストールと構築も必要になるため、本記事では行いません。
いかがでしたでしょうか? これで、JDGのテストや運用時にどのような機能を使って監視や管理が行えるか、ご覧頂けたかと思います。実際の運用では、今回ご紹介した方式の延長として、JMX MBeanを使ってメトリクスを取るようなスクリプトを外部で書いたりするようなこともあります。
次回は、JDGの使い方に戻って、ライブラリモードというこれまでご紹介した以外の方法での利用について解説したいと思います。ご期待ください。