JMX (Java Management Extensions)는 Java 응용 프로그램을 모니터링하고 관리하기위한 강력한 프레임 워크입니다. 이를 통해 응용 프로그램 별 메트릭 및 기능을 MBEANS (Managed Bean)라고하는 관리 가능한 리소스로 노출시킬 수 있습니다. 그런 다음이 MBeans는 JCONSOLE 또는 사용자 정의 응용 프로그램과 같은 도구를 사용하여 원격으로 액세스하고 조작 할 수 있습니다.
JMX 사용 방법에 대한 분석은 다음과 같습니다.
javax.management.MXBean
인터페이스를 구현하는 클래스를 만들거나 javax.management.StandardMBean
클래스를 확장해야합니다. 이 클래스는 관리에 노출하려는 속성과 운영을 정의합니다. 속성은 모니터링하려는 데이터 (예 : 메모리 사용, 스레드 수)를 나타내며 작업은 수행 할 수있는 작업 (예 : 서비스 재시작, 가비지 수집)을 나타냅니다.ManagementFactory
사용하여 얻는 MBeanServer
객체를 사용하여 수행됩니다. MBEAN 서버 내에서 독특하게 식별하는 객체 이름을 제공하여 MBEAN을 등록합니다.JMXConnector
인터페이스를 사용하여 MBEAN 서버에 연결하는 사용자 정의 클라이언트를 작성하여 등록 된 MBEANS에 액세스 할 수 있습니다. 이러한 도구와 클라이언트를 사용하면 속성을 모니터링하고 등록 된 MBEAN의 작업을 호출 할 수 있습니다.<code class="java">import javax.management.*; public class SimpleCounter implements SimpleCounterMBean { private int count = 0; @Override public int getCount() { return count; } @Override public void increment() { count ; } public static void main(String[] args) throws MalformedObjectNameException, InstanceAlreadyExistsException, MBeanRegistrationException, NotCompliantMBeanException { SimpleCounter counter = new SimpleCounter(); ObjectName objectName = new ObjectName("com.example:type=SimpleCounter"); MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); mbs.registerMBean(counter, objectName); System.out.println("MBean registered."); } //Interface for the MBean public interface SimpleCounterMBean { int getCount(); void increment(); } }</code>
이 예제는 간단한 카운터 mbean을 보여줍니다. 이 코드를 컴파일하고 실행 한 다음 jconsole을 사용하여 실행중인 JVM에 연결하고 count
속성을보고 increment
작업을 호출합니다.
JMX 지원 애플리케이션을 확보하는 것은 제대로 보호되지 않으면 악용 될 수있는 관리 기능을 노출시키기 때문에 중요합니다. 모범 사례는 다음과 같습니다.
JMXAuthenticator
구현을 사용하고 java.rmi.server.hostname
및 com.sun.management.jmxremote.port
속성 구성을 사용하여 수행됩니다. 특정 MBEAN 및 운영에 액세스 할 수있는 사용자를 제어하기위한 승인을 구현하십시오. JMXAuthorizer
구현을 사용하여 수행 할 수 있습니다.Prometheus 또는 Grafana와 같은 도구와 JMX 모니터링을 통합하려면 JMX 수출 업체가 JMX 메트릭을 이러한 도구를 이해할 수있는 형식으로 변환해야합니다. 몇 가지 옵션이 있습니다.
선택한 방법에 관계없이 일반 프로세스에는 다음이 포함됩니다.
예, JMX는 원격 관리 및 Java 응용 프로그램의 문제 해결을 위해 특별히 설계되었습니다. 관련 mbeans를 노출시킴으로써 원격으로 다음을 수행 할 수 있습니다.
원격 연결을 수락하기 위해 JMX 서버를 구성한 다음 JMX 클라이언트 (예 : JCONSOLE 또는 CUSTOM CLIENT)를 사용하여 원격 JMX 서버에 연결하여 원격 액세스가 달성됩니다. 앞에서 언급 한 모범 사례를 사용 하여이 원격 액세스를 보호해야합니다. 원격으로 관리하고 문제를 해결하는 능력은 Java 응용 프로그램의 유지 관리 및 운영 효율성을 크게 향상시킵니다.
위 내용은 모니터링 및 관리에 Java의 JMX (Java Management Extensions)를 어떻게 사용합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!