12. Administering Kafka
12.11 Operational quick reference
DAILY HEALTH SWEEP — no --topic; scans the whole cluster.
kafka-topics.sh --bootstrap-server $B --describe --unavailable-partitions
kafka-topics.sh --bootstrap-server $B --describe --under-min-isr-partitions
kafka-topics.sh --bootstrap-server $B --describe --at-min-isr-partitions
kafka-topics.sh --bootstrap-server $B --describe --under-replicated-partitions
kafka-consumer-groups.sh --bootstrap-server $B --list (then --describe)AFTER EVERY ROLLING RESTART
kafka-leader-election.sh --bootstrap-server $B \
--election-type PREFERRED --all-topic-partitions
(or rely on auto.leader.rebalance.enable / Cruise Control)SAFE OFFSET RESET
- STOP all consumers in the group
--reset-offsets --to-current --dry-run > offsets.csv(EXPORT)cp offsets.csv offsets.csv.bak(BACKUP)- edit
offsets.csv --reset-offsets --from-file offsets.csv --execute- START consumers
SAFE PARTITION REASSIGNMENT
- (optional) move leadership OFF the source broker — bounce it, with auto-rebalance temporarily disabled
--topics-to-move-json-file topics.json --broker-list X,Y --generate- SAVE BOTH outputs:
revert-*.jsonANDexpand-*.json --reassignment-json-file expand-*.json --execute --throttle <B/s>--reassignment-json-file expand-*.json --verify(repeat until done)- preferred leader election to rebalance leadership
ROLLBACK: --reassignment-json-file revert-*.json --execute · ABORT: --cancel (⚠ reverts to prior set; order not guaranteed)
ESCALATION ORDER FOR UNSAFE OPS — each step riskier than the last.
- Dynamic config (
kafka-configs.sh) — e.g. flipunclean.leader.election.enableto unstick, THEN FLIP IT BACK - Preferred / unclean leader election (
kafka-leader-election.sh) - Force controller move: delete
/admin/controllerznode - Unstick deletion: delete
/admin/delete_topic/<topic>znode - Manual topic deletion: FULL CLUSTER SHUTDOWN + ZK edit + disk edit
The chapter's own closing advice
"As you begin to scale your Kafka clusters larger, EVEN THE USE OF THESE TOOLS MAY BECOME ARDUOUS AND DIFFICULT TO MANAGE. IT IS HIGHLY RECOMMENDED TO ENGAGE WITH THE OPEN SOURCE KAFKA COMMUNITY and take advantage of the many other open source projects in the ecosystem TO HELP AUTOMATE many of the tasks outlined in this chapter."