JMX and Jolokia
Reference: okminseok.blogspot.com, github.com/eugenp
JMX ๋?
Java Application์ monitoringํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ ์์ ํ ์ํคํ ์ฒ์ ์ผ๋ จ์ design pattern์ ์ ์ํ๋ technology
์คํ์ค์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ , ์ค์ ์ ๋ณ๊ฒฝํ ์ ์๊ฒ ํด์ฃผ๋ API ๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค
runtime ์ํ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ด๋ฆฌํ ์ ์๋ค
JDK 1.5๋ถํฐ ๊ธฐ๋ณธ์ผ๋ก ํ์ฌ๋์ด ์ ๊ณต๋๊ณ ์๋ค
Application ๊ด๋ฆฌ๋ฅผ ์ํ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ ๋ชฉ์ ์ผ๋ก ์์๋์๋ค
JMX ์ฉ์ด
ManagedResource
๊ด๋ฆฌ์ ๋์์ด๋๋ resource
MBean (Managed Bean)
JVM์์ resuource๋ฅผ ํํํ๋ ์์กด์ฑ ์ฃผ์ ์ instanceํ ๋๋ class
Java application์ ๋ชจ๋ํฐ๋ง๊ณผ ๊ด๋ฆฌ ๊ธฐ๋ฅ ์ ๊ณต
ManagedResource์ ๋ํ ์ ๊ทผ ๋ฐ ์กฐ์ ์ ๋ํ
interface
๋ฅผ ์ ๊ณตํ๋ค
MBean Server
MBean์ ๊ด๋ฆฌํ๋ Java Class
MBean๋ค์ MBean server์ ๋ฑ๋ก๋๋ฉฐ, MBean server๋ resource์ ์ ๊ทผํ๋ ๋ชจ๋ ์๊ฒฉ ๋งค๋์ ๋ฅผ ๊ด๋ฆฌํ๋ค
MBeans, ๋์ผํ JVM์ application ๊ทธ๋ฆฌ๊ณ ์ธ๋ถ ์ฌ์ด์์ ์ค์ฌ์ ์ญํ ์ ํ๋ element
MBeans์์ ์ํธ์์ฉ์ MBean Server๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๋ค
Management Application
JMX๋ฅผ ํ์์์ฌ ๋ง๋ค์ด์ง application์ ๊ด๋ฆฌํ๋ application
Notification
MBean์ ์ํด ๋ฐ์ํ event, alert, information์ wrappingํ Java object
Instrumentation
MBean์ ์ํด ๊ด๋ฆฌ๋๋ resource๋ค
JMX ์์ํ๊ธฐ
JMX๋ฅผ ํตํด resource๋ฅผ ๊ด๋ฆฌํ๋ ค๋ฉด MBeans ๋ผ๋ Managed Beans ๋ฅผ ์์ฑํด์ผ ํ๊ณ ,
์์ฑํ MBean์
MBen Server
์ ๋ฑ๋กํด์ผ ํ๋คMBean Server๋ ๋ฑ๋ก๋ MBeans๋ฅผ ๊ด๋ฆฌํ๋ agent ์ญํ ์ ์ํํ๊ฒ ๋๋ค
MBean server๋ ๊ตฌํํ ์ ํ๋ฆฌ์ผ์ด์ ๋ด๋ถ ์์ ๋์ด๋ค
MBean์ ๊ตฌํํ๋๋ฐ์๋ rule์ด ์๋๋ฐ,
interface์ ๊ตฌํ์ฒด๋ฅผ ์์ผ๋ก ๋ง๋ค์ด์ผ ํ๊ณ ,
MBean interface์ ์ด๋ฆ์ "MBean" ์ผ๋ก ๋๋์ผ ํ๋ค
๋ ธ์ถํ๋ ๋ณ์๋ฅผ monitoring๋ง ํ ๊ฒ์ด๋ผ๋ฉด setter๋ ์๋ตํด๋ ๋๋ค
ex)
ObjectName
์ domain,** key**์ ๊ตฌ์ฑ์ ๊ฐ๋๋คdomain์ ์ด๋ฆ ์ถฉ๋์ด ๋ฐ์ํ์ง ์๋๋ก Java package ์ด๋ฆ์ ์ฐ๋ ๊ฒ์ด ๊ด๋ก์ด๋ค
key๋ key=value ์์ ์ฝค๋ง๋ก ๊ตฌ๋ถํด ์ฌ๋ฌ ๊ฐ๋ฅผ ์ง์ ํ ์ ์๋ค.
Jolokia์ JMX
์ผ๋ฐ์ ์ผ๋ก Java code ๋ง์ด JMX API์ ์ง์ ์ ๊ทผ ํ ์ ์์ง๋ง, JMX API๋ฅผ ํ์ค protocol๋ก ๋ณํํ๋ adaptor๋ค์ด ์๋ค
๊ทธ ์ค ํ๋๊ฐ Jolokia ์ด๊ณ , Jolokia๋ JMX API๋ฅผ HTTP๋ก ๋ณํํด์ค๋ค
Jolokia ๋ JVM์์ ๋ฐฐํฌ๋ ์ ์๋ agent๋ก์,
REST ๊ฐ์
HTTP endpoint
๋ฅผ ํตํดMBeans
๋ฅผ ๋ ธ์ถ์์ผ,๋ชจ๋ ์ ๋ณด๊ฐ ๋์ผํ host์์ ์๋ํ๋ ๋น Java application์ ์ฝ๊ฒ ์ ๊ณต๋๋๋ก ํ๋ค
์ผ๋ฐ JVM
์์๋ agent๋ก,Java EE
์์๋ WAR or OSGI or Module agent๋ก ๋ฐฐํฌ๋ ์ ์๋ค
Last updated
Was this helpful?