Java 관리 확장 기능
Java Management ExtensionsJava Management Extensions(JMX)는 애플리케이션, 시스템 객체, 디바이스(프린터 등) 및 서비스 지향 네트워크를 관리 및 감시하기 위한 도구를 제공하는 Java 기술입니다.이러한 리소스는 MBeans라는 개체(Managed Bean의 경우)로 표시됩니다.API에서는 클래스를 동적으로 로드하고 인스턴스화할 수 있습니다.애플리케이션 관리와 감시는 Java Dynamic [1]Management Kit를 사용하여 설계 및 개발할 수 있습니다.
Java Community Process의 JSR 003에서는[2] JMX 1.0, 1.1 및 1.2가 정의되어 있습니다.JMX 2.0은 JSR 255로 개발되고 있었지만, 이 JSR은 [3]나중에 철회되었습니다.원격 관리 및 모니터링용 JMX Remote API 1.0은 JSR [4]160에 의해 지정됩니다.JMX Remote API for Web Services의 확장은 JSR 262에서 [5]개발되었습니다.
J2EE 커뮤니티에서 초기에 채택된 JMX는 버전 5.0부터 J2SE의 일부입니다. "JMX"는 Oracle Corporation의 상표입니다.
아키텍처
JMX는 다음 3가지 수준의 아키텍처를 사용합니다.
- 프로브 레벨(계장 레벨이라고도 함)에는 리소스를 계측하는 프로브(MBeans라고 함)가 포함됩니다.
- 에이전트 수준 또는 MBeanServer – JMX의 핵심. MBean과 응용 프로그램 간의 중간 역할을 합니다.
- 리모트 관리 레벨에서는, 리모트 애플리케이션이 커넥터와 어댑터를 개입시켜 MBean Server 에 액세스 할 수 있습니다.커넥터는 다양한 통신(RMI, IIOP, JMS, WS-* 등)을 사용하여 MBeanServer API에 대한 완전한 원격 액세스를 제공하며, 어댑터는 API를 다른 프로토콜(SNMP 등) 또는 웹 기반 GUI(HTML/HTTP, WML/HTTP 등)에 적용합니다.
응용 프로그램은 범용 콘솔(JConsole[6] 및 MC4J[7] 등) 또는 도메인 고유의(모니터링) 응용 프로그램일 수 있습니다.외부 애플리케이션은 JMX 커넥터 및 프로토콜 어댑터를 사용하여 MBean과 상호 작용할 수 있습니다.커넥터는 에이전트를 원격 JMX 지원 관리 응용 프로그램과 연결하는 역할을 합니다.이 통신 형식에는 JMX 에이전트의 커넥터와 관리 애플리케이션의 커넥터 클라이언트가 포함됩니다.
프로토콜 어댑터는 지정된 프로토콜을 통해 JMX 에이전트의 관리 보기를 제공합니다.프로토콜 어댑터에 연결하는 관리 응용 프로그램은 일반적으로 지정된 프로토콜에 한정됩니다.
관리 콩
관리 대상 빈(MBean이라고도 함)은 종속성 주입으로 작성된 JavaBean의 한 종류입니다.Managed Bean은 Java Management Extensions 기술에서 특히 사용되지만 Java EE 6에서는 관리 빈의 보다 자세한 의미를 제공합니다.
MBean은 애플리케이션 또는 Java EE 기술 서비스(트랜잭션 모니터, JDBC 드라이버 등)와 같이 Java 가상 시스템에서 실행되는 리소스를 나타냅니다.퍼포먼스, 자원 사용률, 문제(풀), 애플리케이션 구성 또는 속성 취득 및 설정(푸시/풀), 장애 또는 상태 변경(푸시) 등의 이벤트 알림에 사용할 수 있습니다.
Java EE 6은 관리 대상 빈이 Java 클래스에 의해 구현되는 빈이며, 이를 빈 클래스라고 합니다.최상위 Java 클래스는 다른 Java EE 기술 사양(예: JavaServer Faces 기술 사양)에 의해 관리되는 빈으로 정의되거나 다음 조건을 모두 충족하는 경우 관리 대상 빈입니다.
- 이것은 비정적 내부 클래스가 아닙니다.
- 구체적인 클래스이거나 주석이 붙어 있습니다.
@Decorator. - EJB 컴포넌트를 정의하는 주석을 달지 않거나 에서 EJB bean 클래스로 선언하지 않습니다.
ejb-jar.xml.
관리 대상 빈을 정의하기 위해 주석과 같은 특별한 선언이 필요하지 않습니다.
MBean은 내부 변경을 MBeanServer에 통지할 수 있습니다(속성의 경우).javax.management.NotificationEmitterMBean의 변경에 관심이 있는 어플리케이션은 청취자를 등록한다.javax.management.NotificationListener)를 MBeanServer로 전송합니다.JMX는 청취자가 모든 [8]알림을 수신하는 것을 보증하지 않습니다.
종류들
MBean에는 기본적으로 다음 두 가지 유형이 있습니다.
- 표준 MBean은 속성 및 운영(즉, 메서드)에 대한 설정 및 게터를 포함하는 비즈니스 인터페이스를 구현합니다.
- 다이내믹 MBeans는
javax.management.DynamicMBeanAtribute와 조작을 일람표시하고 Atribute 값을 취득 및 설정하는 방법을 제공하는 인터페이스입니다.
추가 유형은 Open MBeans, Model MBeans 및 Monitor MBeans입니다.개방형 MBean은 기본 데이터 유형에 의존하는 동적 MBean입니다.이 제품은 설명이 명확하고 사용자 친화적입니다.MBean 모델은 런타임 중에 구성할 수 있는 동적 MBean입니다.프로그램 실행 시 리소스를 동적으로 구성하기 위한 범용 MBean 클래스도 제공됩니다.
MXBean(Platform MBean)은 가비지 컬렉션, JIT 컴파일, 메모리 풀, 멀티 스레딩 등의 Java 가상 머신 서브시스템을 재현하는 특수한 MBean 유형입니다.
MLet(관리 애플릿)은 MBeanServer에 XML 설명에서 MBean을 로드, 인스턴스화 및 등록하기 위한 유틸리티 MBean입니다.XML 기술자의 형식은 다음과 같습니다.[9]
<MLET CODE = ''class'' OBJECT = ''serfile'' ARCHIVE = ''archiveList'' [CODEBASE = ''코드베이스'''URL'] [NAME = "objectName"][ VERSION = "version" ]> [ subjectlist ]</MLET >
지지하다
JMX는 벤더별로 다양한 수준에서 지원됩니다.
- JMX는 OpenCloud Rhino Application Server [1], JBoss, JOnAS, WebSphere Application Server, WebLogic, SAP NetWeaver Application Server, Oracle Application Server 10g 및 Sun Java System Application Server와 같은 Java 애플리케이션 서버에서 지원됩니다.
- JMX는 Unbound에서 지원됩니다.ID 디렉토리 서버, 디렉토리 프록시 서버 및 동기화 서버.[10]
- 이 프로토콜을 지원하는 시스템 관리 도구에는 Experiix OneSight, GroundWork Monitor, Hyperic, HP OpenView, IBM Director, ITRS Genos, Nimsoft NMS, OpenNMS,[11] Zabbix, Zenoss Core, Zirion, SolarWinds, Uptime 및 Logic 모니터가 있습니다.
- JMX는 Apache [13]Tomcat과 같은 서블릿 컨테이너에서도 지원됩니다.Jetty(웹 서버)
- MX4J [2]는 엔터프라이즈 컴퓨팅용 오픈 소스 JMX입니다.
- jManage [ 3 ]는 웹 및 명령줄 인터페이스를 갖춘 오픈 소스 엔터프라이즈급 JMX 콘솔입니다.
- MC4J [4]는 JMX를 지원하는 서버에 접속하기 위한 오픈 소스 비주얼 콘솔입니다.
- snmpAdaptor4j [5]는 SNMP 프로토콜을 통해 MBeans에 대한 간단한 액세스를 제공하는 오픈 소스입니다.
- jvmtop은 명령줄용 경량 오픈소스 JMX 모니터링 도구입니다.
- Prometheus는 Prometheus[14] 형식으로 메트릭을 공개하는 JMX 익스포터를 통해 JMX 데이터를 수집할 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "Overview of the Java Dynamic Management Kit". docs.oracle.com. Retrieved January 12, 2021.
- ^ JSR 003: JavaTM Management Extensions(JMXTM) 사양
- ^ JSR 255: JavaTM Management Extensions(JMXTM) 사양, 버전 2.0
- ^ JSR 160: JavaTM Management Extensions(JMX) 리모트 API
- ^ JSR 262: Java Management Extensions(JMX) 에이전트용 웹 서비스 커넥터
- ^ JConsole을 사용한 응용 프로그램 모니터링
- ^ "The MC4J project creates management software for J2EE application servers and other Java applications". Archived from the original on 2007-03-23. Retrieved 2006-08-27.
- ^ Java Management Extensions (JMX)– 베스트 프랙티스
- ^ "MLet (Java 2 Platform SE 5.0)". Sun Microsystems. Retrieved 2008-06-22.
- ^ UnboundID Corp.Wayback Machine에서 2012-03-06 아카이브 완료
- ^ "Home".
- ^ "JMX Data Collection". www.logicmonitor.com. Retrieved 2020-11-20.
- ^ Apache Tomcat 6.0: Tomcat 모니터링 및 관리(Tomcat 매뉴얼)
- ^ "JMX Exporter". GitHub. 14 February 2022.
추가 정보
기사들
- Marc Fleury와 Juha Lindfors의 "JMX를 통한 컴포넌트 아키텍처 활성화"
- Andreas Schaefer의 "벤더 뉴트럴 J2EE 관리 API 소개"
- Max Goff 1999의 "관리 영역의 자바"
- JMX/JBoss – 마이크로커널 설계
- 2006년 1월 16일 Rakesh Kalra의 "jManage 1.0으로 JMX 지원 애플리케이션 관리"
- Lucas McGregor의 "JMX 및 JUnit을 사용한 J2EE 시스템 관리"
- Sun Java 모니터링 및 관리 개요
- 자바 EE6Tutorial:.약 콩 관리
책들
- 벤자민 G설린 과장님, 마크 B휘플:JMX에는 조치:.당신은 또한 당신의 첫번째 JMX 응용 프로그램이 작동되고, 매닝 Publications.2002년, 아이 에스비엔 1-930110-56-1 것이다.
- J. 스티븐 페리:자바 관리 확장, 오라일리, 아이 에스비엔 0-596-00245-9.
- 제프 핸슨:JMX 고객들과 서버 연결:.는 자바 관리 확장, APress L.P., 아이 에스비엔 1-59059-101-1을 이해하는 것.
- 마크 플러리, Juha Lindfors:JMX:관리 J2EE자바 관리 확장과, 샘스 출판사, 아이 에스비엔 0-672-32288-9.
외부 링크
- JMX 1.4(JMX 140, 자바의 파트 6).
- JMXJBoss.com에
- JMXwww.oracle.com에
- JSR 255(JMX 2.0)
- 합동 전략 검토 3(JMX 1.0, 1.1및 1.2).