Page MenuHomePhabricator

Deploy a kafka web UI for all internal clusters
Open, In Progress, MediumPublic

Description

Observing kafka (listing topics, consumer groups, etc) is done using the kafka command on kafka hosts. Few people are familiar with the tooling, which slows down incident response.

We'd like to be able to observe our kafka clusters using one available off-the-self 3rd party UIs, and make it available behind CAS login.

Details

Related Changes in Gerrit:
SubjectRepoBranchLines +/-
operations/dnsmaster+3 -3
operations/puppetproduction+0 -4
operations/puppetproduction+4 -0
operations/deployment-chartsmaster+0 -87
operations/deployment-chartsmaster+0 -3
operations/deployment-chartsmaster+87 -0
operations/deployment-chartsmaster+3 -0
operations/deployment-chartsmaster+1 -1
operations/dnsmaster+1 -3
operations/deployment-chartsmaster+3 -2
operations/deployment-chartsmaster+5 -0
operations/puppetproduction+5 -0
operations/puppetproduction+7 -0
operations/deployment-chartsmaster+82 -0
operations/deployment-chartsmaster+2 K -0
operations/deployment-chartsmaster+3 -0
operations/puppetproduction+4 -0
operations/dnsmaster+1 -0
operations/dnsmaster+4 -0
Show related patches Customize query in gerrit

Event Timeline

brouberol triaged this task as Medium priority.

Change #1297144 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/puppet@production] kubernetes/dse-k8s-eqiad: Define a kafka-ui kubeconfig

https://gerrit.wikimedia.org/r/1297144

Change #1297146 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/dns@master] Define the kafka-ui internal DNS records

https://gerrit.wikimedia.org/r/1297146

Change #1297148 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/dns@master] Define the kafka.w.o public record

https://gerrit.wikimedia.org/r/1297148

Change #1297150 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/deployment-charts@master] dse-k8s-eqiad: define the kafka-ui namespace

https://gerrit.wikimedia.org/r/1297150

Change #1297146 merged by Brouberol:

[operations/dns@master] Define the kafka-ui internal DNS records

https://gerrit.wikimedia.org/r/1297146

Change #1297148 merged by Brouberol:

[operations/dns@master] Define the kafka.w.o public record

https://gerrit.wikimedia.org/r/1297148

Change #1297150 merged by Brouberol:

[operations/deployment-charts@master] dse-k8s: define the kafka-ui namespace

https://gerrit.wikimedia.org/r/1297150

Change #1297144 merged by Brouberol:

[operations/puppet@production] kubernetes/dse-k8s: Define a kafka-ui kubeconfig

https://gerrit.wikimedia.org/r/1297144

Change #1297563 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/puppet@production] idp: add the kafka-ui service

https://gerrit.wikimedia.org/r/1297563

Change #1297564 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/puppet@production] trafficserver: enable access to kafka.w.o

https://gerrit.wikimedia.org/r/1297564

Change #1297565 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/deployment-charts@master] Define the kafka-ui chart

https://gerrit.wikimedia.org/r/1297565

Change #1297566 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/deployment-charts@master] Define the kafka-ui multi-cluster helmfile

https://gerrit.wikimedia.org/r/1297566

Change #1297565 merged by jenkins-bot:

[operations/deployment-charts@master] Define the kafka-ui chart

https://gerrit.wikimedia.org/r/1297565

Change #1297566 merged by jenkins-bot:

[operations/deployment-charts@master] Define the kafka-ui multi-cluster helmfile

https://gerrit.wikimedia.org/r/1297566

Change #1297563 merged by Brouberol:

[operations/puppet@production] idp: add the kafka-ui service

https://gerrit.wikimedia.org/r/1297563

Change #1297564 merged by Brouberol:

[operations/puppet@production] trafficserver: enable access to kafka.w.o

https://gerrit.wikimedia.org/r/1297564

https://kafka.wikimedia.org has been deployed! I can't load the UI reliably due to some unrelated issues in drmrs having to do with piling VCLs.

@JMonton-WMF mentioned

Everything looks good on the UI, I can see and filter messages, topics, consumers...

About the read-only, I'd say it's fine:


- "Produce" button is disabled
- Settings on topics is disabled too
- "Add topic" button doesn't appear
- The buttons to clean or remove topics are disabled. 
- "Delete offsets" on a consumer group returns 405 This cluster is in read-only mode
- "Remove ACL" button is there, but it fails with "not authorized"
- Changing broker properties is there in the UI, but it fails with Cluster authorization

We can't list ACLs though, because kafka-ui is connecting to kafka over port 9092 w.o any authentication.

Change #1297775 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/deployment-charts@master] kafka-ui: connect to all kafka clusters

https://gerrit.wikimedia.org/r/1297775

Change #1297775 merged by Brouberol:

[operations/deployment-charts@master] kafka-ui: connect to all kafka clusters

https://gerrit.wikimedia.org/r/1297775

Actually, listing ACLs does work, it was just that there was none in kafka-test-eqiad.

Change #1298093 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/deployment-charts@master] kafka-ui: disable latest-available version check

https://gerrit.wikimedia.org/r/1298093

Change #1298093 merged by Brouberol:

[operations/deployment-charts@master] kafka-ui: disable latest-available version check

https://gerrit.wikimedia.org/r/1298093

@JMeybohm pointed out that the aux clusters might be a better fit than dse for this kind of workload. I'm going to redeploy it over there.

Change #1298262 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/dns@master] dse-k8s-aux: define internal kafka-ui disc and svc records

https://gerrit.wikimedia.org/r/1298262

Change #1298263 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/dns@master] Cleanup kafka-ui records pointing to the dse-k8s ingress

https://gerrit.wikimedia.org/r/1298263

Change #1298266 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/deployment-charts@master] aux-k8s: define the kafka-ui namespace in both clusters

https://gerrit.wikimedia.org/r/1298266

Change #1298267 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/deployment-charts@master] aux-k8s: define the kafka-ui helmfile and values

https://gerrit.wikimedia.org/r/1298267

Change #1298264 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/puppet@production] aux-k8s: define the kafka-ui kubeconfigs

https://gerrit.wikimedia.org/r/1298264

Change #1298268 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/deployment-charts@master] dse-k8s: remove the kafka-ui namespace

https://gerrit.wikimedia.org/r/1298268

Change #1298265 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/puppet@production] dse-k8s: remove kafka-ui kubeconfigs

https://gerrit.wikimedia.org/r/1298265

Change #1298269 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/deployment-charts@master] dse-k8s: remove the kafka-ui helmfile and values

https://gerrit.wikimedia.org/r/1298269

Change #1298283 had a related patch set uploaded (by Brouberol; author: Brouberol):

[operations/deployment-charts@master] CI: add aux-k8s-codfw to the list of environments

https://gerrit.wikimedia.org/r/1298283

Change #1298263 abandoned by Brouberol:

[operations/dns@master] Cleanup kafka-ui records pointing to the dse-k8s ingress

https://gerrit.wikimedia.org/r/1298263