[컴][웹] tomcat 의 jmx

톰캣 모니터링 / tomcat monitoring /



JMX(Java Management Extensions)는 프로그래머들에게 자바 어플리케이션의 모니터링과 관리 기능을 제공한다. JMX 기술은 JCP(Java Community Process)에 의해 개발된 밀접한
관계의 두 스펙에 의해 정의되어 있다.[ref. 1]
  • Java Specification Request (JSR) 3: Java Management Extensions (JMX) Specification
  • JSR 160: Java Management Extensions (JMX) Remote API 1.0


Tomcat Manager Application



JMX 를 java application 을 통해서 접근하는 방법에 대한 이야기는 두번째 링크에서, 이 java application 에서 접근할 수 있는 기능을 tomcat 에서 http proxy 로 구현해 놨는데, 이것과 관련된 정보는 첫번째 링크에서 확인하면 된다.


JMX proxy

JMX Proxy 와 관련해서는 위의 링크를 참고하자.


conf/tomcat-users.xml 에

<role rolename="manager-gui"/>
<user username="tomcat" password="s3cret" roles="manager-gui"/>

manager-gui 에 manager-jmx 를 넣자.

이렇게 해서 인증이 가능하게 된다. 그리고 아래 url 들을 시험해 보자.

http://mysite.com:8080/manager/jmxproxy/?qry=STUFF

STUFF 부분에 원하는 query 를 넣으면 된다.
http://mysite.com:8080/manager/jmxproxy?qry=*:type=RequestProcessor,*


JMXProxy 의 query 를 만드는 법

query 없이 날리면 모든 MBean 을 확인할 수 있다.
http://10.10.222.102:8080/manager/jmxproxy

위와 같이 날리면 아래처럼 결과를 주는데, 여기서 이 Name 에 해당하는 부분을 위의 qry 의 값(STUFF 부분) 으로 주면 된다.
Name: Catalina:type=NamingResources,context=/docs,host=localhost
modelerType: org.apache.catalina.mbeans.NamingResourcesMBean
resources: Array[java.lang.String] of length 0
container: StandardEngine[Catalina].StandardHost[localhost].StandardContext[/docs]
environments: Array[java.lang.String] of length 0
resourceLinks: Array[java.lang.String] of length 0



curl --user tomcat:s3cret http://localhost:8080/manager/jmxproxy?qry=Catalina:name=%22http-bio-8080%22,type=ThreadPool


command

url 을 작성하는 방법과 관련돼서는 아래 링크를 참고하자.





Spring 에서 JMX MBean 작성




JMX Examples

tomcat 서버에 연결된 connection 수 



db connection pool

MongoDB(rmdb)


MySQL(rdb)


jvm 메모리 사용량




References

  1. JMX 기술의 이해
  2. 아파치 톰캣(apache tomcat) 을 jmx 로 monitoring 하기 - Java - 기록은 기억을 지배한다.
  3. Monitoring Apache Tomcat - The Linux Foundation
  4. PoolProperties (Apache Tomcat 7.0.61 API Documentation)



댓글 없음:

댓글 쓰기