Sun Java Enterprise System 5 모니터링 설명서

Java ES 모니터링 작동 방법

모니터링은 시스템 관리자가 성능을 평가하고 경보에 대한 알림을 받을 수 있도록 런타임 데이터를 수집하고 표시하고 서비스 품질 기준을 계산하는 전체 프로세스입니다. 런타임 작업 도중 관리자는 Monitoring Console과 상호 작용하여 성능 통계를 표시하고 자동 모니터링을 위한 규칙을 만들고 경고를 확인하면 됩니다. 그러나 구성, 문제 해결 및 고급 모니터링의 경우 Monitoring Framework의 아키텍처와 Monitoring Console에 연결되는 방법을 이해하면 도움이 됩니다.

Java ES의 모니터링은 다음 개념에 기반을 둡니다.

다음 절에서는 모니터링 아키텍처의 이러한 각 개념에 대해 자세히 설명합니다.

공통 모니터링 모델(CMM)

표준화된 모니터링 메커니즘의 기초는 모니터링되는 객체를 정의하고 모든 모니터링된 구성 요소에서 이러한 객체를 채택하는 것입니다. 이를 위해 모니터링 아키텍처는 DMTF(Distributed Management Task Force)가 유지 관리하는 공통 정보 모델(CIM)의 확장으로 공통 모니터링 모델(CMM)을 정의합니다. CMM은 컴퓨터, 응용 프로그램과 같은 모니터링된 객체를 지정하는 정보 모델이고 작업 상태 값과 같은 일관된 값을 지정하는 데이터 모델입니다. 또한 정보 모델의 일부로서 CMM은 객체의 속성(예: 서비스가 처리하는 요청 수)과 객체 사이의 관계(예: 서비스가 특정 컴퓨터에서 호스팅된다는 사실)를 정의합니다.

기본 구현이 다른 경우에도 CMM 덕분에 응용 프로그램, 서비스, 액세스 지점 등과 같은 개념은 모든 제품 구성 요소에서 동일합니다. 예를 들어, Web Server는 HTTP 요청을 처리하는 서비스를 표시할 수 있고 Directory Server는 LDAP 요청을 처리하는 서비스를 표시할 수 있습니다. 그러나 표준 객체는 처리된 요청 수를 측정하는 기능, 일정 기간 동안 요청에 응답하는 데 걸린 평균 시간 등과 같은 이러한 두 기능에 공통된 사항을 파악합니다.

게다가 특정 데이터 값이 표준화되므로 전체 시스템에서 해당 의미가 일관됩니다. 예를 들어, 작업 상태 DEGRADED은 모니터링하고 있는 제품 구성 요소에 상관 없이 서비스를 여전히 사용할 수 있지만 성능이 크게 저하되었다는 것을 항상 의미합니다.

부록 A, CMM 객체 참조에 설명된 계측에 사용되는 Java 인터페이스 및 클래스에서 CMM 사양이 구현됩니다.

CMM 계측

Monitoring Framework에서 계측은 CMM 정의를 구현하는 Java 인터페이스 및 클래스 집합입니다. Java ES의 새 모니터링 기능을 위해 제품 구성 요소는 모니터링된 객체의 속성을 통해 CMM 객체를 인스턴스화하고 런타임 값을 표시하도록 코드를 계측했습니다. 각 구성 요소에 의해 구현되는 CMM 객체는 모니터링할 수 있는 항목을 결정합니다. 이러한 이유 때문에 일부 구성 요소는 다른 구성 요소보다 적은 속성을 표시합니다. 모니터링을 위해 각 제품 구성 요소에 의해 표시되는 객체 및 속성 목록은 부록 B, 각 구성 요소가 표시하는 모니터링된 객체에서 제공됩니다.

노드 에이전트

모니터링 용어에서 노드는 고유한 정규화된 도메인 이름이나 IP 주소로 식별되는 단일 논리 호스트입니다. 노드는 가상 시스템으로 구성된 Solaris 영역이나 전체 시스템이 될 수 있습니다. 노드 에이전트는 해당 호스트의 모든 계측된 구성 요소와 통신하고 모든 모니터링된 객체를 표시합니다. 또한 노드 에이전트는 성능 통계를 수집하기 위한 모든 논리를 관리하고 규칙에 정의된 임계값을 모니터링하며 포함된 모니터링된 객체에 대한 경보를 생성합니다.

다음 다이어그램은 Java ES 제품 구성 요소 세 개의 인스턴스가 있는 단일 호스트의 노드 에이전트에 포함된 내용을 나타냅니다. 또한 제품 구성 요소에 의해 제공된 값을 표시하기 위해 계측이 노드 에이전트에서 인스턴스화되는 방법을 보여줍니다.

그림 1–1 노드 에이전트 다이어그램

노드 에이전트 내에는 임계값 경보 보기와 같은 계측된 속성 및 모니터링 규칙을 나타내는 객체가 있습니다.

노드 에이전트는 그 자체가 Java 가상 머신인 공통 에이전트 컨테이너에 로드되는 모듈로 구현됩니다. 노드 에이전트 구현은 모니터링 및 원격 관리를 위한 표준 Java 확장인 JMX(Java Management Extensions)에 기반을 둡니다. CMM을 이해하는 모든 JMX 사용 모니터링 응용 프로그램은 노드 에이전트의 모니터링된 객체에 액세스할 수 있습니다. 또한 JMX 기능을 사용하여 노드 에이전트는 SNMP(Simple Network Monitoring Protocol)를 통해 모니터링된 특정 객체를 표시할 수 있습니다.

마스터 에이전트

마스터 에이전트는 Monitoring Console 설치의 일부로 별개의 시스템에 배포됩니다. 마스터 에이전트는 모든 노드의 이름이나 주소를 사용하여 구성되므로 모든 노드 에이전트에서 모니터링된 객체를 집계할 수 있습니다. 또한 마스터 에이전트는 노드 에이전트와 통신하기 위해 사용되는 JMX에 의존하며 해당 로컬 공통 에이전트 컨테이너에도 로드됩니다.

다음 다이어그램은 두 개의 노드에 연결된 마스터 에이전트를 나타냅니다. Monitoring Console은 마스터 에이전트에 연결되어 각 노드에서 세 개의 구성 요소를 모니터링합니다. 마스터 에이전트가 SNMP 속성을 집계하지 않으므로 SNMP를 모니터링에 사용하려면 각 노드에 별도로 연결해야 합니다. 마스터 에이전트는 단지 Monitoring Console과 함께 사용하도록 설계되었으며 다른 모니터링 응용 프로그램에서 액세스할 수 없습니다.

그림 1–2 전체 모니터링 아키텍처의 다이어그램

마스터 에이전트는 여러 JMX 노드 에이전트에 연결되고 모니터링 콘솔을 위해 모든 모니터링된 객체를 표시합니다.