최근 운영하고 있던 카프카 매니저를 최신 버전으로 업그레이드를 진행하였고, 이번 글에는 카프카 매니저에 대해 공유하고자 합니다. 카프카에 대한 예전 글들도 있으니 필요하신 분들은 참고하시면 좋을 것 같습니다.
아마도 대부분의 많은 사용자들이 카프카를 설치하고 나서, 제일 먼저 당황해하는 점이 바로 카프카 관리 툴의 부재일 것입니다. 다른 메시징 큐 시스템인 AMQP기반의 RabbitMQ의 경우 간단하게 추가 플러그인만 설치하면, 웹 UI가 반겨주고 있어 클러스터 상태를 한눈에 알아볼 수 있고, 시각적으로 뭔가 확인할 수 있어 기분이 좋습니다.
하지만 카프카는 CLI를 이용한 명령어만 제공하고 있어, 시각적으로 볼 수 있는 게 없기 때문에 뭔가 답답합니다. 설치는 잘 된 것인지 토픽 상태는 어떤지 등등.. 물론 Confulent사의 엔터프라이즈 버전을 이용하면 관리 툴까지 제공되고 있어 매우 편리하게 운영할 수 있습니다.
하지만 아파치 카프카를 사용하고 있고, 관리의 어려움을 겪고 있는 분들에게 말씀드리고 싶은 툴이 바로 카프카 매니저라는 툴입니다. 해당 툴은 야후에서 오픈소스로 공개하여, 깃허브 페이지(https://github.com/yahoo/kafka-manager)에서 다운로드하여 설치할 수 있습니다. 인기도를 가늠할 수 있는 스타수가 5,000이 넘어 어느 정도의 인기도 가늠할 수 있습니다.
여러 개의 클러스터를 등록 및 관리
클러스터 상태를 쉽게 확인
파티션 리발란스
토픽 생성 & 삭제
토픽 리스트
파티션 추가
토픽 설정 업데이트
위와 같은 기능들은 모두 CLI로 할 수 있는 기능들이고, 오히려 CLI로 카프카 운영과 관련된 더욱 많은 내용들을 다룰 수 있습니다. 하지만 카프카 운영 업무를 하면서 자주 사용하게 되는 토픽 생성이나 토픽 옵션 변경 등의 기능들이 카프카 매니저에 포함되어 있어, 관리자에게 도움이 많이 되는 툴이고, 개인적인 생각으로는 카프카 운영 시 필수로 동반되어야 하는 툴이라고 할 수 있습니다.
또한 하나의 카프카 매니저로 여러 개의 클러스터를 등록하여 관리할 수 있는 점도 큰 장점 중의 하나라고 생각됩니다. 다음 그림은 참고 예제를 위한 카프카 매니저 메인 화면입니다.
좌측의 Active는 등록한 클러스터 이름과 리스트를 보여주며, 가운데의 Operations를 통해 정보 수정 또는 상태 disable 등을 할 수 있고, 가장 우측에 있는 Version을 이용하여 클러스터의 버전을 확인할 수 있습니다. 다음 화면은 아마도 가장 많이 사용하게 될 토픽 생성 화면입니다.
토픽 이름과 파티션 수 리플리케이션 팩터를 정의하고 손쉽게 토픽을 생성할 수 있습니다. 그 외에도 토픽을 생성하면서 추가 옵션 등도 설정하여 토픽을 생성할 수 있습니다.
카프카 매니저는 위에서 예제로 보여드린 화면 외에도 많은 기능들을 포함하고 있고, 웹 UI로 카프카를 관리할 수 있어 매우 편리하고, 실제로 카프카를 운영하는데 매우 도움이 되는 툴입니다. 만약 카프카 매니저를 아직 사용하지 않으시거나 CLI로 카프카 관리에 어려움을 겪고 있다면 해당 툴을 사용해보기를 적극 추천합니다.