jvmguard 에이전트 자동 업데이트
모니터링할 JVM을 설정할 때 jvmguard 에이전트 파일을 모니터링되는 JVM이 실행 중인 머신으로 복사합니다. jvmguard 서버를 업데이트할 때 에이전트 파일이 어떻게 업데이트되는지가 문제가 됩니다.
서버는 업데이트하는 동안 종료되어 모든 파일을 교체할 수 있지만, 모니터링되는 JVM은 모니터링 에이전트를 업데이트하기 위해서만 종료할 수는 없습니다. 이것이 jvmguard가 서버 설치가 업데이트될 때마다 에이전트 업데이트의 자동 배포를 수행하는 이유입니다.
서버 업데이트
섹션 제목: “서버 업데이트”전역 설정에서 같은 주 시리즈 내의 업데이트를 확인할 수 있으며, 자동 업데이트 확인이 활성화된 경우 업데이트 알림이 수신함 메시지로 전송됩니다.
jvmguard 서버를 업데이트하면 모든 모니터링 에이전트가 수집기에서 연결 해제됩니다. 그러나 에이전트는 계속 데이터를 기록하고 수집기를 다시 사용할 수 있게 되면 데이터를 전송합니다. 연결이 끊어진 후 에이전트는 점점 낮아지는 빈도로 jvmguard 수집기에 주기적으로 재연결을 시도합니다. 데이터는 메모리 오버헤드와 관련하여 안전하지 않다고 간주되는 한계를 초과하는 경우에만 삭제됩니다.
서버 업데이트 후에는 jvmguard 에이전트가 이전 버전에 비해 변경되었을 수 있습니다. 이 경우 VM 뷰의 VM 이름 옆에 경고 아이콘이 표시됩니다. jvmguard 서버는 이전의 모든 버전의 에이전트와 계속 작동하지만, 오래된 에이전트로 모니터링되는 JVM에서는 새 기능을 사용할 수 없을 수 있습니다.
모니터링되는 JVM이 나중에 다시 시작되면 새 에이전트가 자동으로 사용됩니다. 새 에이전트 파일을 원격 머신으로 전송할 필요가 없습니다.
에이전트 업데이트 메커니즘
섹션 제목: “에이전트 업데이트 메커니즘”오래된 jvmguard 에이전트로 모니터링되는 JVM에 연결되면 jvmguard 서버는 새 에이전트 파일을 원격 머신으로
전송합니다. 원래 에이전트 파일은 사용 중이고 쓰기 금지되어 있을 수 있으므로 덮어쓸 수 없습니다. 새
에이전트는 $HOME/.jvmguard/agent 디렉터리에 저장됩니다. 이 디렉터리에는 모니터링되는 각 VM에 대한 하위
디렉터리가 있고, 그 안에 전송된 에이전트가 있는 디렉터리가 있습니다.
모니터링되는 JVM이 시작되면 -javaagent JVM 옵션에 지정한 jvmguard.jar Java
에이전트가 로드됩니다. 이 Java 에이전트는 $HOME/.jvmguard/agent를 살펴 모니터링되는 JVM에 대한 가장 최근의
에이전트 파일을 선택함으로써 모니터링 에이전트의 실제 구현을 부트스트랩합니다. 전송된 에이전트가 없으면
추출된 에이전트 아카이브의 lib 디렉터리에 있는 구현이 사용됩니다.
부트스트랩 코드가 있는 jvmguard.jar 파일은 업데이트되지 않지만, 모니터링 기능 자체에 영향을 주지 않는
시작 시 제한된 기능을 수행합니다. 새 릴리스에서 JAR 파일이 변경되더라도 원격 머신에서 교체해야 한다는
의미는 아닙니다.