jboss監視

はじめまして
jboss監視についてお聞きします

構成:zabbix2.2
:jboss6

zabbixでzabbix java gatewayを監視対象サーバにいれてjbossのHeapMemoryの使用率などを監視したいです
しかし、zabbix2.2のJMX監視で参照URLに記載のあるオプションを入力するとエラーとなり起動しません。
設定は/usr/local/jboss/bin/standalone.confに記載しています

エラー内容は、Log.Managerの設定がないといったものです

JAVA_OPS=$JAVA_OPS -Dcom.sun.management.jmxremote \
JAVA_OPS=$JAVA_OPS -Dcom.sun.management.jmxremote.port=12345 \
JAVA_OPS=$JAVA_OPS -Dcom.sun.management.jmxremote.authenticate=false \
JAVA_OPS=$JAVA_OPS -Dcom.sun.management.jmxremote.ssl=false \
こんな感じにいれました。

どうしたらよいかご教示ください。足りない情報あれば取得いたします

参照URL
https://www.zabbix.com/documentation/2.2/jp/manual/config/items/itemtype...

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

Zabbixの質問ではなくJBossの質問ではありませんか?

利用しようとされているJBossの詳細なバージョンと、JDKもしくは
JREとして何のどのバージョンを利用しようとされているのかをお
教えください。

あと、JBossを起動できないときの詳細なログもご提示ください。

ついでになりますが、Zabbix Java Gatewayは監視対象ごとにイン
ストールする必要はありません。
Zabbixサーバに対して1台だけ用意すれば利用できます。
負荷が低いのであれば、Zabbixサーバと同じサーバにインストール
して稼働させることもできます。

ユーザー TNK の写真

追加です。

JBoss 6以降だとJMXのエンドポイントが変更されていたかもしれま
せん。
そうすると、現時点のZabbixでは、エンドポイントが固定であった
と思うので、JBoss 6でJMXを有効にして起動できるようになったと
しても、Zabbix Java Gatewayを利用したJMX監視はできないと思
われます。

JMXのエンドポイントを設定可能にする改善要望は出ているので、
今後のリリースで対応されるかもしれません。

ZBXNEXT-1274
Configurable JMX Endpoint
https://support.zabbix.com/browse/ZBXNEXT-1274

ユーザー KAZ の写真

kuroetekuさん

TNKさんが書いているとおり、JBossの監視難しいかも…
確か2.2系ではjavaGatewayのソース修正して対応していたはず…
ここ参考になりますか?
http://www.denniskanbier.nl/blog/monitoring/jboss-eap-6-monitoring-using...

ただ、メモリ関係は今のjavagatewayでは取れない項目もあるんですよね…
※:JMXからの返却データがクラスの場合、現在のjavagatewayでは対応してない

う~ん、javaGatewayを使わないJMX監視方法もありますが…
jolokiaとUserParameter使うんですけどね…

ユーザー kuroeteku の写真

こんばんわ
ご連絡遅くなり申し訳ありません

明日、会社にいきエラー内容を調査いたします。
できないなどという情報をいただきありがとうございます。現在、できるかできないかを調査している段階なので
できないとわかるまで評価をしたいといったところです。
まずはjbossが起動できるかを確認したいです

ユーザー kuroeteku の写真

遅くなり申し訳ありません

使用しているJBOSSのオプションは以下です
JAVA_OPTS="$JAVA_OPTS -XX:SurvivorRatio=8"
JAVA_OPTS="$JAVA_OPTS -verbosegc"
JAVA_OPTS="$JAVA_OPTS -Xloggc:/usr/local/jboss/${INSTANCE_NAME}/log/gc_${INSTANCE_NAME}.log"
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails"
JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDateStamps"
JAVA_OPTS="$JAVA_OPTS -XX:+PrintTenuringDistribution"
JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError"
JAVA_OPTS="$JAVA_OPTS -XX:MaxTenuringThreshold=15"
JAVA_OPTS="$JAVA_OPTS -XX:+UseConcMarkSweepGC"
JAVA_OPTS="$JAVA_OPTS -XX:+CMSParallelRemarkEnabled"
JAVA_OPTS="$JAVA_OPTS -XX:CMSInitiatingOccupancyFraction=80"
JAVA_OPTS="$JAVA_OPTS -XX:+UseCMSInitiatingOccupancyOnly"
JAVA_OPTS="$JAVA_OPTS -XX:+CMSClassUnloadingEnabled"
JAVA_OPTS="$JAVA_OPTS -XX:+ExplicitGCInvokesConcurrent"
JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC"
JAVA_OPTS="$JAVA_OPTS -Djgroups.bind_addr=${JGROUPS_BIND_ADDR}"
JAVA_OPTS="$JAVA_OPTS -Djboss.partition.name=${JGROUPS_PARTITION_NAME}"
JAVA_OPTS="$JAVA_OPTS -Dorg.apache.coyote.ajp.DEFAULT_CONNECTION_TIMEOUT=600000"
JAVA_OPTS="$JAVA_OPTS -Dorg.apache.coyote.http11.DEFAULT_CONNECTION_TIMEOUT=120000"
JAVA_OPTS="$JAVA_OPTS -XX:HeapDumpPath=/usr/local/jboss/tsjb_q01/log/"
以下を追加して起動するとエラーとなります
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote=true"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=12345"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"

エラー内容
java.lang.RuntimeException: JBAS014670: モジュール org.jboss.as.logging の初期化に失敗しました
Caused by: java.util.concurrent.ExecutionException: java.lang.IllegalStateException: JBAS011592: ロギングシステムではログマネージャーが org.jboss.logmanager.LogManager である必要があります。サブシステムは初期化されず、使用できません。JBoss Log Manager を使用するには、システムプロパティー "java.util.logging.manager" を追加し、"org.jboss.logmanager.LogManager" に設定しなければなりません。
at java.util.concurrent.FutureTask.report(FutureTask.java:122)
at java.util.concurrent.FutureTask.get(FutureTask.java:188)
at org.jboss.as.controller.extension.ParallelExtensionAddHandler$1.execute(ParallelExtensionAddHandler.java:91)
... 10 more
Caused by: java.lang.IllegalStateException: JBAS011592: ロギングシステムではログマネージャーが org.jboss.logmanager.LogManager である必要があります。サブシ ステムは初期化されず、使用できません。JBoss Log Manager を使用するには、システムプロパティー "java.util.logging.manager" を追加し、"org.jboss.logmanager.LogManager" に設定しなければなりません。

zabbixとはまったく関係なくなってきましたね。すいません。

ユーザー TNK の写真

調べるための大前提となりますので、繰り返し書かせて頂きます。

利用しようとされているJBossの詳細なバージョンと、JDKもしくは
JREとして何のどのバージョンを利用しようとされているのかをお
教えください。

ユーザー KAZ の写真

kuroetekuさん

> zabbixとはまったく関係なくなってきましたね。すいません。
JBossの設定の問題ですね。(笑)

ネットでググってみました。
↓これ足りなくありません?
JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.jboss.logmanager.LogManager"

ここら辺参考になりますか?
http://d.hatena.ne.jp/Kazuhira/20140607/1402162575

ユーザー TNK の写真

あと、バージョンによっては、bootclasspathの追加も必要な場合
があるようです。

-Xbootclasspath/p:$JBOSS_HOME/modules/org/jboss/logmanager/main/jboss-logmanager-1.x.x.jar