ActiveMQ 를 사용 하다보면 모니터링이 필요할 때가 있다.
내부의 Queue 상태들은 어떤지, Camel 을 사용했다면 어떤 식으로 사용되고 있는지. MQ resource 들의 상태는 어떠한지.
jconsole 로 간단히 확인해 볼 수도 있지만, UI 도 투박하고 지원되는 기능이 제한적이다.
그래서 Monitoring Tool 이 있는지 찾아보다가 Hawtio 를 접하게 되었다.
Connect Menu 를 통해서 아래와 같은 화면에 jolokia 접속정보를 저장하고 접속하면 아래와 같은 메뉴가 나타난다.
ActiveMQ, Camel, JMX, Thread 상세 정보도 확인할 수 있으며, Dashboard 를 통해서 MQ 가 설치된 장비의 resource 상태도 확인할 수 있다.
Hawtio(HTML5 기반의 모니터링 콘솔) 과 Jolokia(JSON 기반의 JMX Agent) 를 연동하는 방법을 소개하고자 한다.
순서는 상관없다. 단, ActiveMQ 를 모니터링 하려면 둘 다 설치되어야 한다.
먼저 jolokia 를 먼저 설치해보자.
현재 최신버전은 1.3.1 버전이다.(at 2015/07/31)
많은 버전이 있는데, JMX Agent 이므로, ActiveMQ 가 설치된 장비에 설치될 것이다.
해당 장비에서 Web Container 즉, Tomcat 같은 Web 서비스가 구동된다면?
WAR-agent 를 받아서 설치하면 간편하다.
# WAR-Agent
1. WAR 를 다운로드 받은 뒤, $CATALINA_BASE/webapps 에 위치해 둔다.
2. server.xml 에 아래 두 가지 옵션을 true 설정한다.
- unpackWARs=true
- autoDeploy=true
3. context 를 설정
- <Context path=“/jolokia" debug="0" privileged="true" docBase=“jolokia-war-1.3.1.war" />
|
설정 후 tomcat 을 구동하면 된다.
http://localhost:8080/jolokia/version 를 웹브라우저에서 호출해보묜 아래와 같이 버전정보를 확인할 수 있다.
{"timestamp":1438322043,"status":200,"request":{"type":"version"},"value":{"protocol":"7.2","config":{"maxDepth":"15","maxCollectionSize":"0","maxObjects":"0","discoveryEnabled":"true","agentContext":"\/jolokia","historyMaxEntries":"10","agentId":”127.0.0.1.185-20188-39eb1548-jvm","agentType":"jvm","debug":"false","debugMaxEntries":"100"},"agent":"1.3.1","info":{"product":"activemq","vendor":"Apache","version":"5.9.1"}}}
|
만약 Tomcat 같은 Web Container 가 없다면?
JVM-agent 를 설치하면 된다. 다운로드 받고 바로 실행할 수 있다.
#!/bin/sh
.. ..
PID=` ps -ef | grep java | grep "$DAEMON_NAME " | awk '{print $2}' `
echo " +$PID"
java -jar ..... /jolokia-jvm-1 .3.1-agent.jar start $PID --port=$MONITOR_PORT --host=$BIND_ADDR |
Local에서 jolokia 를 호출해 볼 것이기 때문에, --host 값은 0.0.0.0 으로 설정한다.
PID 값은 모니터링하고자 하는 Deamon 이라고 생각하면 된다. ActiveMQ 를 모니터링하고자 한다면, JPS 를 통해서 PID 값을 확인할 수 있다.
# -- log # +19102 # Started Jolokia for PID 19102 |
정상적으로 구동되었다면, 위 처럼 로그를 확인 할 수 있다.
참고사이트
- https://jolokia.org
- https://jolokia.org/reference/html/agents.html
- http://ddakker.tistory.com/341
- http://jolokia.963608.n3.nabble.com/Not-able-to-connect-to-Jolokia-URL-when-using-JVM-Agent-Jolokia-1-1-2-td4024118.html
hawtio 를 설치해보자.
현재 최신버전은 1.4.52이다.(at 2015/07/31)
많은 설치방법이 있지만, executable jar 나 Servlet Engine 을 통해서 구동해 보자.
Executable Jar 를 이용 해 보자.
java -jar hawtio-app-1.4.52.jar --port 8090
|
기타 옵션들은 --help 를 통해서 참고하면 된다.
이렇게 하면 hawtio 화면을 확인할 수 있다.
http://localhost:8090/hawtio 로 접속한 뒤, 상단에 Connect 메뉴를 클릭하면 아래와 같이 접속정보를 입력할 수 있다.
이는 위에서 설치한 jolokia 를 접속할 수 있는 정보를 입력해야 한다.
(아직 username 과 password 를 설정하지 않았기 때문에 입력하지 않아도 된다. 추후 설정해보자)
접속 정보를 기입하고 Connect 를 하면, 아래와 같은 정보를 확인할 수 있다.
ActiveMQ/Camel/JMX 정보를 확인 할 수 있다. 각 항목을 클릭하면 좀 더 상세한 정보를 확인할 수 있다.
|
|
|
Application Server 를 이용 해 보자.
jolokia 를 Tomcat 이용하여 구동하는 방법과 유사하다.
war 파일을 다운로드 받아서, $CATALINA_BASE/webapps 하위에 위치하면 된다.
그리고 server.xml 에 Context 설정을 하면 끝. 위 화면과 동일한 화면을 확인 할 수 있다.
참고사이트
- http://hawt.io/
- http://opennaru.tistory.com/48
- http://blog.daum.net/_blog/BlogTypeView.do?blogid=0r2Gf&articleno=6&categoryId=5®dt=20150116190752
ActiveMQ, Camel 그리고 JMX 를 모니터링 할 수 있고, 각 설정들도 변경하여 바로 반영할 수도 있다.
따라서 해당 화면에 접근할 수 있는 인증이 필요할 수 있는데, 이 또한 설정할 수 있다.
계정 및 권한을 만들어 적용하는 방법과 JSON 기반의 REST API 지원하는 인증시스템이면 연동 또한 가능하다.
추후에 자세히 알아보도록 하자.
'Framework > MQ' 카테고리의 다른 글
초간단 Hawtio Tomcat Security 설정하기 (0) | 2015.08.20 |
---|---|
Kafka 블로그 정리 (0) | 2015.05.20 |
RabbitMQ 참고 사이트 (0) | 2015.03.10 |