여러 기술이 혼재된 환경(Heterogeneous)을 위한 응용 프로그램(Generic/.NET/Java) 성능 모니터링(APM), System Center Operation Manager(SCOM)

클라우드 인프라는 단순하게 가상화 영역 뿐만 아니라, 전체적인 인프라 관점에서 접근해야 합니다. 요 근래 포스팅했던 아티클들이 전체 인프라 관점에서 접근하고 있다는 것을 느끼고 계셨는지요? 클라우드 인프라는 물리적인 하드웨어 레벨(서버, 네트워크, 스토리지), 그 위에 설치된 가상화 영역(Hyper-V, VMWare, XENServer), 가상화 영역에서 구동되는 운영 체제(Windows/Linux), 그리고 해당 운영 체제에서 서비스되고 있는 응용 프로그램(일반, .NET, Java)로 구성이 되죠. 이 전체를 비즈니스 로직이나 시나리오에 따라 중간에서 오케스트레이션(Orchestration)해줄 수 있는 부분도 필요합니다.

전체적인 클라우드 관점에서의 관리 방안에 대한 정리 포스팅은 앞서 언급한 4개의 영역이 모두 정리가 되고 나면, 다시 한번 포스팅하겠습니다.

오늘은 앞선 2가지에 이어 응용 프로그램 성능 모니터링에 대한 부분을 살펴보겠습니다. 응용 프로그램 성능 모니터링(Application Performance Management, APM) 영역은 다양한 벤더들이 자사의 APM 솔루션을 기반으로 경쟁을 하고 있습니다.

IT 엔지니어와 개발자 사이에 응용 프로그램 성능에 대한 모니터링 이슈는 여전히 풀어야할 숙제로 남아있습니다. 응용 프로그램에 대한 개발은 당연히 개발자가 진행하는 부분이었습니다만, 릴리즈 후 운영에 대해서는 서버 책임자가 IT 엔지니어이기에.. 문제 발생시, 이에 대한 책임 소재 및 확인에 대한 부분이 난해했죠.

Microsoft에서는 SCOM 2007 R2 시절, .NET APM 기술로 유명한 AVICode을 인수하였습니다. 이에 SCOM 2007 R2용 AVICode 패키지를 제공하여 .NET에 대한 성능 모니터링을 가능하게 했죠. 금년말 출시 예정인 SCOM 2012의 경우에는 AVICode 패키지를 SCOM 기술에 합쳐놓아서, 좀더 편하게 IT 엔지니어가 .NET 응용 프로그램에 대한 성능 모니터링을 할 수 있습니다.

image

이렇게 추가된 관리 팩(MP)을 이용하여, .NET 응용 프로그램 성능 모니터링과 웹 응용 프로그램의 트랜잭션 모니터링이 가능합니다.

image

.NET으로 서비스되고 있는 응용 프로그램의 URL 주소를 등록하게 되면, 해당 응용 프로그램을 서비스하는 서버내 System Center APM 서비스가 구동되게 되고, IIS에서 .NET과 관련된 성능 데이터를 전달하게 됩니다. .NET 응용 프로그램의 입장에선 IIS가 WAS(Web Application Server)의 역할이기 때문이죠.

image

응용 프로그램의 성능은 서버 관점에서의 성능 수치(대표적으로 Avg. Request Time, Monitored Requests/sec, Performance Events/sec, % Performance Events/sec, Exception Events/sec, % Exception Events/sec입니다. 필요시 MP의 모니터링 규칙을 수정하여 더 넣을 수 있습니다.)와, 클라이언트가 접속시 경험할 수 있는 성능 수치(Page Load 임계치, AJAX나 WCF 임계치등)로 구분되서 수집할 수 있습니다.

image

단순히 이런 성능 데이터만 보여주는 것만은 아닙니다. 문제가 발생했을 경우, 또는 문제가 발생할 소지가 있는 경우에 대해서 추가적인 데이터를 살펴볼 수 있는 도구 2가지를 제공합니다.

image

바로 Application Advisor와 Diagnostics입니다. Advisor의 경우에는 처리해야 할 문제의 우선 순위와 관리를 도와주는 도구입니다. 아래의 그림들을 살펴보시면, 응용 프로그램들이 서비스되는 전체적인 상황을 알 수 있죠.

image

image

이렇게 분류된 문제점들을 좀더 세분화해서 코드 레벨에서까지 살펴볼 수도 있고, 전체적인 이용 트렌드를 파악할 수 있는 도구가 바로 Diagnostics입니다.

image

image

SCOM 2012에서 새롭게 추가된 부분이 바로 JEE(Java EE)에 대한 부분입니다. Java 응용 프로그램을 서비스하는 플랫폼에 대한 모니터링이 가능해졌습니다. 바로 이기종 환경에 대한 단일 모니터링 철학인 상호 운용성 철학이 방영된 것입니다. SCOM 2012가 모니터링 가능한 Java WAS는 아래와 같습니다.

  • JBoss 4.2, 5.1, 6 (Red Hat, 오픈 소스)
  • Tomcat 5.5, 6, 7 (오픈 소스)
  • WebLogic 10g, 11g (Oracle, BEA)
  • WebSphere 6.1, 7.0 (IBM)

이 중 JBoss에 대해서는 SCOM 2012 베타 현재, Linux 환경에서 동작중인 경우에도 모니터링이 됩니다. 모니터링에는 크게 2가지 종류가 있습니다. 기본 모니터링(Basic Monitoring), 그리고 자세한 모니터링(Deep Monitoring)입니다.

image

자세한 모니터링을 위해, Java의 경우에는 기본적으로 JMX(Java Management Extensions)를 이용하여 성능 수치를 받아오는데, SCOM에서 사용할 수 있는 형태로 제공받기 위해, JMXExtender가 추가적으로 설치되게 됩니다.

image

이를 통해 Class Loader, Garbage Collector, Heap Memory, JIT Compiler, Threads 개체내 규칙과 대상에 대한 성능 데이터 등을 가져오죠. .NET과 마찬가지로 JMX에 대한 부분과 SCOM 2012의 MP내 모니터링 규칙을 통해 추가 데이터를 확인할 수 있습니다.

image

JEE에 대한 모니터링 관련 MP 및 문서는 여기에서 다운로드 하실 수 있습니다.

조금 길이 길어졌죠? 설명의 편의를 돕고자, 스크린샷을 몇개 첨부하다보니, 포스팅이 길어졌습니다. 미소

어떠신가요? Microsoft System Center 하나만으로도 할 수 있는 모니터링이 참 많지 않나요? 사실 이게 전부다가 아닙니다. 아직 다루지 않은 물리적인 하드웨어 레벨(물리적인 서버, 네트워크, 스토리지)까지 모니터링하고, 이를 통해 클라우드 인프라와 접목할 수 있는 부분도 남아있습니다. 이 다음 포스팅에서 살펴보죠.

앞서 살펴본 바와 같이 SCOM 2012를 통해 응용 프로그램 레벨에 대한 세세한 모니터링 및 문제 파악, 해결등이 가능한 부분을 살펴보았고, 이 영역은 Microsoft의 기술만을 대상으로 하는 것이 아니라, Java 계열니.. 현업 환경에서 필요로 하는 다양한 부분을 최대한 제공하고 있지 않나 싶습니다. 그럼에도 타 모니터링 솔루션보다 가격적인 경쟁력도 있고..

인프라는 단지 한 요소만으로 구성되어져 있지 않다는 것은 저보다 훨씬 더 잘 아실거라 생각합니다. 여러 구성 요소로 만들어진 인프라를 좀더 편리하고, 빠르게.. 그러면서도 하나의 모니터링 솔루션에서 담당할 수 있다면, 이보다 더 나은 것은 없지 않을까요? 시간이 되신다면, System Center를 한번 테스트해보세요~!