RabbitMQ와 Apache Kafka 모두 운영하기 위한 monitoring feature를 제공한다. 각 MQ를 위한 monitoring tool을 통해 현재 사용 중인 메시징 시스템의 정보나 사용자 관리, 큐 관리 등을 쉽게 진행할 수 있다.
이 포스트에서는 RabbitMQ 와 Apache Kafka의 monitoring tool을 통한 기본 운영법에 대해 간략한 내용을 담는다.
먼저 RabbitMQ management feature를 통해 어떻게 관리할 수 있는지 알아보자.
RabbitMQ는 기본적으로 rabbitmqctl 이라는 command line tool 을 통해 노드의 상태 확인 및 관리할 수 있고, virtual host, 권한 설정도 진행할 수 있다.
RabbitMQ를 설치했으면, rabbitmqctl [commands] 를 통해 command를 수행할 수 있다.
rabbitmqctl status 를 통해 현재 RabbitMQ의 노드 상태를 터미널에서 확인할 수 있다.
위와 같이 rabbitmqctl을 사용하면 터미널에서 command 입력을 통해 RabbitMQ를 관리할 수 있다. 다음은 rabbitmqctl을 통해 사용할 수 있는 command 들 중 일부를 나타낸 것이다.
rabbitmqctl 은 터미널에서 사용하는 command line tool이라 관리자가 좀 더 쉽게 관리할 수 있도록 웹브라우저를 통해 관리할 수 있는 feature를 rabbitmq_management 플러그인을 통해 지원한다.
이를 사용하기 위해 RabbitMQ 설치 후 다음과 같이 management 플러그인을 설치하자. 플러그인 설치 후 RabbitMQ를 restart 해야 한다.
sudo rabbitmq-plugins enable rabbitmq_management
sudo service rabbitmq-server restart
그리고 다음과 같이 웹브라우저를 통해 사용자 계정으로 로그인하기 위해 다음과 같이 관리자 계정을 설정한다. guest 계정을 기본적으로 제공하기는 하지만 로그인을 하지는 못할 것이다. 따라서 일단은 rabbitmqctl command를 통해 관리자 계정을 추가한다.
sudo rabbitmqctl add_user dongho 1234
sudo rabbitmqctl set_user_tags dongho administrator
이렇게 관리자 계정 등록 후, 웹 브라우저로 접속하면 (디폴트는 http://servier_ip:15672) 로 접속하면 다음과 같은 화면이 나온다.
이 화면에서 아까 등록한 관리자 계정으로 로그인하면 다음과 같이 관리 페이지를 확인할 수 있을 것이다.
이 관리페이지를 살펴보면 현재 노드의 정보나 config, log path, 포트 번호를 확인할 수 있으며 다음과 같이 메시지 큐에 대한 정보도 확인할 수 있다.
이번에는 Apache Kafka를 통해 어떻게 monitoring을 할 수 있는지 알아보자.
먼저 다음과 같이 Apache Zookeeper 를 실행시켜야 한다.
zoo.cfg 를 보면 알겠지만 포트번호가 2181 로 되어 있다. Kafka를 monitoring 하기 위해 Yahoo Kafka Manager 를 사용할 것인데 이 때 zookeeper의 port 번호를 요구한다.
다음과 같이 kafka 및 kafka-manager를 실행시키자. kafka-manager를 빌드하는 방법은 kafka-manager의 github 페이지를 확인하도록 하자.
여기서는 다음과 같이 kafka 및 kafka-manager를 실행시켰다.
bin/kafka-server-start.sh -daemon config/server.properties
bin/kafka-manager -Dkafka-manager.zkhosts=localhost:2181 -Dconfig.file=conf/application.conf -Dhttp.port=8777
위와 같이 실행하고 localhost:8777 로 접속하면 다음과 같이 kafka manager page를 확인할 수 있을 것이다.
위의 메뉴에서 Add Cluster 를 통해 클러스터를 생성할 수 있다.
생성한 클러스터를 클릭해보면, broker나 topic, consumer 같은 정보를 확인하여 모니터링할 수 있도록 지원한다.