jvmguardエージェントの自動更新
JVMを監視対象としてセットアップするとき、監視対象JVMが実行されているマシンにjvmguardエージェントファイルをコピーします。jvmguardサーバーを更新すると、エージェントファイルがどのように更新されるかという疑問が生じます。
サーバーは更新中にシャットダウンされ、そのすべてのファイルを置き換えることができますが、監視対象JVMは監視エージェントを更新するためだけに終了することはできません。これが、jvmguardがサーバーインストールが更新されるたびにエージェント更新の自動デプロイを実行する理由です。
サーバーの更新
Section titled “サーバーの更新”グローバル設定で同じメジャーシリーズ内のアップデートを確認でき、自動アップデートチェックが有効になっている場合、アップデート通知が受信トレイメッセージとして送信されます。
jvmguardサーバーを更新すると、すべての監視エージェントがコレクターから切断されます。ただし、エージェントはデータの記録を継続し、コレクターが再び利用可能になったときにそれを送信します。切断後、エージェントはjvmguardコレクターへの再接続を徐々に低い頻度で試行します。データは、その量がメモリオーバーヘッドに関して安全でないと見なされる制限を超えた場合にのみ破棄されます。
サーバー更新後、jvmguardエージェントは古いバージョンから変更されている場合があります。その場合、「VM」ビューのVM名の横に警告アイコンが表示されます。jvmguardサーバーは以前のすべてのバージョンのエージェントで動作し続けますが、古いエージェントで監視されているJVMでは新しい機能が利用できない場合があります。
監視対象JVMが将来のある時点で再起動されると、新しいエージェントが自動的に使用されます。新しいエージェントファイルをリモートマシンに転送する必要はありません。
エージェント更新の仕組み
Section titled “エージェント更新の仕組み”古いjvmguardエージェントで監視されているJVMに接続すると、jvmguardサーバーは新しいエージェントファイルをリモートマシンに転送します。元のエージェントファイルは使用中で書き込み保護されている可能性があるため、上書きできません。新しいエージェントは$HOME/.jvmguard/agentディレクトリに保存されます。そのディレクトリには、監視対象VMごとのサブディレクトリがあり、それらが転送されたエージェントを含むディレクトリを保持しています。
監視対象JVMが起動されると、-javaagent JVMオプションで指定したjvmguard.jar Javaエージェントがロードされます。そのJavaエージェントは、$HOME/.jvmguard/agentを調べて監視対象JVMの最新のエージェントファイルを選択することで、監視エージェントの実際の実装をブートストラップします。エージェントが転送されていない場合、抽出されたエージェントアーカイブのlibディレクトリ内の実装が使用されます。
ブートストラップコードを含むjvmguard.jarファイルは更新されませんが、起動時に監視機能自体に影響しない限定的な機能を実行します。新しいリリースでJARファイルが変更されても、リモートマシンでそれを置き換える必要があることを意味しません。