explaingit

yahoo/cmak

11,933ScalaAudience · ops devopsComplexity · 3/5Setup · moderate

TLDR

CMAK is a browser-based tool from Yahoo for managing Apache Kafka clusters, view broker health, create and configure topics, monitor consumer lag, reassign partitions, and rebalance load across brokers.

Mindmap

mindmap
  root((CMAK))
    What it does
      Kafka cluster management
      Topic control
      Consumer monitoring
    Features
      Partition rebalance
      LDAP authentication
      JMX metrics
      Multi-cluster view
    Tech Stack
      Scala
      Play Framework
      Docker
    Setup
      ZooKeeper required
      Web interface
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Monitor Apache Kafka cluster health from a browser, see broker status, topic layout, and consumer message lag in one view.

USE CASE 2

Create, delete, or reconfigure Kafka topics and reassign partitions across brokers without touching the command line.

USE CASE 3

Set up LDAP-based access control so your company's existing user accounts control who can manage the Kafka cluster.

USE CASE 4

Enable JMX polling to pull live performance metrics directly from Kafka brokers into the management interface.

Tech stack

ScalaPlay FrameworkDockerZooKeeper

Getting it running

Difficulty · moderate Time to first run · 1h+

Requires a running ZooKeeper instance, works with older Kafka setups that use ZooKeeper for coordination.

In plain English

CMAK, which stands for Cluster Manager for Apache Kafka, is a web-based tool originally created by Yahoo for managing Kafka installations. Kafka is a system used by many companies to move large volumes of data between software services in real time. CMAK gives operators a browser-based interface for keeping an eye on and adjusting how that system is configured. From the web interface, you can connect to one or more Kafka clusters and see their current state: which brokers are running, how topics are laid out, which consumers are reading what data, and whether messages are piling up or flowing smoothly. The tool lets you create and delete topics, add partitions to existing ones, change topic settings, and reassign which brokers are responsible for which data. It also has options to run partition rebalancing operations, which help distribute load more evenly across the cluster. For teams that need to lock down access, CMAK supports basic authentication and can connect to a company's LDAP directory so that existing user accounts and groups control who can log in and what they can do. Optional JMX polling lets the tool pull performance metrics directly from the Kafka brokers, giving operators more visibility into how the system is behaving under load. Setting it up requires pointing the tool at a ZooKeeper instance (a coordination service that older Kafka versions depend on) and optionally adjusting thread pool and queue size settings for larger clusters. The application is built on the Play web framework and can be packaged into a zip file for deployment on a server, or run via Docker. The name changed from Kafka Manager to CMAK in 2020 after a request from the Apache Software Foundation regarding trademark use.

Copy-paste prompts

Prompt 1
I have a Kafka cluster with ZooKeeper. Walk me through deploying CMAK via Docker and connecting it to my cluster so I can see topic and broker status in the browser.
Prompt 2
Using CMAK, how do I reassign partitions across Kafka brokers to rebalance load? Walk me through the steps in the web interface.
Prompt 3
How do I configure CMAK to authenticate against my company's LDAP directory so only authorized users can manage the Kafka cluster?
Prompt 4
I want to enable JMX polling in CMAK to see live performance metrics from my Kafka brokers, what configuration changes are needed?
Open on GitHub → Explain another repo

← yahoo on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.