2010-01-07 3 views
11

우리는 Java 웹 응용 프로그램을 보유하고 있으며 앞으로이 모니터링을 확장하기 위해 몇 가지 기본 모니터링을 설정하려고합니다. .Java 웹 응용 프로그램 모니터링 - JMX가 올바른 선택입니까?

(1) 응용 프로그램에서 실행되는 웹 컨테이너의 가상 시스템에 대한 일반적인 정보 (예 : 메모리와 스레드)를 수집

(2)의 "상태"모니터 : 다음과 같이 우리의 계획은 신청. 이것은 다소 모호하지만 적어도 웹 애플리케이션이 여전히 살아 있고 요청에 응답 할 수 있는지보고 싶습니다.

(3) 향후 우리는 우리의 응용 프로그램과 관련된 자세한 정보를 수집하고자합니다. 다시 말하지만 다소 모호 합니다만 애플리케이션에서 내부적으로 수집 한 특정 통계를 지원 담당자가 사용할 수 있도록 할 수도 있습니다.

일반적으로 웹 응용 프로그램은 Tomcat 5.5 또는 6 환경에 배포됩니다. 웹에서 빠르게 검색하면 JMX를 Tomcat에 사용할 수 있으며 JConsole을 사용하여 서버에 연결할 수 있음을 알 수 있습니다. 이것은 우리에게 포인트 (1)을 푸는 많은 기본 정보를 제공합니다. 또한, 일부 정보는 "Catalina"에 대한 MBeans 섹션에서 사용할 수 있으며 적어도 특정 서블릿이 얼마나 많은 요청을 받았는지 확인할 수 있습니다. 이것은 우리가 point (2)에 대해 원하는 것은 아니지만 최소한 우리에게 정보를 제공합니다. 꽤 많은 정보가있는 것처럼 보이지만 JConsole을 사용하여 해석하는 것이 다소 어렵습니다. 아마도 Tomcat이 공개 한 MBean을 해석 할 수있는 더 나은 도구가있을 것입니다.

포인트 (3)의 경우, 처음에는 우리 자신의 MBeans를 작성한 다음 JConsole과 같은 것으로 사용할 수있는 것으로 보입니다. 개인적으로 이것은 JMX에 대해 배우는 과정이 포함되어 있는데, JMX를 사용하면 매우 기쁩니다.하지만 걱정이됩니다. 주변을 둘러 보았을 때 주제에 관한 대부분의 교과서는 수년간 업데이트되지 않았으며 오픈 소스 도구는 최근 업데이트 없이는 어려움을 겪고있는 것으로 보입니다. 그래서 제 질문은 간단한 질문입니다. JMX에 대한 귀하의 의견은 무엇입니까? 미래가 있습니까? 아니면 다른 것으로 대체 되었습니까? 우리는 이미 웹 애플리케이션을 가지고 있지만 관리 콘솔을 처음부터 시작하고 있습니다. JMX를 선택해야합니까? 아니면 앞으로 더 나은 미래를 위해 더 적절한 것이 있습니까?

나는 개인적인 도끼를 갈기 갈기가없는이 질문을하며, 나는 당신의 의견과 경험을 듣기를 바랍니다. 나는 아무도 정답이 없다고 확신하지만 정보에 입각 한 토론이 유용하다고 생각합니다.

미리 감사드립니다.

Adam.

답변

8

여기서 JMX는 확실히 좋은 해결책입니다. 나는 그것에 대해 걱정하지 않을 것이다. 내가 최근에 일해온 대부분의 기업은 JMX를 사용하거나 (또는 ​​사용할 계획이 있습니다.) Java 세계에서 다른 것을 선택하기 전에 꽤 설득력있는 주장을 들어야합니다. 이를 위해 클라이언트 (모니터링 솔루션)를 작성하는 것이 쉽고 실제로 복잡한 데이터를 매우 쉽게 반환 할 수 있습니다. 대부분의 타사 구성 요소는 JMX를 통한 모니터링도 지원합니다.

기존 관리 솔루션 (예 : Nagios, BNC Patrol, HP Openview 등)과의 통합을 고려할 수도 있습니다. 자바를 잘 인식하지는 못하지만, 웹 사이트가 정상적으로 작동하는지 (Nagios를 사용하기 쉬운 지) 테스트하거나 SNMP (Openview가 기본적으로 말함)를 사용하여 통합하는 테스트를 위해 간단한 HTTP 연결과 같은 테스트를 선호합니다.

+1

감사를 알고 jvisualvm하는 플러그인입니다. JMX의 미래에 대한 당신의 긍정적 인 견해를 듣는 것이 좋다! – Adam

+0

@Brian Jprofiler는 내부적으로 JMX를 사용합니까? – Geek

1

상황에 따라 (Java 6 업데이트 10 JDK 이상 및 동일한 시스템에서) 해당되는 경우 JConsole보다 더 깊게 파고들 수 있으므로 jvisualvm을 대신 사용해보십시오.당신은 가장 쉬운 방법은 당신이 필요로 할 찾을 수 있습니다

응용 프로그램

+0

JVisualVM은 좋은 생각입니다. JDK 6에 대한 요구 사항은 JVisualVM을 실행하는 로컬 시스템에만 있고 웹 응용 프로그램 컨테이너에 대한 JVM에는 적용되지 않는다고 가정합니다. 필자가 지적한 점은 Tomcat이 제공하는 기본 MBean 정보를 더 쉽게 읽을 수 있도록 JVisualVM에 대한 플러그인을 알고 있는가? – Adam

+0

VisualVM을 컨테이너와 동일한 호스트에서 실행할 수 있다면 준비가되지 않은 JVM에 액세스 할 수 있으므로 훨씬 쉬워집니다. 그러나 시작할 때 JVM에 적절한 명령을 사용하여 원격 액세스를 수행 할 수 있습니다. Java 6가 가장 효과적입니다. JMX에 관해서는, Tools-> Plugins (최근에 테스트하지는 않았지만 잠깐 돌아왔다)를 사용하여 VisualVM-MBeans 플러그인을 추가하십시오. –

+0

감사합니다. 나는 VisualVM-MBeans 플러그인을 시험해 보았고 기본적으로 JConsole에 의해 주어진 MBeans에 대한 동일한 뷰를 제공하는 것으로 보인다. 누구든지 Tomcat 전용 플러그인을 알고 있습니까? – Adam

관련 문제