in ,

tchiotludo / kafkahq, Hacker News

tchiotludo / kafkahq, Hacker News


                    

        

Last VersionLicenseDocker Pull**********Github DownloadsDocker PullGithub DownloadsGithub DownloadsGithub StartGithub DownloadsBuild StatusBuild Status

Kafka GUI for topics, topics data, consumers group, schema registry, connect and more …

********

Github StartDocker PullGithub Downloads****************

    General

  • Github DownloadsWorks with modern Kafka cluster (1.0 )

Connection on standard or ssl, sasl cluster

Multi clusterGithub DownloadsDocker Pull************************************************** (Topics) Github Downloads************** (List) Configurations viewPartitions viewGithub DownloadsACLS viewConsumers groups assignments view************************Node leader & assignments view Create a topic Configure a topic Delete a topic (************************************Docker Pull************************************************** (Browse Topic datas) Github Downloads************** (View data, offset, key, timestamp & headers)

  • Automatic deserializarion of avro message encoded with schema registry Configurations viewLogs viewDelete a record (******************************** Sort viewGithub DownloadsFilter per partitions Filter with a starting time Filter data with a search string (************************************Docker Pull************************************************** (Consumer Groups) (only with kafka internal storage, not with old Zookepper)Github Downloads**************** (List with lag, topics assignments

    Partitions view & lag************************ACLS viewNode leader & assignments view Display active and pending consumers groups**************************Delete a consumer group************************Update consumer group offsets to start / end / timestampDocker Pull************************************************** (Schema Registry) Github Downloads************** (List schema) Create / Update / Delete a schema View and delete individual schema version (************************************Docker Pull************************************************** (Connect) Github Downloads************** (List connect definitionCreate / Update / Delete a definition Pause / Resume / Restart a definition or a taskDocker Pull************************************************** (Nodes) Github Downloads************** (List) Configurations viewLogs viewConfigure a node (************************************Docker Pull************************************************** (ACLS) Github Downloads************** (List principals) List principals topic & group acls (************************************Docker Pull************************************************** (Authentification and Roles) Github Downloads**************** (Read only mode)

  • BasicHttp with roles per user User groups configuration Filter topics with regexp for current groups Ldap configuration to match KafkaHQ groups / roles (************************************Docker Pull************************Docker Pull**************

    Github Start

  • Quick previewGithub Downloads************** (Download) docker-compose.ymlfilerunGithub Downloads************************** docker-compose pull to be sure to have the last version of KafkaHQ

  • runGithub Downloads************************** docker-compose up **************************************
  • go to (http: // localhost:
  • It will start a Kafka node. , a Zookeeper node, a Schema Registry, a Connect, fill with some sample data, start a consumer group and a kafka stream & start KafkaHQ.Build Status

    ************************************Github Downloads

    Installation

    First you need a

    configuration files

    in order to configure KafkaHQ connections to Kafka Brokers.

    ************************ (Docker) ****************************

    docker run -d     -p 8877: 40637     -v /tmp/application.yml:/app/application.yml     tchiotludo / kafkahq

    Github Downloads************** (With)  - v /tmp/application.ymlmust be an absolute path to configuration fileGo toGithub Downloads**************************** (http: // localhost:(************************************Docker Pull********************************  (**************************(Stand Alone) Github Downloads************** (Install Java) ************************************************************************************************************************************************************************************************************************
  • Download the latest jar on (release page) Create an (configuration files
  • Launch the application withjava -Dmicronaut.config.files=/ path / to / application.yml -jar kafkahq.jar (***********************************Go toGithub Downloads**************************** (http: // localhost:(************************************Docker Pull**************Github Downloads********************************Configuration

    Configuration file can by default be provided in either Java properties, YAML, JSON or Groovy files. YML Configuration file example can be found here: application.example.ymlBuild Status

    is a key value configuration with:Github Downloads**************** (key) : must be an url friendly (letter, number, _, -, ... dot are not allowed here) string the identify your cluster ( my-cluster-1and (my-cluster-2) is the example above) ********************************** (properties) **************************************: all the configurations found on Kafka consumer documentation. Most important is bootstrap.serversthat is a list of host: port of your Kafka brokers.********************************** (schema-registry******************: (optional) (********************************Github Downloads****************: the schema registry url ********************************** (basic-auth-usernameBuild Status********************: schema registry basic auth username********************************** (basic-auth-password) **************************************: schema registry basic auth passwordDocker Pull********************************************************** (connect) **************************************: (optional) (********************************Github Downloads****************: connect url********************************** (basic-auth-usernameBuild Status********************: connect basic auth username********************************** (basic-auth-password) **************************************: connect basic auth password********************************** ssl-trust-store (**************************************: /app/truststore.jks********************************** ssl-trust-store-password (**************************************: trust-store-password
  • ********************************** (ssl-key-store
    ********************: /app/truststore.jks********************************** (ssl-key-store-password) **************************************: key-store-password
  • Docker Pull************************Docker Pull************************Docker Pull**********************************************
    **************************************number of topics per page (default:
  • Github Downloads******************Docker Pull**********************************************Docker Pull****************************Topic ListGithub Downloads****************is default list view (ALL, HIDE_INTERNAL, HIDE_INTERNAL_STREAM, HIDE_STREAM)********************************** kafkahq.topic.internal-regexps **************************************** is a list of regexp to be considered as internal (internal topic can't be deleted or updated)********************************** kafkahq.topic.stream-regexps ************************************ is a list of regexp to be considered as an internal stream topic ********************************** kafkahq.topic.skip-consumer-groups disable loading of consumer group information when showing topics ( (true) , default is to load the informationDocker Pull**********************************************Github Downloads**********************************Topic creation default values ​​

    These parameters are the default values ​​used in the topic creation page.Build StatusGithub Downloads****************Default retention in ms

  • ********************************** (kafkahq.topic.replication) ************************************** Default number of replica to use********************************** kafkahq.topic.partition (Default number of partition

    Docker Pull**********************************************Github Downloads**********************

  • (Topic Data) Github Downloads****************: default sort order (OLDEST, NEWEST) (default: OLDEST)Docker Pull****************************************************** kafkahq.topic-data.size (**************************************: max record per page (default:Build Status) ********************************** (kafkahq.topic-data.poll-timeout) ****************************************: The time, in milliseconds, spent waiting in poll if data is not available in the buffer (default:).Docker Pull********************************

    : Roles available for all the user even unlogged user, roles available are:Github Downloads****************
  • topic / insert
  • topic / delete
  • topic / config / update
  • ********************************** (node ​​/ read) **************************************
  • ********************************** node / config / update
  • topic / data / read
  • topic / data / insert
  • topic / data / delete
  • ********************************** (group / read) **************************************
  • ********************************** (group / delete) **************************************
  • ********************************** (group / offsets / update) **************************************
  • ********************************** (acls / read) **************************************
  • ********************************** (registry / read) **************************************
  • ********************************** (registry / insert******************
  • ********************************** (registry / update******************
  • ********************************** (registry / delete) **************************************
  • ********************************** registry / version / delete
  • Docker Pull************************

    By default, security & roles. is enabled by default but anonymous user have full access. You can completely disabled security withmicronaut.security.enabled: false

    If you need a read-only application, simply add this to your configuration files:

    (kafkahq) ************************************************************:    (security) ************************************************************:      (default-roles) ************************************************************:       - topic / read      - (node ​​/ read)       - (topic / data / read       - (group / read)       - (registry / read)       - (connect / read) ************************************************************ (************************************************

    ************************Github Downloads******** (Auth) ********************************************************** (************************************************************

    **********************Groups

    **********************************************

    Groups allow you to limit userBuild Status

    Define groups with specific roles for your usersBuild StatusGithub Downloads****************: Groups list definitionGithub Downloads****************

    with all right********************************** (reader) **************************************** (with only read acces on all KafkaHQDocker Pull (**************************Docker Pull******************************Github Downloads****************: List user & password with affected rolesGithub Downloads****************: Login of the current user as a yaml key (may be anything email, login, ...)Github Downloads**************** (password) : Password in sha (**************************************************************************************************************************************************************************************, can be converted with command echo -n "password" | sha (sum) ***************************************

  • ******************************** (groups) **************************************: Groups for current user
  • Docker Pull************************Docker Pull************************Docker Pull

    Take care that basic auth will use session store in servermemory

  • If your instance is behind a reverse proxy or a loadbalancer, you will need to forward the session cookie namedand / or use sesssion stickiness
    (******************************************************************** () **************************

    Configure how the ldap groups will be matched in KafkaHQ groupsBuild StatusGithub Downloads****************: Ldap groups listGithub Downloads****************: Ldap group name (same name as in ldap)Github Downloads****************: KafkaHQ group list to be used for current ldap group

  • Docker Pull************************Docker Pull************************

    Example using online ldap test server

    Configure ldap connection in micronautBuild Status

    (micronaut) ************************************************************:    (security) ************************************************************:      (ldap) **************************************************************:        (default) ************************************************************:          (enabled) ************************************************************: (true)          (context) ************************************************************:            (server) ************************************************************:' ldap: //ldap.forumsys.com: (******************************************** '           (managerDn) ************************************************************:' cn=read-only-admin, dc=example, dc=com (') **************************************************************            (managerPassword) ************************************************************:' (password) **********************************************************Docker Pull******************************************** ()          (search) ************************************************************:            (base) ************************************************************:" (dc=example, dc=com
    **************************************

             (groups) ************************************************************:            (enabled) ************************************************************: (true)            (base) ************************************************************:" (dc=example, dc=com
    **************************************

    Configure KafkaHQ groups and Ldap groupsBuild Status

    (kafkahq) ************************************************************:    (security) ************************************************************:      (groups) ************************************************************:        (topic-reader) *************************************************************: (**************************************************************** (#) ************************************************************ (Group name) ************************************************************          (roles) ************************************************************:#           (topics-filter-regexp) ************************************************************: " (test) **********************************************************License. reader. ***********************************       topic-writer (**************************************************************:          (roles) ************************************************************:           - topic / read          - topic / insert          - topic / delete

              - topic / config / update

             (attributes) **********************************************************:            (topics-filter-regexp) ************************************************************: " test. *

         (ldap) **************************************************************:        (group) ************************************************************:          (mathematicians) *************************************************************:            (groups) ************************************************************:             - (topic-reader)          (scientists) ************************************************************:            (groups) ************************************************************:             - (topic-reader)             - (topic-writer) ************************************************************ (************************************************Build StatusServer: if behind a reverse proxy, path to kafkahq with trailing slash (optional). Example: kafkahq is behind a reverse proxy with url http: // my-server / kafkahq, set base-path: "/ kafkahq /". Not needed if you're behind a reverse proxy with subdomain (http: //kafkahq.my-server/(************************************Docker Pull********************************Github Downloads**********************************Github Downloads****************is available . (************************************Docker Pull********************************Github Downloads********************************Micronaut configurationBuild Status

    Since KafkaHQ is based on (Micronaut) , you can customize configurations (server port, ssl, ...) with. More information can be found on (Micronaut documentation)Build Status

    (**************************Docker Pull**************************Docker

    KafkaHQ docker image support 3 environment variables to handle configuraiton:Build StatusGithub Downloads****************: a string that contains the full configuration in yml that will be written on /app/configuration.yml on container. ********************************** (MICRONAUT_APPLICATION_JSON) ************************************: a string that contains the full configuration in JSON format ********************************** (MICRONAUT_CONFIG_FILES) **********************************: a path to a configuration file on container. Default path is / app / application.yml (***********************************Docker Pull**********************************************License**************Docker Pull**********************************How to mount configuration file

    Take care when you mount configuration files to not remove kafkahq files located on / app. You need to explicitely mount the / app / application.ymland not mount the / app directory. This will remove the KafkaHQ binnaries and give you this error:/usr/local/bin/docker-entrypoint.sh: 9: exec: ./kafkahq: not foundGithub Downloads

    (volumeMounts) ************************************************************: - (mountPath) ************************************************************: **************************************************** (/ app / application.yml)    (subPath) **************************************************************: the application.yml

       (name) ************************************************************: config   (readOnly) ************************************************************: (true)

    **********************************************************************************Github Downloads**********************************

    Several monitoring endpoint is enabled by default. You can disabled it or restrict access only for authenticated users following micronaut configuration below.Github StartGithub Downloads****************

    / health
    (Health Endpoint) ******************************************** / loggers Loggers Endpoint / metrics
    (Metrics Endpoint) ******************************************** / prometheusPrometheus EndpointDocker Pull**************Development Environment********************

    Early dev image

    You can have access to last feature / bug fix with docker dev image automatically build on tag (dev)Build Status

    docker pull tchiotludo / kafkahq: dev
    
    

    The dev jar is not publishing on GitHub, you have 2 solutions to have the (dev) jar:Github Start

    Get it from docker imageBuild Status

    docker pull tchiotludo / kafkahq: dev docker run --rm --name=kafkahq -it tchiotludo / kafkahq: dev docker cp kafkahq: /app/kafkahq.jar************************************ (**************************************************

    Or build it with a, the jar will be located here build / libs / kafkahq - *. jar(**************************************************************************************************************************************

    Github Downloads************

    Development Server

    A docker-compose is provide to start a development environnement. Just install docker & docker-compose, clone the repository and issue a simpleto start a dev server. Dev server is a java server & webpack-dev-server with live reload.Build Status

    ******************************************************************************************Build StatusWho's using KafkaHQGithub Downloads**************** Adeo

    ******************************************************************************************** (Auchan Retail******************************************************************************************** La Redoute

    ************************************************************************************** Leroy Merlin **************************************************************************************************************************************** (Nuxeo) ****************************************************************************************************************************** GetYourGuide (************************************Docker Pull**************Github Downloads

    Many thanks to:Github Start

    (****************************************************************************************

    (JetBrains) ******** for their free OpenSource license.Build Status

    ******************************************************************************************************Docker Pull******************************

    Apache 2.0 ©Build Status

       (************************************************************************************************************  (**************************************************************************************************************

    (**************************************************************************************************************** (Read More) ************************************************************************************************************** (****************************************************************************************************************