{"id":13783673,"url":"https://github.com/airbnb/kafkat","last_synced_at":"2025-09-04T17:13:42.737Z","repository":{"id":19714706,"uuid":"22970217","full_name":"airbnb/kafkat","owner":"airbnb","description":"KafkaT-ool","archived":false,"fork":false,"pushed_at":"2019-06-01T03:39:38.000Z","size":100,"stargazers_count":505,"open_issues_count":15,"forks_count":82,"subscribers_count":249,"default_branch":"master","last_synced_at":"2025-04-16T05:34:11.221Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/airbnb.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-08-14T22:09:39.000Z","updated_at":"2025-02-18T08:54:16.000Z","dependencies_parsed_at":"2022-08-24T10:52:20.144Z","dependency_job_id":null,"html_url":"https://github.com/airbnb/kafkat","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airbnb%2Fkafkat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airbnb%2Fkafkat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airbnb%2Fkafkat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/airbnb%2Fkafkat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/airbnb","download_url":"https://codeload.github.com/airbnb/kafkat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253621053,"owners_count":21937469,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T19:00:28.174Z","updated_at":"2025-05-11T19:31:23.699Z","avatar_url":"https://github.com/airbnb.png","language":"Ruby","readme":"[![Build Status](https://travis-ci.org/airbnb/kafkat.png?branch=master)](https://travis-ci.org/airbnb/kafkat)\n\nkafkat\n======\n\nSimplified command-line administration for Kafka brokers.\n\n## Contact \n**Let us know!** If you fork this, or if you use it, or if it helps in anyway, we'd love to hear from you! opensource@airbnb.com\n\n## License \u0026 Attributions\nThis project is released under the Apache License Version 2.0 (APLv2).\n\n## How to release\n\n- update the version number in `lib/kafkat/version.rb`\n- execute `bundle exec rake release`\n\n\n## Usage\n\n* Install the gem.\n\n```\ngem install kafkat\n```\n\n* Create a new configuration file to match your deployment.\n\n```\n{\n  \"kafka_path\": \"/srv/kafka/kafka_2.10-0.8.1.1\",\n  \"log_path\": \"/mnt/kafka-logs\",\n  \"zk_path\": \"zk0.foo.ca:2181,zk1.foo.ca:2181,zk2.foo.ca:2181/kafka\"\n}\n```\n\nKafkat searches for this file in two places, `~/.kafkatcfg` and `/etc/kafkatcfg`.\n\n* At any time, you can run `kafkat` to get a list of available commands and their arguments.\n\n```\n$ kafkat\nkafkat 0.0.10: Simplified command-line administration for Kafka brokers\nusage: kafkat [command] [options]\n\nHere's a list of supported commands:\n\n  brokers                                                             Print available brokers from Zookeeper.\n  clean-indexes                                                       Delete untruncated Kafka log indexes from the filesystem.\n  controller                                                          Print the current controller.\n  elect-leaders [topic]                                               Begin election of the preferred leaders.\n  partitions [topic]                                                  Print partitions by topic.\n  partitions [topic] --under-replicated                               Print partitions by topic (only under-replicated).\n  partitions [topic] --unavailable                                    Print partitions by topic (only unavailable).\n  reassign [topic] [--brokers \u003cids\u003e] [--replicas \u003cn\u003e]                 Begin reassignment of partitions.\n  resign-rewrite \u003cbroker id\u003e                                          Forcibly rewrite leaderships to exclude a broker.\n  resign-rewrite \u003cbroker id\u003e --force                                  Same as above but proceed if there are no available ISRs.\n  set-replication-factor [topic] [--newrf \u003cn\u003e] [--brokers id[,id]]    Set the replication factor of\n  shutdown \u003cbroker id\u003e                                                Gracefully remove leaderships from a broker (requires JMX).\n  topics                                                              Print all topics.\n  drain \u003cbroker id\u003e [--topic \u003ct\u003e] [--brokers \u003cids\u003e]                   Reassign partitions from a specific broker to other brokers.\n  \n```\n\n## Important Note\n\nThe gem needs read/write access to the Kafka log directory for some operations (clean indexes).\n\n\n","funding_links":[],"categories":["Operations","Data Ingestion"],"sub_categories":["Tools"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fairbnb%2Fkafkat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fairbnb%2Fkafkat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fairbnb%2Fkafkat/lists"}