본문 바로가기
Framework/MQ

ActiveMQ 모니터링(hawtio + jolokia)

by Tomining 2015. 7. 31.
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

정상적으로 구동되었다면, 위 처럼 로그를 확인 할 수 있다.

참고사이트





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 설정을 하면 끝. 위 화면과 동일한 화면을 확인 할 수 있다.

참고사이트




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