このページでは、JVM クラッシュガードを使用して JVM クラッシュを表示およびモニタする方法について説明します。JVMがクラッシュした時は、できるだけ早く知る必要があります。JVM クラッシュはアプリケーションにおける深刻なランタイムの問題の兆候である恐れがあり、多くの場合、ただちに修復作業を行う必要があります。

JVM クラッシュ情報の表示

JVM クラッシュが発生すると、コントローラ UI 内に対応するイベントタイプが生成されます。  

クラッシュを分析してトラブルシューティングするには:

  1. [Events] パネルで、対象となる JVM クラッシュをダブルクリックします。  
  2. JVM クラッシュイベントに関連するログを確認します(ローカルログフォルダは JVM の種類および設定方法により決定。詳細については、該当するJVMのドキュメントを参照)。

[JVM Crash] パネルには、クラッシュの結果として実行されたアクションに関する情報も表示されます。これは、JVM クラッシュイベントによりトリガーされるポリシーを作成したときに指定したアクションです。詳細については、ポリシーを参照してください。

JVM クラッシュイベントの詳細には次の情報が含まれます。

  • タイムスタンプ
  • クラッシュの原因
  • ホスト名/IP アドレス
  • プロセス ID(Process ID)
  • アプリケーション名
  • ノード名
  • ティア名

[JVM Crash Details] タブにある [Crash Reason] 詳細フィールドには、クラッシュの根本原因が判明している場合、その詳細が明示されます。たとえば、フィールドに java.lang.OutOfMemoryError や Segmentation Fault が含まれている可能性があります。 

JVMクラッシュの発見と表示を容易にするため、JVMクラッシュガードは以下をサポートします:

  • Hotspot JVMエラーログ分析
  • IBM JVM システムのダンプログ分析
  • Jrockit JVMエラーログ分析

JVM クラッシュのモニタリングの有効化

JVM クラッシュをモニタリングする前に、次の作業が必要です。

  • JVM クラッシュをモニタリングするマシンにマシンエージェントをインストールして有効にします。JVM クラッシュガードは マシンエージェント とともに機能して、JVM クラッシュイベントが発生したときにポリシーをトリガーします。
  • マシンエージェントが必要な権限で実行されていることを確認します。
    • Windowsでは、マシンエージェントを管理者ルートモードで実行する必要があります。
    • Linux では、JVM クラッシュガードにより、マシンエージェントユーザが /proc/* の全プロセスを読み取れることが義務付けられます。これは、ルートユーザまたはこの権限を持つ他のユーザになる可能性があります。
  • Enable the JVMクラッシュガードを有効にします(デフォルトでは無効です)。extensions/CrashGuard/conf/crashGuardConfig.yml に移動して crashGuardConfig.yml ファイルを開きます。enabledtrue に設定します。

要件を確認したら、次のステップに従ってJVMクラッシュイベントのポリシーを作成します。

  1. 左側のナビゲーションメニューから、[Alert & Respond] > [Policies ] > [Create a Policy] をクリックします。 
    Create Policy



  2. [Other Events] セクションで、[Server Crashes] オプションを開き、[JVM Crash] をクリックします。JVM クラッシュイベントがポリシーを発動するトリガーになります。 
  3. 通常どおり続行してポリシーを作成します。「ポリシー」を参照してください。 

インストゥルメント化されていない JVM クラッシュが前回のクラッシュから 1 分未満で発生した場合、マシンエージェントでは報告されません。環境によっては、JVMがクラッシュし、再起動するものの1分以内に再度クラッシュするということがあります。このようにクラッシュと再起動が繰り返される場合、エージェントは初回のJVMクラッシュのみを報告します。