虚無僧とは何ですか?
虚無僧はシンプルな MBean サーバモニタリングツールです。
虚無僧を使えば JBoss, WebLogic Server, Tomcat, Oracle Application Server and WebSphere など、あらゆる MBean ベースのサーバをローカルから、またはリモートから監視することができます。
虚無僧のユニークな点は本体がたった 150 行というそのシンプルさにあります。デフォルトの動作は任意の MBean 属性の値を定期的に CSV 形式で書き出すだけですが、ソースコードを理解するのもカスタマイズするのも非常に簡単です。
システム要件
OS: Java をサポートする Windows または Unix 系 OS
JVM: Java5 以降
アプリケーションサーバ: JMX Remote API(JSR160) をサポートするアプリケーションサーバ
JBoss はバージョン 4.0.2 以降、WebLogic Server は バージョン 9.0 以降が対応しています。
WebLogic Server 8.1 までのバージョンでは虚無僧1.0が使えます。
使い方
- 虚無僧の設定
- アプリケーションの設定
- スタンドアロンアプリケーション向けの設定 スタンドアロンアプリケーションでは以下のシステムプロパティを起動クラス前に記述してください。
- JBoss の設定 以下の例に習って run.sh/cmd に数行追加し、JBoss の MBean を JMX Remote で監視できるようにしてください。
- WebLogic Server の設定 WebLogic Server を利用する場合、サーバサイドに特別な設定は必要ありませんが、t3 プロトコルを使うために weblogic.jar を虚無僧の lib ディレクトリにコピーする必要があります。
- Tomcat の設定 Tomcat では startup.sh (Windows の場合は startup.bat) に一行書き加えてください。
- properties ファイルの用意
- MBeanDoc の生成
- MBean 属性の選択
- モニタリング
setEnv.sh (Windows では setEnv.cmd) を編集して JAVA_HOME 環境変数を適切に設定してください。
-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.authenticate=false
例) Windows
@echo off rem ------------------------------------------------------------------------- rem JBoss Bootstrap Script for Win32 rem ------------------------------------------------------------------------- set JAVA_OPTS="%JAVA_OPTS% -Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl" set JAVA_OPTS="%JAVA_OPTS% -Djboss.platform.mbeanserver" set JAVA_OPTS="%JAVA_OPTS% -Dcom.sun.management.jmxremote" set JAVA_OPTS="%JAVA_OPTS% -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.authenticate=false" rem $Id: run.bat 64751 2007-08-21 21:00:53Z dbhole $例) Unix
#!/bin/sh ### ====================================================================== ### ## ## ## JBoss Bootstrap Script ## ## ## ### ====================================================================== ### JAVA_OPTS="$JAVA_OPTS -Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl" JAVA_OPTS="$JAVA_OPTS -Djboss.platform.mbeanserver" JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote" JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.authenticate=false" ### $Id: run.sh 70962 2008-03-18 20:38:16Z dbhole $ ###
例) Windows
@echo off if "%OS%" == "Windows_NT" setlocal rem --------------------------------------------------------------------------- rem Start script for the CATALINA Server rem rem $Id: startup.bat 302918 2004-05-27 18:25:11Z yoavs $ rem --------------------------------------------------------------------------- set CATALINA_OPTS="-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.authenticate=false"例) Unix
#!/bin/sh # ----------------------------------------------------------------------------- # Start Script for the CATALINA Server # # $Id: startup.sh 385888 2006-03-14 21:04:40Z keith $ # ----------------------------------------------------------------------------- export CATALINA_OPTS="-Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.authenticate=false"
以下の4つのパラメータが設定された properties ファイルを、それぞれのパラメータを一行に、折り返さずに記述し、テキスト形式で保存します。
ファイル名はなんでも構いませんが、".properties" で終わらすのが一般的です。
デフォルトで Tomcat や スタンドアロンの Java アプリケーション用に "komuso.properties", WebLogic 用に "komuso-wls.properties" が用意されています。
jmx.remote.protocol.provider.pkgs=JMXリモートプロトコルプロバイダパッケージ名 JMXServiceURL=JMXサービスURL java.naming.security.principal=接続ユーザ名 java.naming.security.credentials=接続パスワード例) Java アプリケーション上で JMX サービスがポート8999で起動しており、認証が無効に設定されている場合
jmx.remote.protocol.provider.pkgs= JMXServiceURL=service:jmx:rmi:///jndi/rmi://localhost:8999/jmxrmi java.naming.security.principal= java.naming.security.credentials=例) WebLogic Server がポート7001をリスンしており、ユーザID/パスワードが weblogic/gumby1234 の場合
jmx.remote.protocol.provider.pkgs=weblogic.management.remote JMXServiceURL=service:jmx:t3://localhost:7001/jndi/weblogic.management.mbeanservers.domainruntime java.naming.security.principal=weblogic java.naming.security.credentials=gumby1234
MBeanDoc とは JMX サービスにデプロイされている全ての MBean インスタンスの属性とその値、メソッドをダンプしたもので JavaDoc によく似ています。
MBeanDoc を生成するには mbeandoc.cmd/sh を実行します。
引数には設定 properties ファイルを指定します。
MBeanDoc は KOMUSO_HOME/mbeandump/ 以下に作成されます。
生成が完了すると Windows, Macintosh では自動的にブラウザで開かれます。
MBeanDoc のサンプルはこちらからご覧になれます。
使い方: mbeandoc.cmd/sh [YOUR_KOMUSO.properties]
MBeanDoc にはタブが2つあり、 "MBeanDoc" のタブで監視したい MBean 属性の選択を、 "設定" タブで設定の確認を行えます。
"設定" タブでは CSV 形式で出力する際の表示ラベル名を設定することもできます。
"設定" タブの "生成された設定" 欄に設定が出来上がりますが、properties ファイルに自動的には反映されません。
必要な MBean 属性を選択し終わったら手動でコピーして先に用意した properties ファイルの中身を上書きする形で貼り付けてください。
これで準備は完了です。あとは komuso.cmd/sh を実行すれば監視が行えます。
使い方: komuso.cmd/sh [YOUR_KOMUSO.properties ...]虚無僧は JMX サービスから取得した値を CSV 形式で標準出力とファイル(komuso.csv)に同時に書き出します。
また、JMX サービスへの接続状況、エラーメッセージなどは別のファイル(komuso_status.log)に記録します。
デフォルトでは夜中0時にロールオーバーが行われ、最新10日分のログが保存される設定になっています。
全ての出力は Logback を通して行われており、 "logback.xml" を編集することで出力フォーマット、ローテーションポリシーなどを変更することができます。
出力方式の設定について詳しくは Logback のドキュメントをご覧ください。
ダウンロード
komuso2.0.3.zip
komuso2.0.3.tar.gz
ソースコード
アーカイブにはソースコードが含まれています。
プロジェクトのリポジトリには以下の URL からアクセスできます。
http://yusuke.homeip.net/fisheye/browse/svn/komuso/trunk
または以下のように subversion クライアントを使って最新のソースコードをチェックアウトすることもできます。
svn checkout http://yusuke.homeip.net/svn/komuso/trunk komuso
メーリングリスト
虚無僧 に関する質問、バグレポート、リクエストなどありましたら以下のメーリングリストにお気軽にどうぞ。
Komuso ML Jに参加 |
このグループにアクセス |
ライセンス
虚無僧 2.0 は BSD ライセンスに基づいてリリースされています。虚無僧 2.0 にバンドルされている Apache Velocity は Apache Software License に基づいています。
虚無僧 2.0 にバンドルされている Logback は GNU Lesser General Public License に基づいています。
Komuso 2.0 is released under the BSD license.
Komuso 2.0 bundles Apache Velocity which is released under the Apache Software License .
Komuso 2.0 bundles Logback which is released under GNU Lesser General Public License.
Copyright (c) 2007-2008, Yusuke Yamamoto All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the Yusuke Yamamoto nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY Yusuke Yamamoto ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL Yusuke Yamamoto BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
価格
虚無僧2.0 はどなたでも商標、非商用にかかわらず無償でご利用いただけます。もし虚無僧があなたの生活を豊かにしてくれると感じたならば、以下の PayPal バッジから寄付していただくことも可能です。
変更履歴
- バージョン 2.0.3
- [KMS-5] - MBeanDoc が"Configuration file not found :/komuso2.0.2/komuso2.properties"というエラーで起動に失敗する
- [KMS-6] - MBeanDoc が NullPointerException で JBoss の MBean のダンプに失敗する
- バージョン 2.0.2 MBeanDoc.cmd/sh がアーカイブに含まれていなかったのを修正。
- バージョン 2.0.1 MBeanDoc で ObjectName が一つしかダンプされていなかったのを修正。
- バージョン 2.0.0 初期バージョンリリース