Registro de Amazon MSK - Transmisión administrada de Amazon para Apache Kafka

Registro de Amazon MSK

Puede entregar registros de agente de Apache Kafka a uno o varios de los siguientes tipos de destino: Registros de Amazon CloudWatch, Amazon S3 o Amazon Data Firehose. También puede registrar llamadas a la API de Amazon MSK con AWS CloudTrail.

nota

Los registros de los agentes no están disponibles en agentes Express.

Registros de agente

Los registros de agente le permiten solucionar problemas de las aplicaciones de Apache Kafka y analizar las comunicaciones con su clúster de MSK. Puede configurar su clúster nuevo o existente de MSK para que entregue registros de agente de nivel INFO a uno o más de los siguientes tipos de recursos de destino: un grupo de Registros de CloudWatch, un bucket de S3 o un flujo de entrega de Firehose. A continuación, puede usar Firehose para entregar los datos de registro de su flujo de entrega a OpenSearch Service.

Debe crear un recurso de destino antes de configurar el clúster para enviarle los registros de los agentes. Amazon MSK no crea estos recursos de destino si aún no existen. Para obtener información acerca de estos tres tipos de recursos de destino y cómo crearlos, consulte la siguiente documentación:

Permisos necesarios

Para configurar un destino para los registros de los agentes de Amazon MSK, la identidad de IAM que utilice para las acciones de Amazon MSK debe tener los permisos descritos en la política Política administrada por AWS: AmazonMSKFullAccess.

Para transmitir registros de agente a un bucket de S3, también necesita el permiso s3:PutBucketPolicy. Para obtener información acerca de las políticas de bucket de S3, consulte ¿Cómo agrego una política de bucket de S3? en la Guía del usuario de Amazon S3. Para obtener información acerca de las políticas de IAM en general, consulte Administración de accesos en la Guía del usuario de IAM.

Política de claves de KMS necesarias para usar con buckets de SSE-KMS

Si habilitó el cifrado del servidor para su bucket de S3 utilizando claves administradas por AWS KMS (SSE-KMS) con una clave administrada por el cliente, agregue lo siguiente a la política de claves para su clave de KMS para que Amazon MSK pueda escribir archivos de agente en el bucket.

{ "Sid": "Allow Amazon MSK to use the key.", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }

Configuración de los registros de agente desde la Consola de administración de AWS

Si va a crear un nuevo clúster, busque el encabezado Broker log delivery (Entrega de registros de agente) en la sección Monitoring (Monitoreo). Puede especificar los destinos donde desea que Amazon MSK entregue los registros de agente.

Para un clúster existente, elija el clúster de la lista de clústeres y, a continuación, elija la pestaña Propiedades. Desplácese hacia abajo hasta la sección Envío de registros y, a continuación, elija el botón Editar. Puede especificar los destinos donde desea que Amazon MSK entregue los registros de agente.

Configuración de los registros de agente desde la AWS CLI

Si utiliza los comandos create-cluster o update-monitoring, tiene la opción de especificar el parámetro logging-info y pasarlo a una estructura JSON como en el siguiente ejemplo. En este JSON, los tres tipos de destino son opcionales.

nota

Debe establecer la etiqueta LogDeliveryEnabled en true en los flujos de Firehose para configurar la entrega de registros. El rol vinculado al servicio que AWS crea para los registros de CloudWatch utiliza esta etiqueta para conceder permisos a todos los flujos de entrega de Firehose. Si elimina esta etiqueta, el rol vinculado al servicio no podrá entregar registros al flujo de Firehose. Para ver un ejemplo de una política de IAM que muestra los permisos incluidos en el rol vinculado al servicio, consulte Roles de IAM utilizados para permisos de recursos en la Guía del usuario de Amazon CloudWatch.

{ "BrokerLogs": { "S3": { "Bucket": "amzn-s3-demo-bucket", "Prefix": "ExamplePrefix", "Enabled": true }, "Firehose": { "DeliveryStream": "ExampleDeliveryStreamName", "Enabled": true }, "CloudWatchLogs": { "Enabled": true, "LogGroup": "ExampleLogGroupName" } } }

Configuración de los registros de agente con la API

Puede especificar la estructura loggingInfo opcional en el JSON que pasa a las operaciones CreateCluster o UpdateMonitoring.

nota

De forma predeterminada, cuando el registro de agentes está habilitado, Amazon MSK almacena los registros de INFO en los destinos especificados. Sin embargo, los usuarios de las versiones 2.4.X y posteriores de Apache Kafka pueden establecer dinámicamente el nivel de registros de agente en cualquiera de los niveles de registro log4j. Para obtener información sobre cómo configurar dinámicamente el nivel de registros de agente, consulte KIP-412: Extend Admin API to support dynamic application log levels. Si establece el nivel de registro de forma dinámica en DEBUG o TRACE, recomendamos que utilice Amazon S3 o Firehose como destino de los registros. Si utiliza Registros de CloudWatch como destino de los registros y habilita el registro en el nivel DEBUG o TRACE de forma dinámica, Amazon MSK puede entregar continuamente una muestra de registros. Esto puede afectar considerablemente al rendimiento del agente y solo debe utilizarse cuando el nivel de registro INFO no sea lo suficientemente detallado como para determinar la causa raíz del problema.