Using Confluent Control Center and KSQL Together

I normally don’t post “how to” posts here, and this will be part of Confluent Platform documentation soon, but wanted to share some hard won knowledge (especially so I can look it up in 2 weeks…).

The 5.0 release of Confluent Control Center includes a cool new feature: KSQL editor! I wanted to use it. I used Confluent Cloud cluster for Kafka brokers, and provisioned a GCP compute node to run KSQL and Control Center on.

KSQL GUI

Turns out that getting Control Center and KSQL combo to work in cloud environment, where there are external IPs and internal IPs is not trivial.

My colleague Robin wrote a blog post explaining the connectivity issue and solutions for Kafka and Docker, but similar dynamic also happens for Control Center, KSQL and GCP. In order to get this combination to work, you need to set 3 parameters in 2 config files.

In Control Center configuration:

  1. Set confluent.controlcenter.ksql.url to http://localhost:8088 (assuming KSQL and Control Center are on same machine, like I ran it)
  2. Set confluent.controlcenter.ksql.advertised.url to http://<public ip>:8088

In KSQL configuration: set listeners to http://0.0.0.0:8088

Good luck :)