Utilisation LinkedIn du régulateur de vitesse pour Apache Kafka avec Amazon MSK - Amazon Managed Streaming for Apache Kafka

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation LinkedIn du régulateur de vitesse pour Apache Kafka avec Amazon MSK

Vous pouvez utiliser LinkedIn le régulateur de vitesse pour rééquilibrer votre cluster Amazon MSK, détecter et corriger les anomalies, et surveiller l'état et l'état de santé du cluster.

Pour télécharger et créer Cruise Control
  1. Créez une instance Amazon EC2 dans le même Amazon VPC que le cluster Amazon MSK.

  2. Installez Prometheus sur l'instance Amazon EC2 que vous avez créée à l'étape précédente. Notez l'adresse IP privée et le port. Le numéro de port par défaut est 9090. Pour de plus amples informations sur la configuration de Prometheus pour agréger les métriques de votre cluster, consultez Surveillance ouverte avec Prometheus.

  3. Téléchargez Cruise Control sur l'instance Amazon EC2. (Vous pouvez également utiliser une instance Amazon EC2 distincte pour Cruise Control si vous préférez.) Pour un cluster doté de la version 2.4.* d'Apache Kafka, utilisez la dernière version 2.4.* de Cruise Control. Si votre cluster possède une version d'Apache Kafka antérieure à la version 2.4.*, utilisez la dernière version 2.0.* de Cruise Control.

  4. Décompressez le fichier Cruise Control, puis accédez au dossier décompressé.

  5. Exécutez la commande suivante pour installer git.

    sudo yum -y install git
  6. Exécutez la commande suivante pour initialiser le référentiel local. Remplacez Your-Cruise-Control-Folder par le nom de votre dossier actuel (le dossier que vous avez obtenu lorsque vous avez décompressé le téléchargement de Cruise Control).

    git init && git add . && git commit -m "Init local repo." && git tag -a Your-Cruise-Control-Folder -m "Init local version."
  7. Exécutez la commande suivante pour créer le code source.

    ./gradlew jar copyDependantLibs
Pour configurer et exécuter Cruise Control
  1. Effectuez les mises à jour suivantes du fichier config/cruisecontrol.properties. Remplacez les exemples de serveurs bootstrap et de chaîne bootstrap-brokers par les valeurs de votre cluster. Pour obtenir ces chaînes pour votre cluster, vous pouvez consulter les détails du cluster dans la console. Vous pouvez également utiliser les opérations GetBootstrapBrokerset DescribeClusterAPI ou leurs équivalents 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. Modifiez le fichier config/capacityCores.json pour spécifier la taille de disque, le nombre de cœurs d'UC et les limites d'entrée/sortie réseau appropriés. Vous pouvez utiliser l'opération DescribeClusterAPI (ou son équivalent en CLI) pour obtenir la taille du disque. Pour connaître les cœurs d'UC et les limites d'entrée/sortie du réseau, consultez Types d'instances 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. Vous pouvez éventuellement installer l'interface utilisateur de Cruise Control. Pour le télécharger, rendez-vous sur Configuration du frontend de Cruise Control.

  4. Exécutez la commande suivante pour démarrer Cruise Control. Envisagez d'utiliser un outil tel que screen ou tmux pour maintenir une session de longue durée ouverte.

    <path-to-your-kafka-installation>/bin/kafka-cruise-control-start.sh config/cruisecontrol.properties 9091
  5. Utilisez les API de Cruise Control ou l'interface utilisateur pour vous assurer que Cruise Control dispose des données de charge du cluster et qu'il propose des suggestions de rééquilibrage. L'obtention d'une fenêtre de métriques valide peut durer plusieurs minutes.

Modèle de déploiement automatisé du régulateur de vitesse pour Amazon MSK

Vous pouvez également utiliser ce CloudFormation modèle pour déployer facilement Cruise Control et Prometheus afin de mieux comprendre les performances de votre cluster Amazon MSK et d'optimiser l'utilisation des ressources.

Fonctions principales :
  • Provisionnement automatisé d'une instance Amazon EC2 avec Cruise Control et Prometheus préconfigurés.

  • Support pour le cluster provisionné Amazon MSK.

  • Authentification flexible avec PlainText et IAM.

  • Aucune dépendance à Zookeeper pour le régulateur de vitesse.

  • Personnalisez facilement les cibles Prometheus, les paramètres de capacité du régulateur de vitesse et les autres configurations en fournissant vos propres fichiers de configuration stockés dans un compartiment Amazon S3.