landoop/kafka-connect-ui

By landoop

Updated almost 6 years ago

Web based UI for Kafka Connect.

Image
20

1M+

Kafka Connect UI

This is a small docker image for Landoop's kafka-connect-ui. It serves the kafka-connect-ui from port 8000 by default. A live version can be found at https://kafka-connect-ui.demo.lenses.io

The software is stateless and the only necessary option is your Kafka Connect URL:

docker run --rm -it -p 8000:8000 \
           -e "CONNECT_URL=http://connect.distributed.url" \
           landoop/kafka-connect-ui

Visit http://localhost:8000 to see the UI.

The CONNECT_URL can be a comma separated array of Connect worker endpoints. E.g: "CONNECT_URL=http://connect.1.url,http://connect.2.url"

Additionally you can assign custom names to your Connect clusters by appending a semicolon and the cluster name after the endpoint URL. E.g: "CONNECT_URL=http://connect.1.url;dev cluster,http://connect.2.url;production cluster".

Important: For the CONNECT_URL you have to use an IP address or a domain that can be resolved to it. You can't uselocalhost even if you serve Connect's REST port from your localhost. The reason for this is that a docker container has its own network, so your localhost is different from the container's localhost. As an example, if you are in your home network and have an IP address of 192.168.5.65 and run Connect from your computer, instead of http://127.0.1:8083 you must use http://192.168.5.65:8083.

Configuration options

Kafka Connect UI

The only option for the UI, is the URL(s) of your Connect cluster(s).

  • CONNECT_URL=[connect.cluster.1.url;name],...

    As an example, if you have a connect cluster at http://10.0.0.1:8083 and you want to name dev cluster you would set:

    -e "CONNECT_URL=http://10.0.0.1:8083,dev cluster"
    

Docker Options

  • PROXY=[true|false]

    Whether to proxy Connect endpoints via the internal webserver. This option is by default set to true as older versions of Connect do not support CORS, so there isn't another way to make the UI work. If you have a recent Connect (0.11 or 1.0) and permit CORS, you can disable the proxying feature.

  • PROXY_SKIP_VERIFY=[true|false]

    Whether to accept self-signed certificates when proxying Connect via https.

  • PORT=[PORT]

    The port number to use for kafka-connect-ui. The default is 8000. Usually the main reason for using this is when you run the container with --net=host, where you can't use docker's publish flag (-p HOST_PORT:8000).

  • CADDY_OPTIONS=[OPTIONS]

    The webserver that powers the image is Caddy. Via this variable you can add options that will be appended to its configuration (Caddyfile). Variables than span multiple lines are supported.

    As an example, you can set Caddy to not apply timeouts via:

    -e "CADDY_OPTIONS=timeouts none"
    

    Or you can set basic authentication via:

    -e "CADDY_OPTIONS=basicauth / [USER] [PASS]"
    

Kafka Connect Configuration

If you don't wish to proxy Connect's REST api, you should permit CORS via setting access.control.allow.methods=GET,POST,PUT,DELETE,OPTIONS and access.control.allow.origin=*.

Logging

In the latest iterations, the container will print informational messages during startup at stderr and web server logs at stdout. This way you may sent the logs (stdout) to your favorite log management solution.

Docker Pull Command

docker pull landoop/kafka-connect-ui