まずJMXとは?
「Java Management Extensions (JMX) は、Java アプリケーションをモニタおよび管理するための仕様です。 」(oracleドキュメントより)
http://otndnld.oracle.co.jp/document/products/wls/docs103/jmxinst/understanding.html
zabbix(別記事で記載中。監視アプリケーション)はJMXを監視することが出来ます。それと連動させれば100人力であること間違いないでしょう。
今回はtomcatで試してみます。既にインストール済みと仮定します。
tomcatのインストールはhttp://magonote-tools.com/archives/354を参照下さい。
さて、JMX起動用のオプションをtomcat起動時に渡します。
まずは起動オプションを確認しましょう。
1 2 3 4 5 6 7 8 9 10 11 |
-Dcom.sun.management.jmxremote=true #jmxremoteをONにする。これはtrueにする。 -Dcom.sun.management.jmxremote.port=8000 #jmxのポートを指定する。空いているポートを指定します。 -Dcom.sun.management.jmxremote.authenticate=false #認証するかしないかです。trueにした場合は認証用の設定が別途必要です。 -Dcom.sun.management.jmxremote.ssl=false #SSLを有効にするかどうかです。 |
CATALINA_OPTSに上記を設定すればOKです。
どこでも良いのですが今回は/etc/tomcat6/tomcat6.confに記載してみました。
1 2 3 4 5 6 |
vi /etc/tomcat6/tomcat6.conf #下記を追加 CATALINA_OPTS="-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=8000 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false" #Tomcatをリスタートします。 /etc/init.d/tomcat6 restart |
さてこれでポート8000でjmx監視が開始されたはずです!
telnet localhost 8000
などとして、8000ポートでTCPコネクションを待っているか確認してみましょう。
実際にJMXが正しく動作するかはcmdline-jmxclientを利用すると便利です。
http://crawler.archive.org/cmdline-jmxclient/
ダウンロードページはこちら。なぜか0.10.4の方はリンク切れでした。
http://crawler.archive.org/cmdline-jmxclient/downloads.html
1 2 3 4 5 |
#ダウンロードして wget http://crawler.archive.org/cmdline-jmxclient/cmdline-jmxclient-0.10.3.jar #javaコマンドで実行します。例えば java -jar cmdline-jmxclient-0.10.3.jar - localhost:8000 |
下記のような文字列が出ればJMXは正常に動いています。
1 2 3 4 5 6 7 8 |
Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/sample,j2eeType=Servlet,name=HelloServlet Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/manager,j2eeType=Servlet,name=HTMLManager Catalina:J2EEApplication=none,J2EEServer=none,WebModule=//localhost/examples,j2eeType=Servlet,name=servletToJsp Catalina:J2EEApplication=none,J2EEServer=none,j2eeType=WebModule,name=//localhost/manager Catalina:host=localhost,path=/manager,type=Manager Catalina:port=8080,type=Connector Catalina:host=localhost,path=/manager,resourcetype=Context,type=NamingResources Catalina:name=HttpRequest3,type=RequestProcessor,worker=http-8080 java.lang:name=PS MarkSweep,type=GarbageCollector |
本日は以上です。