Uso LinkedIn del control de crucero para Apache Kafka con Amazon MSK - Transmisión gestionada de Amazon para Apache Kafka

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso LinkedIn del control de crucero para Apache Kafka con Amazon MSK

Puede utilizar el LinkedIn Cruise Control para reequilibrar el clúster de Amazon MSK, detectar y corregir anomalías y supervisar el estado y el estado del clúster.

Descarga y compilación de Cruise Control
  1. Cree una instancia de Amazon EC2 en la misma Amazon VPC que el clúster de Amazon MSK.

  2. Instale Prometheus en la instancia de Amazon EC2 creada en el paso anterior. Anote la IP privada y el puerto. El número de puerto predeterminado es 9090. Para obtener información acerca de cómo configurar Prometheus para agregar métricas para su clúster, consulte Supervisión abierta con Prometheus.

  3. Descargue Cruise Control en la instancia de Amazon EC2. (Si lo prefiere, también puede utilizar una instancia de Amazon EC2 independiente para Cruise Control). Si el clúster tiene una versión de Apache Kafka anterior a la 2.4.*, utilice la última versión 2.4.* de Cruise Control. Si el clúster tiene una versión de Apache Kafka anterior a la 2.4.*, utilice la última versión 2.0.* de Cruise Control.

  4. Descomprima el archivo de Cruise Control y, a continuación, vaya a la carpeta descomprimida.

  5. Ejecute el siguiente comando para instalar git.

    sudo yum -y install git
  6. Ejecute el siguiente comando para inicializar el repositorio local. Sustituya Your-Cruise-Control-Folder por el nombre de su carpeta actual (la carpeta que obtuvo al descomprimir la descarga 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. Ejecute el comando siguiente para instalar y compilar el código fuente.

    ./gradlew jar copyDependantLibs
Configuración y ejecución de Cruise Control
  1. Lleve a cabo las siguientes actualizaciones en el archivo config/cruisecontrol.properties. Sustituya la cadena de servidores bootstrap y bootstrap-brokers de ejemplo por los valores de su clúster. Para obtener estas cadenas para su clúster, puede ver los detalles del clúster en la consola. Como alternativa, puede usar las operaciones GetBootstrapBrokersy DescribeClusterAPI o sus equivalentes de 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. Edite el archivo config/capacityCores.json para especificar el tamaño de disco y los núcleos de CPU correctos, así como los límites de entrada/salida de la red. Puede usar la operación DescribeClusterAPI (o su equivalente en CLI) para obtener el tamaño del disco. Para conocer los núcleos de CPU y los límites de entrada/salida de la red, consulte Tipos de instancias de 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. Si lo desea, puede instalar la interfaz de usuario de Cruise Control. Para descargarla, vaya a Setting Up Cruise Control Frontend.

  4. Ejecute el siguiente comando para iniciar Cruise Control. Considere usar una herramienta como screen o tmux para mantener abierta una sesión de larga duración.

    <path-to-your-kafka-installation>/bin/kafka-cruise-control-start.sh config/cruisecontrol.properties 9091
  5. Use las API de Cruise Control o la interfaz de usuario para asegurarse de que Cruise Control dispone de los datos de carga del clúster y de que hace sugerencias de reequilibrio. Podría llevarle varios minutos a obtener una ventana de métricas válida.

Plantilla de despliegue automatizado de Cruise Control para Amazon MSK

También puede utilizar esta CloudFormation plantilla para implementar fácilmente Cruise Control y Prometheus para obtener información más detallada sobre el rendimiento de su clúster de Amazon MSK y optimizar la utilización de los recursos.

Características clave:
  • Aprovisionamiento automatizado de una instancia de Amazon EC2 con Cruise Control y Prometheus preconfigurados.

  • Support para el clúster aprovisionado de Amazon MSK.

  • Autenticación flexible con un PlainText IAM.

  • El Cruise Control no depende de Zookeeper.

  • Personalice fácilmente los objetivos de Prometheus, los ajustes de capacidad del Cruise Control y otras configuraciones proporcionando sus propios archivos de configuración almacenados en un bucket de Amazon S3.