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 log4jDEBUG 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.