nekop's blog

OpenShift / JBoss / WildFly / Infinispanの中の人 http://twitter.com/nekop

JDR - JBoss Diagnostic Reporter

JBoss Advent Calendar 2012の16日目のエントリです。

JBoss AS7にはJDR(JBoss Diagnostic Reporter)という機能があります。$JBOSS_HOME/bin/jdr.shという実行シェルが用意されていて、実行すると以下のようなzipファイルが生成されます。

$ ./jdr.sh 
Initializing JBoss Diagnostic Reporter...
Management username: xxxxx
Management password: 
JDR started: Tue Dec 18 16:26:47 JST 2012
JDR ended: Tue Dec 18 16:26:59 JST 2012
JDR location: /home/nekop/usr/local/jboss-eap-6.0.1.ER4.2/bin/sosreport-localhost.localdomain-20121218162653.zip

$ ls -la sosreport-*
-rw-rw-r--. 1 nekop nekop 441919 Dec 18 16:26 sosreport-localhost.localdomain-20121218162653.zip
-rw-rw-r--. 1 nekop nekop     33 Dec 18 16:26 sosreport-localhost.localdomain-20121218162653.zip.md5

内容には以下のようなものが含まれます。JBoss AS7が起動していなくても動作しますが、起動していない場合はランタイム情報は取得されません。

  • standaloneとdomainのconfiguration以下
  • standaloneとdomainのlog/*.log
  • modules配下のmodule.xml
  • ランタイムの情報
    • 設定のダンプ
    • サービスのダンプ
    • スレッドダンプ
  • $JBOSS_HOME以下のファイル構成
  • $JBOSS_HOME以下のjarファイルのチェックサムマニフェスト情報

JDRはトラブルが起きたときにとりあえず叩いとく、という機能です。設定ファイルやログのスナップショットを取得、つまり現場の保全を行ってくれるのです。商用サポートでも利用されており、このファイルをサポートに渡すとスムーズにサポートを受けることができます。

現行のAS 7.1 / EAP 6.0ではJDRの実装はJythonを利用しているのですが、AS 7.2 / EAP 6.1からはPure Javaの実装に置き換えられます。