Integración de Amazon MSK
Con un recopilador de Prometheus administrado por Amazon CloudWatch, puede detectar y recopilar automáticamente métricas Prometheus de sus clústeres de Amazon MSK. Cuando habilita la supervisión abierta en su clúster de Amazon MSK, las métricas de Prometheus se exponen a través de Java Management Extensions (JMX) Exporter and Node Exporter. El recopilador administrado se conecta a su VPC y extrae estas métricas de todos los agentes mediante la detección de servicios basada en DNS y las envía directamente a CloudWatch. Con esta integración, puede supervisar las métricas por host, las métricas por JVM y las métricas de los agentes de Kafka en CloudWatch sin necesidad de implementar ningún agente.
nota
Cuando un recopilador de Prometheus administrado por Amazon CloudWatch envía sus métricas de Amazon MSK a CloudWatch, enriquece automáticamente cada métrica con atributos que identifican su origen. Cada métrica incluye el alcance de la instrumentación del recopilador, los atributos en la nube que registran la cuenta y región de AWS y una unidad que el recopilador deduce del nombre de la métrica. Puede filtrar y agrupar estos atributos cuando consulte sus métricas con PromQL.
Requisitos previos
En este procedimiento se presupone que está familiarizado con los conceptos de administración de clústeres de Amazon MSK y redes de Amazon VPC.
-
Clúster de Amazon MSK en modo aprovisionado, con agentes estándar o express. Los recopiladores administrados no son compatibles con Amazon MSK sin servidor.
-
La supervisión abierta habilitada en el clúster. Para obtener más información, consulte Supervisión abierta con Prometheus en la Guía para desarrolladores de Amazon MSK.
-
Al menos dos subredes en diferentes zonas de disponibilidad.
-
Grupo de seguridad que permita al recopilador acceder a los puertos del agente 11001 y 11002.
Paso 1: Habilitar la supervisión abierta
Habilite la supervisión abierta en su clúster de Amazon MSK para exponer las métricas de Prometheus. Para obtener instrucciones sobre cómo habilitar la supervisión abierta, consulte Supervisión abierta con Prometheus en la Guía para desarrolladores de Amazon MSK.
aws kafka update-monitoring \ --cluster-arn "arn:aws:kafka:us-west-2:123456789012:cluster/my-cluster/abc123-def456" \ --current-version "K1A2B3C4D5" \ --open-monitoring '{ "Prometheus": { "JmxExporter": {"EnabledInBroker": true}, "NodeExporter": {"EnabledInBroker": true} } }'
nota
El parámetro --open-monitoring por sí solo expone los puntos de conexión de Prometheus en los puertos 11001 y 11002. Los niveles de supervisión mejorada, como PER_TOPIC_PER_PARTITION, son independientes de la supervisión abierta y pueden suponer cargos adicionales, así que defínalos solo si necesita ese nivel de métricas de Amazon MSK.
Paso 2: Obtener el nombre de DNS de su clúster
Amazon MSK proporciona un nombre de DNS por clúster que se resuelve en todas las IP de los agentes. Su uso para la detección de servicios hace que su supervisión sea resistente a las sustituciones de agentes y al escalado de clústeres.
Obtenga el nombre de DNS de su clúster (elimine el prefijo específico del agente, como b-1. o b-2.):
aws kafka get-bootstrap-brokers --cluster-arn "arn:aws:kafka:us-west-2:123456789012:cluster/my-cluster/abc123-def456"
Por ejemplo, si el agente de arranque devuelve b-1.my-cluster.abc123.c4.kafka.us-west-2.amazonaws.com, utilice my-cluster.abc123.c4.kafka.us-west-2.amazonaws.com como nombre de DNS del clúster.
Paso 3: Definir la configuración de extracción
A continuación, se muestra un ejemplo de configuración de extracción para Amazon MSK. Haga referencia a esta configuración al crear el extractor en el siguiente paso. Para obtener más información acerca de las opciones de configuración de , consulte Configuración del raspador.
global: scrape_interval: 60s external_labels: cluster_name:my-msk-clusterscrape_configs: - job_name: 'msk-jmx' dns_sd_configs: - names: -my-cluster---abc123---c4---kafka---us-west-2.amazonaws.com.rproxy.goskope.comtype: A port: 11001 relabel_configs: - source_labels: [__meta_dns_name] target_label: broker_dns - source_labels: [__address__] target_label: instance - target_label: compute_platform replacement: 'msk' - job_name: 'msk-node' dns_sd_configs: - names: -my-cluster---abc123---c4---kafka---us-west-2.amazonaws.com.rproxy.goskope.comtype: A port: 11002 relabel_configs: - source_labels: [__meta_dns_name] target_label: broker_dns - source_labels: [__address__] target_label: instance - target_label: compute_platform replacement: 'msk'
Paso 4: creación del analizador
Cree el extractor con un destino de CloudWatch utilizando la configuración de extracción de sus agentes de Amazon MSK del paso anterior.
Métricas disponibles
-
JMX Exporter (puerto 11001): información interna de los agentes de Kafka, que incluye métricas de temas, métricas de particiones, tasas de solicitudes, desfase del consumidor y particiones infrarreplicadas.
-
Node Exporter (puerto 11002): métricas por host que incluyen CPU, memoria, E/S de disco y rendimiento de la red.
Para ver una lista completa de las métricas disponibles, consulte Métricas de MSK recopiladas por recopiladores administrados en la Guía del usuario de Amazon Managed Service para Prometheus.
Validación de la recopilación de métricas
Para confirmar que el recopilador envíe las métricas de JMX y Node Exporter, ejecute las siguientes consultas en CloudWatch con Query Studio. Si cada consulta devuelve puntos de datos, el recopilador está extrayendo correctamente el exportador correspondiente.
La siguiente consulta devuelve una métrica de Kafka por agente de JMX Exporter (puerto 11001). Indica el promedio de la tasa de actividad de los temas de los agentes, como los mensajes y los bytes que circulan a través de ellos. Los puntos de datos confirman que el recopilador está extrayendo las métricas de los agentes de Kafka.
kafka_server_BrokerTopicMetrics_MeanRate
La siguiente consulta devuelve el uso de la CPU por host desde Node Exporter (puerto 11002). Resta a 100 el promedio de la tasa de CPU inactiva durante un periodo de cinco minutos para obtener el porcentaje de CPU que utilizan los agentes. Los puntos de datos confirman que el recopilador está extrayendo las métricas por host.
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
Visualización del panel automático
Cuando el recopilador comienza a enviar las métricas de Amazon MSK a CloudWatch, la consola de CloudWatch proporciona un panel automático denominado MSK OTel. Para abrirlo, consulte MSK OTel
Si el panel automático satisface sus necesidades, puede usarlo tal cual. Para crear una experiencia de supervisión personalizada, puede agregar cualquiera de sus widgets a un panel personalizado. Para obtener más información sobre los paneles personalizados, consulte Uso de paneles de CloudWatch.
Observabilidad entre cuentas
Para la supervisión de Amazon MSK entre cuentas, recomendamos utilizar la centralización de métricas de Amazon CloudWatch. Para obtener más información, consulte Centralización de métricas de CloudWatch.
Para obtener información sobre configuraciones alternativas de extractores entre cuentas que utilizan el encadenamiento de roles, consulte Integración entre cuentas de Amazon MSK en la Guía del usuario de Amazon Managed Service para Prometheus.
Limitaciones actuales
-
Los recopiladores administrados no son compatibles con los clústeres sin servidor de Amazon MSK.
-
Los recopiladores administrados no admiten el acceso público combinado con el modo de metadatos de KRaft.
-
Cada combinación de clúster de Amazon MSK y conjunto de datos de CloudWatch requiere un recopilador.