jmx client

zabbixのnative jmx監視が使えない時はzabbix agentのUser Parameters
使えばいいじゃないかという事でコマンドラインで確認できそうな物をいくつか探した。

jmxproxy ※ tomcatのみ

tomcatに入ってるやつ。

curl -s -u<jmxusername>:<jmxpassword>
'http://<tomcat_hostname>/manager/jmxproxy/?qry=java.lang:type=Threading'

まあでもmanagerってあんまり使わない。
何も考えずにそのままtomcatを動かしてしまうと何でも出来ちゃうmanagerが認証無しで使えてしまい、とってもセキュリティ的に脆弱にな状態になってしまうので、managerもろとも削除してしまう事が多いんじゃないかなと思う。
この場合は/manager/jmxproxyだけ残しておけばいいのかも。

Command-line JMX Client

あのinternet archivesがjar形式で提供している。0.10.4は404になってしまうので0.10.3を使ってみたが充分機能した。tomcatのmanagerを削除しているところとかhadoopではこれ使ってる。
http://crawler.archive.org/cmdline-jmxclient/

/<pathTo>/java -jar /<pathTo>/cmdline-jmxclient.jar
<jmxusername>:<jmxpassword> <jvmhostname>:<jmxport>
java.lang:type=Threading PeakThreadCount

ObjectNameが分からない時は引数なしで実行すると一覧が見れて便利。GUIが使えるならjconsoleでも良い。

/usr/local/java/jdk1.6.0_lastest/bin/java -jar cmdline-jmxclient-0.10.3.jar
hage:fuga 192.168.0.1:18080