Configuración de recopiladores de Prometheus administrados para Amazon MSK
Para utilizar un recopilador de Amazon Managed Service para Prometheus, cree un scraper que detecte y extraiga las métricas del clúster de Amazon Managed Streaming para Apache Kafka. También puede crear un scraper que se integre con Amazon Elastic Kubernetes Service. Para obtener más información, consulte Integración de Amazon EKS.
Crear un raspador
Un recopilador de Amazon Managed Service para Prometheus consta de un scraper que detecta y recopila métricas de un clúster de Amazon MSK. Amazon Managed Service para Prometheus gestiona el raspador por usted y le brinda la escalabilidad, la seguridad y la fiabilidad que necesita, sin tener que gestionar usted mismo ninguna instancia, agente o raspador.
Puede crear un scraper mediante la API o la AWS CLI de AWS, como se describe en los procedimientos siguientes.
Existen algunos requisitos previos para crear su propio raspador:
-
Debe haber creado un clúster de Amazon MSK.
-
Configure el grupo de seguridad de su clúster de Amazon MSK para permitir el tráfico entrante en los puertos 11001 (JMX Exporter) y 11002 (Node Exporter) de su Amazon VPC, ya que el scraper requiere acceso a estos registros de DNS para recopilar las métricas de Prometheus.
-
La Amazon VPC en la que reside el clúster de Amazon MSK debe tener el DNS habilitado.
nota
El clúster se asociará al analizador por el nombre de recurso de Amazon (ARN). Si elimina un clúster y, a continuación, crea uno nuevo con el mismo nombre, el ARN se reutilizará para el nuevo clúster. Por este motivo, el analizador intentará recopilar métricas para el nuevo clúster. Elimine los analizadores aparte de la eliminación del clúster.
-
A continuación se muestra una lista completa de las operaciones del raspador que puede usar con la API de AWS:
Crear un analizador con la operación de la API CreateScraper.
-
Enumerar los analizadores existentes con la operación de la API ListScrapers.
-
Actualice el alias, la configuración o el destino de un scraper con la operación de la API UpdateScraper.
-
Eliminar un analizador con la operación de la API DeleteScraper.
-
Obtener más detalles sobre un analizador con la operación de la API DescribeScraper.
Configuración entre cuentas
Para crear un scraper en una configuración entre cuentas cuando el clúster de Amazon MSK del que quiere recopilar las métricas se encuentra en una cuenta diferente a la del recopilador de Amazon Managed Service para Prometheus, siga el procedimiento que se indica a continuación.
Por ejemplo, cuando tiene dos cuentas: una primera cuenta de origen account_id_source donde se encuentra Amazon MSK, y una segunda cuenta de destino account_id_target donde se encuentra el espacio de trabajo de Amazon Managed Service para Prometheus.
Para crear un scraper en una configuración entre cuentas
-
En la cuenta de origen, cree un rol
arn:aws:iam::y agregue la siguiente política de confianza.111122223333:role/Source{ "Effect": "Allow", "Principal": { "Service": [ "scraper.aps.amazonaws.com" ] }, "Action": "sts:AssumeRole", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:aps:aws-region:111122223333:scraper/scraper-id" }, "StringEquals": { "AWS:SourceAccount": "111122223333" } } } -
En cada combinación de origen (clúster de Amazon MSK) y de destino (Amazon Managed Service para Prometheus Workspace), debe crear un rol
arn:aws:iam::y agregar la siguiente política de confianza con permisos para AmazonPrometheusRemoteWriteAccess.444455556666:role/Target{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/Source" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "arn:aws:aps:aws-region:111122223333:scraper/scraper-id" } } } -
Cree un scraper con la opción
--role-configuration.aws amp create-scraper \ --source vpcConfiguration="{subnetIds=[subnet-subnet-id], "securityGroupIds": ["sg-security-group-id"]}" \ --scrape-configuration configurationBlob=<base64-encoded-blob>\ --destination ampConfiguration="{workspaceArn='arn:aws:aps:aws-region:444455556666:workspace/ws-workspace-id'}"\ --role-configuration '{"sourceRoleArn":"arn:aws:iam::111122223333:role/Source", "targetRoleArn":"arn:aws:iam::444455556666:role/Target"}' -
Valide la creación del scraper.
aws amp list-scrapers { "scrapers": [ { "scraperId": "s-example123456789abcdef0", "arn": "arn:aws:aps:aws-region:111122223333:scraper/s-example123456789abcdef0": "arn:aws:iam::111122223333:role/Source", "status": "ACTIVE", "creationTime": "2025-10-27T18:45:00.000Z", "lastModificationTime": "2025-10-27T18:50:00.000Z", "tags": {}, "statusReason": "Scraper is running successfully", "source": { "vpcConfiguration": { "subnetIds": ["subnet-subnet-id"], "securityGroupIds": ["sg-security-group-id"] } }, "destination": { "ampConfiguration": { "workspaceArn": "arn:aws:aps:aws-region:444455556666:workspace/ws-workspace-id'" } }, "scrapeConfiguration": { "configurationBlob": "<base64-encoded-blob>" } } ] }
Cambio entre un rol RoleConfiguration y un rol vinculado al servicio
Si quiere volver a un rol vinculado al servicio en lugar del rol RoleConfiguration para escribir en un espacio de trabajo de Amazon Managed Service para Prometheus, debe actualizar UpdateScraper y proporcionar un espacio de trabajo en la misma cuenta que el scraper sin el rol RoleConfiguration. El rol RoleConfiguration se eliminará del scraper y se utilizará el rol vinculado al servicio.
Si cambia de espacio de trabajo en la misma cuenta que el scraper y quiere seguir utilizando el rol RoleConfiguration, debe volver a proporcionar el RoleConfiguration en UpdateScraper.
Buscar y eliminar raspadores
Puede usar la API de AWS o la AWS CLI para enumerar los raspadores de su cuenta o eliminarlos.
nota
Asegúrese de que utiliza la versión más reciente de la AWS CLI o del SDK. La última versión le proporciona las características y funcionalidades más recientes, así como actualizaciones de seguridad. Como alternativa, puede utilizar AWS CloudShell, que proporciona una experiencia de línea de comandos siempre actualizada de forma automática.
Para enumerar todos los analizadores de la cuenta, utilice la operación de la API ListScrapers.
Como alternativa, con la AWS CLI, llame a:
aws amp list-scrapers
ListScrapers devuelve todos los raspadores de su cuenta, por ejemplo:
{ "scrapers": [ { "scraperId": "s-1234abcd-56ef-7890-abcd-1234ef567890", "arn": "arn:aws:aps:aws-region:123456789012:scraper/s-1234abcd-56ef-7890-abcd-1234ef567890", "roleArn": "arn:aws:iam::123456789012:role/aws-service-role/AWSServiceRoleForAmazonPrometheusScraper_1234abcd-2931", "status": { "statusCode": "DELETING" }, "createdAt": "2023-10-12T15:22:19.014000-07:00", "lastModifiedAt": "2023-10-12T15:55:43.487000-07:00", "tags": {}, "source": { "vpcConfiguration": { "securityGroupIds": [ "sg-1234abcd5678ef90" ], "subnetIds": [ "subnet-abcd1234ef567890", "subnet-1234abcd5678ab90" ] } }, "destination": { "ampConfiguration": { "workspaceArn": "arn:aws:aps:aws-region:123456789012:workspace/ws-1234abcd-5678-ef90-ab12-cdef3456a78" } } } ] }
Para eliminar un analizador, busque scraperId correspondiente al analizador que desea eliminar mediante la operación ListScrapers y, a continuación, utilice la operación DeleteScraper para eliminarlo.
Como alternativa, con la AWS CLI, llame a:
aws amp delete-scraper --scraper-idscraperId
Métricas recopiladas desde Amazon MSK
Al realizar la integración con Amazon MSK, el recopilador de Amazon Managed Service para Prometheus recopila automáticamente las siguientes métricas:
| Métrica | Descripción o finalidad |
|---|---|
|
jmx_config_reload_failure_total |
Número total de veces que el exportador JMX no pudo volver a cargar su archivo de configuración. |
|
jmx_scrape_duration_seconds |
Tiempo necesario para analizar las métricas de JMX en segundos para el ciclo de recopilación actual. |
|
jmx_scrape_error |
Indica si se ha producido un error durante la extracción de métricas de JMX (1 = error, 0 = éxito). |
|
java_lang_Memory_HeapMemoryUsage_used |
Cantidad de memoria heap (en bytes) que utiliza actualmente JVM. |
|
java_lang_Memory_HeapMemoryUsage_max |
Cantidad máxima de memoria heap (en bytes) que se puede usar para la administración de la memoria. |
|
java_lang_Memory_NonHeapMemoryUsage_used |
Cantidad de memoria no heap (en bytes) que utiliza actualmente JVM. |
|
kafka_cluster_Partition_Value |
Estado o valor actual relacionado con las particiones del clúster de Kafka, desglosado por ID de partición y tema. |
|
kafka_consumer_consumer_coordinator_metrics_assigned_partitions |
Número de particiones actualmente asignadas a este consumidor. |
|
kafka_consumer_consumer_coordinator_metrics_commit_latency_avg |
Tiempo promedio que se tarda en efectuar las compensaciones en milisegundos. |
|
kafka_consumer_consumer_coordinator_metrics_commit_rate |
Número de confirmaciones de compensación por segundo. |
|
kafka_consumer_consumer_coordinator_metrics_failed_rebalance_total |
Número total de reequilibrios de grupos de consumidores con error. |
|
kafka_consumer_consumer_coordinator_metrics_last_heartbeat_seconds_ago |
Número de segundos transcurridos desde que se envió el último latido al coordinador. |
|
kafka_consumer_consumer_coordinator_metrics_rebalance_latency_avg |
Tiempo medio que tarda un grupo de consumidores en reequilibrarse en milisegundos. |
|
kafka_consumer_consumer_coordinator_metrics_rebalance_total |
Número total de reequilibrios de grupos de consumidores. |
|
kafka_consumer_consumer_fetch_manager_metrics_bytes_consumed_rate |
Número promedio de bytes consumidos por segundo. |
|
kafka_consumer_consumer_fetch_manager_metrics_fetch_latency_avg |
Tiempo medio que tarda una solicitud de recuperación en milisegundos. |
|
kafka_consumer_consumer_fetch_manager_metrics_fetch_rate |
Número de solicitudes del programa de recuperación por segundo. |
|
kafka_consumer_consumer_fetch_manager_metrics_records_consumed_rate |
Número promedio de registros consumidos por segundo. |
|
kafka_consumer_consumer_fetch_manager_metrics_records_lag_max |
Retraso máximo en términos de la cantidad de registros para cualquier partición de este consumidor. |
|
kafka_consumer_consumer_metrics_connection_count |
Cantidad actual de conexiones activas. |
|
kafka_consumer_consumer_metrics_incoming_byte_rate |
Cantidad promedio de bytes recibidos por segundo de todos los servidores. |
|
kafka_consumer_consumer_metrics_last_poll_seconds_ago |
Número de segundos transcurridos desde la última llamada a la encuesta de consumidores(). |
|
kafka_consumer_consumer_metrics_request_rate |
Número de solicitudes enviadas por segundo. |
|
kafka_consumer_consumer_metrics_response_rate |
Número de respuestas recibidas por segundo. |
|
kafka_consumer_group_ConsumerLagMetrics_Value |
Valor actual de rezago con respecto al consumidor para un grupo de consumidores, que indica en qué medida está rezagado el consumidor. |
|
kafka_controller_KafkaController_Value |
Estado o valor actual del controlador Kafka (1 = controlador activo, 0 = inactivo). |
|
kafka_controller_ControllerEventManager_Count |
Cantidad total de eventos de controlador procesados. |
|
kafka_controller_ControllerEventManager_Mean |
Tiempo medio (promedio) que se tarda en procesar los eventos del controlador. |
|
kafka_controller_ControllerStats_MeanRate |
Tasa media de operaciones de estadísticas del controlador por segundo. |
|
kafka_coordinator_group_GroupMetadataManager_Value |
Estado o valor actual del administrador de metadatos de grupo para grupos de consumidores. |
|
kafka_log_LogFlushStats_Count |
Cantidad total de operaciones de vaciado del registro. |
|
kafka_log_LogFlushStats_Mean |
Tiempo medio (promedio) empleado en las operaciones de vaciado de registros. |
|
kafka_log_LogFlushStats_MeanRate |
Tasa media de operaciones de vaciado de registros por segundo. |
|
kafka_network_RequestMetrics_Count |
Recuento total de solicitudes de red procesadas. |
|
kafka_network_RequestMetrics_Mean |
Tiempo medio (promedio) necesario para procesar las solicitudes de red. |
|
kafka_network_RequestMetrics_MeanRate |
Velocidad media de solicitudes de red por segundo. |
|
kafka_network_Acceptor_MeanRate |
Velocidad media de conexiones aceptadas por segundo. |
|
kafka_server_Fetch_queue_size |
Tamaño actual de la cola de solicitudes de recuperación. |
|
kafka_server_Produce_queue_size |
Tamaño actual de la cola de solicitudes de producción. |
|
kafka_server_Request_queue_size |
Tamaño actual de la cola de solicitudes generales. |
|
kafka_server_BrokerTopicMetrics_Count |
Recuento total de operaciones relacionadas con el tema del agente (entrada/salida de mensajes, entrada/salida de bytes). |
|
kafka_server_BrokerTopicMetrics_MeanRate |
Tasa media de operaciones relacionadas con el agente por segundo. |
|
kafka_server_BrokerTopicMetrics_OneMinuteRate |
Tasa media móvil de un minuto de las operaciones relacionadas con un agente. |
|
kafka_server_DelayedOperationPurgatory_Value |
Número actual de operaciones retrasadas en el purgatorio (pendientes de finalización). |
|
kafka_server_DelayedFetchMetrics_MeanRate |
Tasa media de operaciones de recuperación retrasadas por segundo. |
|
kafka_server_FetcherLagMetrics_Value |
Valor de retraso actual para los subprocesos del recuperador de réplicas (en qué medida están lejos están del líder). |
|
kafka_server_FetcherStats_MeanRate |
Tasa media de operaciones del recuperador por segundo. |
|
kafka_server_ReplicaManager_Value |
Estado o valor actual del administrador de réplicas. |
|
kafka_server_ReplicaManager_MeanRate |
Tasa media de operaciones del administrador de réplicas por segundo. |
|
kafka_server_LeaderReplication_byte_rate |
Tasa de bytes replicados por segundo para las particiones en las que este agente sea el líder. |
|
kafka_server_group_coordinator_metrics_group_completed_rebalance_count |
Número total de reequilibrios de grupos de consumidores completados. |
|
kafka_server_group_coordinator_metrics_offset_commit_count |
Número total de operaciones de confirmación de compensación. |
|
kafka_server_group_coordinator_metrics_offset_commit_rate |
Tasa de compensación de operaciones por segundo. |
|
kafka_server_socket_server_metrics_connection_count |
Cantidad actual de conexiones activas. |
|
kafka_server_socket_server_metrics_connection_creation_rate |
Velocidad de creación de nuevas conexiones por segundo. |
|
kafka_server_socket_server_metrics_connection_close_rate |
Tasa de cierres de conexiones por segundo. |
|
kafka_server_socket_server_metrics_failed_authentication_total |
Número total de intentos de autenticación fallidos. |
|
kafka_server_socket_server_metrics_incoming_byte_rate |
Velocidad de bytes entrantes por segundo. |
|
kafka_server_socket_server_metrics_outgoing_byte_rate |
Velocidad de bytes salientes por segundo. |
|
kafka_server_socket_server_metrics_request_rate |
Tasa de solicitudes por segundo. |
|
kafka_server_socket_server_metrics_response_rate |
Tasa de respuestas por segundo. |
|
kafka_server_socket_server_metrics_network_io_rate |
Tasa de operaciones de E/S de la red por segundo. |
|
kafka_server_socket_server_metrics_io_ratio |
Fracción de tiempo dedicada a operaciones de E/S. |
|
kafka_server_controller_channel_metrics_connection_count |
Cantidad actual de conexiones activas para los canales del controlador. |
|
kafka_server_controller_channel_metrics_incoming_byte_rate |
Velocidad de bytes entrantes por segundo para los canales del controlador. |
|
kafka_server_controller_channel_metrics_outgoing_byte_rate |
Velocidad de bytes salientes por segundo para los canales del controlador. |
|
kafka_server_controller_channel_metrics_request_rate |
Velocidad de solicitudes por segundo para los canales del controlador. |
|
kafka_server_replica_fetcher_metrics_connection_count |
Cantidad actual de conexiones activas por recuperador de réplicas. |
|
kafka_server_replica_fetcher_metrics_incoming_byte_rate |
Velocidad de bytes entrantes por segundo para el recuperador de réplicas. |
|
kafka_server_replica_fetcher_metrics_request_rate |
Tasa de solicitudes por segundo para el recuperador de réplicas. |
|
kafka_server_replica_fetcher_metrics_failed_authentication_total |
Número total de intentos de autenticación fallidos para el recuperador de réplicas. |
|
kafka_server_ZooKeeperClientMetrics_Count |
Recuento total de las operaciones del cliente ZooKeeper. |
|
kafka_server_ZooKeeperClientMetrics_Mean |
Latencia media de las operaciones del cliente ZooKeeper. |
|
Kafka_Server_KafkaServer_Value |
Estado o valor actual del servidor Kafka (normalmente indica que el servidor está en ejecución). |
|
node_cpu_seconds_total |
Número total de segundos que las CPU gastaron en cada modo (usuario, sistema, inactivo, etc.), desglosados por CPU y modo. |
|
node_disk_read_bytes_total |
Número total de bytes leídos correctamente de los discos, desglosados por dispositivo. |
|
node_disk_reads_completed_total |
Número total de lecturas completadas correctamente de los discos, desglosadas por dispositivo. |
|
node_disk_writes_completed_total |
Número total de escrituras completadas correctamente de los discos, desglosadas por dispositivo. |
|
node_disk_written_bytes_total |
Número total de bytes escritos correctamente en los discos, desglosados por dispositivo. |
|
node_filesystem_avail_bytes |
Espacio disponible en el sistema de archivos en bytes para usuarios no raíz, desglosado por dispositivo y punto de montaje. |
|
node_filesystem_size_bytes |
Tamaño total del sistema de archivos en bytes, desglosado por dispositivo y punto de montaje. |
|
node_filesystem_free_bytes |
Espacio libre en el sistema de archivos en bytes, desglosado por dispositivo y punto de montaje. |
|
node_filesystem_files |
Número total de nodos de archivos (inodos) del sistema de archivos, desglosados por dispositivo y punto de montaje. |
|
node_filesystem_files_free |
Número de nodos de archivos libres (inodos) en el sistema de archivos, desglosados por dispositivo y punto de montaje. |
|
node_filesystem_readonly |
Indica si el sistema de archivos está montado en modo de solo lectura (1 = solo lectura, 0 = lectura-escritura). |
|
node_filesystem_device_error |
Indica si se ha producido un error al obtener las estadísticas del sistema de archivos (1 = error, 0 = éxito). |
Limitaciones
La integración actual de Amazon MSK con Amazon Managed Service para Prometheus tiene las siguientes limitaciones:
-
Solo se admite para los clústeres aprovisionados de Amazon MSK (no disponible para Amazon MSK sin servidor)
-
No es compatible con los clústeres de Amazon MSK con acceso público habilitado en combinación con el modo de metadatos de KRaft
-
No es compatible con los agentes de Amazon MSK Express
-
Actualmente admite una asignación 1:1 entre los clústeres de Amazon MSK y los recopiladores/espacios de trabajo de Amazon Managed Service para Prometheus