English | Japanese


虚無僧とは何ですか?

虚無僧はシンプルな 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が使えます。

使い方

  1. 虚無僧の設定
  2. setEnv.sh (Windows では setEnv.cmd) を編集して JAVA_HOME 環境変数を適切に設定してください。

  3. アプリケーションの設定
    • スタンドアロンアプリケーション向けの設定
    • スタンドアロンアプリケーションでは以下のシステムプロパティを起動クラス前に記述してください。
      -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.authenticate=false

    • JBoss の設定
    • 以下の例に習って run.sh/cmd に数行追加し、JBoss の MBean を JMX Remote で監視できるようにしてください。
      例) 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 $ ###
    • WebLogic Server の設定
    • WebLogic Server を利用する場合、サーバサイドに特別な設定は必要ありませんが、t3 プロトコルを使うために weblogic.jar を虚無僧の lib ディレクトリにコピーする必要があります。

    • Tomcat の設定
    • Tomcat では startup.sh (Windows の場合は startup.bat) に一行書き加えてください。
      例) 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 ファイルの用意
  5. 以下の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

  6. MBeanDoc の生成
  7. MBeanDoc とは JMX サービスにデプロイされている全ての MBean インスタンスの属性とその値、メソッドをダンプしたもので JavaDoc によく似ています。
    MBeanDoc を生成するには mbeandoc.cmd/sh を実行します。
    引数には設定 properties ファイルを指定します。
    MBeanDoc は KOMUSO_HOME/mbeandump/ 以下に作成されます。
    生成が完了すると Windows, Macintosh では自動的にブラウザで開かれます。
    MBeanDoc のサンプルはこちらからご覧になれます。

    使い方: mbeandoc.cmd/sh [YOUR_KOMUSO.properties]

    スクリーンショット1 MBeanDoc の書き出し

  8. MBean 属性の選択
  9. MBeanDoc にはタブが2つあり、 "MBeanDoc" のタブで監視したい MBean 属性の選択を、 "設定" タブで設定の確認を行えます。
    "設定" タブでは CSV 形式で出力する際の表示ラベル名を設定することもできます。
    "設定" タブの "生成された設定" 欄に設定が出来上がりますが、properties ファイルに自動的には反映されません。
    必要な MBean 属性を選択し終わったら手動でコピーして先に用意した properties ファイルの中身を上書きする形で貼り付けてください。


    スクリーンショット2 MBeanDoc で監視する属性を選択

    スクリーンショット3 設定確認画面
  10. モニタリング
  11. これで準備は完了です。あとは komuso.cmd/sh を実行すれば監視が行えます。

    使い方: komuso.cmd/sh [YOUR_KOMUSO.properties ...]

    スクリーンショット4 監視中の様子
    虚無僧は 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

メーリングリスト

虚無僧 に関する質問、バグレポート、リクエストなどありましたら以下のメーリングリストにお気軽にどうぞ。
Google グループ
Komuso ML Jに参加
メール アドレス:
このグループにアクセス
バグ、ロードマップなどについては Jira に登録してあります。

Atlassian JIRA

ライセンス

虚無僧 2.0 は BSD ライセンスに基づいてリリースされています。
虚無僧 2.0 にバンドルされている Apache VelocityApache Software License に基づいています。
虚無僧 2.0 にバンドルされている LogbackGNU 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 バッジから寄付していただくことも可能です。

変更履歴