Utilizzo LinkedIn del Cruise Control per Apache Kafka con Amazon MSK - Amazon Managed Streaming per Apache Kafka

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo LinkedIn del Cruise Control per Apache Kafka con Amazon MSK

Puoi utilizzare LinkedIn Cruise Control per ribilanciare il cluster Amazon MSK, rilevare e correggere anomalie e monitorare lo stato e l'integrità del cluster.

Download e compilazione di Cruise Control
  1. Crea un'istanza Amazon EC2 nello stesso Amazon VPC del cluster Amazon MSK.

  2. Installa Prometheus sull'istanza Amazon EC2 che hai creato nel passaggio precedente. Prendi nota dell'IP privato e della porta. Il numero di porta predefinito è 9090. Per informazioni su come configurare Prometheus per aggregare i parametri per un cluster, consulta la pagina Monitoraggio aperto con Prometheus.

  3. Scarica Cruise Control sull'istanza Amazon EC2. In alternativa, se preferisci, puoi utilizzare un'istanza Amazon EC2 separata per Cruise Control. Per un cluster con Apache Kafka versione 2.4.*, usa la versione 2.4.* di Cruise Control più recente. Se il tuo cluster ha una versione di Apache Kafka precedente alla 2.4.*, utilizza la versione 2.0.* di Cruise Control più recente.

  4. Decomprimi il file Cruise Control, quindi vai alla cartella decompressa.

  5. Esegui il comando seguente per installare git.

    sudo yum -y install git
  6. Esegui il comando seguente per inizializzare il repository locale. Sostituisci Your-Cruise-Control-Folder con il nome della cartella corrente (la cartella che hai ottenuto quando hai decompresso il download di cruise control).

    git init && git add . && git commit -m "Init local repo." && git tag -a Your-Cruise-Control-Folder -m "Init local version."
  7. Esegui il comando seguente per creare il codice sorgente.

    ./gradlew jar copyDependantLibs
Configurazione ed esecuzione di Cruise Control
  1. Apporta le seguenti modifiche al file config/cruisecontrol.properties. Sostituisci la stringa bootstrap servers e bootstrap-brokers di esempio con i valori del tuo cluster. Per recuperare queste stringhe per il cluster, puoi consultare i dettagli del cluster nella console. In alternativa, puoi utilizzare le operazioni GetBootstrapBrokerse DescribeClusterAPI o i loro equivalenti CLI.

    # If using TLS encryption, use 9094; use 9092 if using plaintext bootstrap.servers=b-1.test-cluster.2skv42.c1.kafka.us-east-1.amazonaws.com:9094,b-2.test-cluster.2skv42.c1.kafka.us-east-1.amazonaws.com:9094,b-3.test-cluster.2skv42.c1.kafka.us-east-1.amazonaws.com:9094 # SSL properties, needed if cluster is using TLS encryption security.protocol=SSL ssl.truststore.location=/home/ec2-user/kafka.client.truststore.jks # Use the Prometheus Metric Sampler metric.sampler.class=com.linkedin.kafka.cruisecontrol.monitor.sampling.prometheus.PrometheusMetricSampler # Prometheus Metric Sampler specific configuration prometheus.server.endpoint=1.2.3.4:9090 # Replace with your Prometheus IP and port # Change the capacity config file and specify its path; details below capacity.config.file=config/capacityCores.json
  2. Modifica il file config/capacityCores.json per specificare le dimensioni corrette del disco, i core della CPU e i limiti di ingresso/uscita della rete. È possibile utilizzare l'operazione DescribeClusterAPI (o il suo equivalente CLI) per ottenere la dimensione del disco. Per i core della CPU e i limiti di ingresso/uscita di rete, consulta la pagina Tipi di istanza Amazon EC2.

    { "brokerCapacities": [ { "brokerId": "-1", "capacity": { "DISK": "10000", "CPU": { "num.cores": "2" }, "NW_IN": "5000000", "NW_OUT": "5000000" }, "doc": "This is the default capacity. Capacity unit used for disk is in MB, cpu is in number of cores, network throughput is in KB." } ] }
  3. Facoltativamente, puoi installare l'interfaccia utente di Cruise Control. Per scaricarla, consulta la pagina Setting Up Cruise Control Frontend.

  4. Esegui il comando seguente per avviar Cruise Control. Prendi in considerazione l'utilizzo di uno strumento come screen o tmux per mantenere aperta una sessione di lunga durata.

    <path-to-your-kafka-installation>/bin/kafka-cruise-control-start.sh config/cruisecontrol.properties 9091
  5. Utilizza le API o l'interfaccia utente di Cruise Control per assicurarti che Cruise Control disponga dei dati di carico del cluster e che fornisca suggerimenti per il ribilanciamento. Potrebbero trascorrere alcuni minuti prima di ottenere una finestra di parametri valida.

Modello di distribuzione automatizzata di Cruise Control per Amazon MSK

Puoi anche utilizzare questo CloudFormation modello per implementare facilmente Cruise Control e Prometheus per ottenere informazioni più approfondite sulle prestazioni del tuo cluster Amazon MSK e ottimizzare l'utilizzo delle risorse.

Caratteristiche principali:
  • Provisioning automatico di un'istanza Amazon EC2 con Cruise Control e Prometheus preconfigurati.

  • Support per il cluster con provisioning di Amazon MSK.

  • Autenticazione flessibile con PlainText e IAM.

  • Nessuna dipendenza da Zookeeper per Cruise Control.

  • Personalizza facilmente gli obiettivi Prometheus, le impostazioni della capacità del Cruise Control e altre configurazioni fornendo i tuoi file di configurazione memorizzati in un bucket Amazon S3.