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 수
- URL : http://localhost:8080/manager/jmxproxy?qry=Catalina:type=ThreadPool,name=%22ajp-bio-8009%22
- 참고 값
- connectionCount
- maxConnections
- 값 관련 참고문서
db connection pool
MongoDB(rmdb)
- URL : http://localhost:8080/manager/jmxproxy?qry=org.mongodb.driver:type=ConnectionPool,clusterId=1,host=222.231.16.2,port=65003
- 값 관련 참고문서
- ConnectionPoolStatisticsMBean.java, mongo java driver
MySQL(rdb)
jvm 메모리 사용량
References
- JMX 기술의 이해
- 아파치 톰캣(apache tomcat) 을 jmx 로 monitoring 하기 - Java - 기록은 기억을 지배한다.
- Monitoring Apache Tomcat - The Linux Foundation
- PoolProperties (Apache Tomcat 7.0.61 API Documentation)
댓글 없음:
댓글 쓰기