Multi cluster

A portal to monitor the health and performance across a number of Lenses’ deployments of Apache Kafka.

Download

Quickstart 

  1. Download, extract and run bin/lensesio-portal on a Linux 64bit machine.
  2. Access http://localhost:3000 and start adding workspaces.

By default, state is stored in a .db file as an embedded SQLite database.

Add workspaces 

  1. On the Lenses instance create a new group with read-only permissions and a service account.
  2. On the portal add a new workspace with the url, port, service account and token.

Production Multi-Cluster Kafka monitoring 

We recommend using a Postgres database for production deployments.

Create a DB lensesioportal and export the following environment variables before startup:

LENSES_DB_TYPE="postgress"
LENSES_DB_HOST="localhost"
LENSES_DB_PORT=5432
LENSES_DB_NAME="lensesioportal"
LENSES_DB_USERNAME="<db-username>"
LENSES_DB_PASSWORD="<db-password>"

For security, service account tokens can be encrypted when stored in the DB, either via local encryption, or using Vault.

Local secret encryption 

Pick an 32-bytes long key i.e. thisisasecretof32byteslengthsize encode it in base64 and export the following env variables:

LENSES_SECRETS_TYPE="local"
LENSES_SECRETS_SECRET="your-base64-encoded-key-of-length-32-bytes"

Hashicorp Vault secret encryption 

Use these parameters to enable Vault Transit secrets for the encryption of sensitive data:

LENSES_SECRETS_TYPE="vault"
LENSES_SECRETS_SECRET="<the-key-name-in-vault-transit-engine>"
LENSES_SECRETS_VAULT_HOST="<http://<your-vault-instance>"
LENSES_SECRETS_VAULT_TOKEN="<http://<your-vault-token>"

HTTP settings 

Following settings control the binding address, port and CORS options:

LENSES_HTTP_ADDRESS=":3000"
LENSES_HTTP_CORS_ENABLE=true
LENSES_HTTP_CORS_ORIGIN="*"

YAML configuration file 

Create a file config.yaml:

http:
  address: ":3000"
  cors:
    enable: true
    origin: "*"

secrets:
  type: "local"
  secret: "<your-base64-encoded-key-of-length-32-bytes>"

db:
  type: "postgres"
  host: "localhost"
  port: 5432
  name: "multicluster"
  username: "<your-db-username>"
  password: "<your-db-password>"