Java 서버 애플리케이션의 자동 종료를 모니터링하는 방법은 무엇입니까?

Java 서버 애플리케이션의 자동 종료를 모니터링하는 방법은 무엇입니까?

Centos 7을 실행하는 AWS EC2 인스턴스에서 Java Spring 서버 애플리케이션 클러스터를 실행하고 있습니다. 우리는 여기에 상태 모니터를 설치했고 때때로 경고음이 울리고 Java 프로세스가 조용히 사라진 것을 발견했습니다. 우리 로그나 시스템 로그 모두에서 아무것도 찾을 수 없었습니다. 우리는 포착한 내용을 기록하는 자체 코드 주위에 외부 "catch Throwable"을 갖고 있지만 자체 스레드가 많은 Tomcat을 실행합니다. 사라지는 순간을 포착하기 위해 로깅을 추가했지만, 아직까지는 정보가 생성되지 않았습니다.

나는 다음 질문을 본 적이 있습니다.Linux에서 Java 프로세스가 종료된 이유를 찾는 방법. 거기에 어떤 도움이 있는지 모르겠습니다.

현재는 이러한 프로세스에 대한 실행 프로그램을 솔루션에 포함할 수 없습니다. 이건 긴 이야기다. 저를 믿으십시오. 우리는 이 길을 따라가려고 노력해 왔습니다.

어떤 제안이 있으십니까? Java 하위 프로세스의 모든 신호를 주의 깊게 모니터링하고 기록하는 외부 상위 프로세스에서 Java 프로세스를 래핑해야 하는지 궁금합니다. 아직 찾지 못한 기성 솔루션이 있는지 궁금합니다. 어떤 아이디어라도 크게 감사하겠습니다.

답변1

나는 사용했다감시 장치모니터링 서비스. 기본적으로 시스템에서 자체 서비스로 실행되며 명명된 프로세스의 존재를 모니터링할 수 있습니다. 서비스를 다시 시작하도록 하거나 서비스가 종료될 때 경고를 생성할 수 있습니다. 또한 실패한 재시작(및 시도 횟수)을 감지하는 논리도 있습니다. 또한 http 연결을 열어 서비스가 시작되었는지 확인하는 등의 작업을 수행하도록 할 수도 있습니다.

나는 이것이 monitCentOS7용 EPEL7에 있다고 생각합니다.

관련 정보