Configuración de registro de aplicación en Managed Service para Apache Flink - Managed Service para Apache Flink

Amazon Managed Service para Apache Flink Amazon (Amazon MSF) se denominaba anteriormente Amazon Kinesis Data Analytics para Apache Flink.

Configuración de registro de aplicación en Managed Service para Apache Flink

Al añadir una opción de registro de Amazon CloudWatch a su aplicación Managed Service para Apache Flink, puede supervisar los eventos de la aplicación o los problemas de configuración.

En este tema se describe cómo configurar la aplicación para escribir los eventos de la aplicación en una transmisión de CloudWatch Logs. Una opción de registro de CloudWatch es un conjunto de ajustes y permisos de la aplicación que la aplicación utiliza para configurar la forma en que escribe los eventos de la aplicación en CloudWatch Logs. Se puede añadir y configurar una opción de registro de CloudWatch usando Consola de administración de AWS o AWS Command Line Interface (AWS CLI).

Tenga en cuenta lo siguiente sobre la adición de una opción de registro de CloudWatch a su aplicación:

  • Al añadir una opción de registro de CloudWatch mediante la consola, Managed Service para Apache Flink crea el grupo de registro y el flujo de registro de CloudWatch automáticamente y añade los permisos que la aplicación necesita para escribir en el flujo de registro.

  • Al añadir una opción de registro de CloudWatch mediante la API, debe crear también el grupo y el flujo de registro de la aplicación, y agregar los permisos que la aplicación necesita para escribir en el flujo de registro.

Configuración de registro de CloudWatch mediante la consola

Cuando habilita el registro de CloudWatch para su aplicación en la consola, se crean automáticamente un grupo de registros y un flujo de registro de CloudWatch. Además, la política de permisos de la aplicación se actualiza con los permisos para escribir en la transmisión.

Managed Service para Apache Flink crea un grupo de registro denominado según la siguiente convención, donde ApplicationName es el nombre de la aplicación.

/aws/kinesis-analytics/ApplicationName

Managed Service para Apache Flink crea un flujo de registro en el nuevo grupo de registro con el siguiente nombre.

kinesis-analytics-log-stream

Para establecer el nivel de métricas de supervisión de la aplicación y el nivel de registro de supervisión, utilice la sección del nivel de registro de supervisión de la página de configuración de la aplicación. Para obtener más información acerca de los niveles del flujo de la aplicación, consulte Control de niveles de monitoreo de aplicaciones.

Configuración de registro de CloudWatch mediante la CLI

Para añadir una opción de registro de CloudWatch mediante la AWS CLI, realice lo siguiente:

  • Cree un grupo de registro y un flujo de registro.

  • Agregue una opción de registro al crear una aplicación mediante la acción CreateApplication, o agregue una opción de registro a una aplicación existente mediante la acción AddApplicationCloudWatchLoggingOption.

  • Añada permisos a la política de la aplicación para escribir en los registros.

Cree un grupo de registro y un flujo de registro.

Se puede crear un flujo y un grupo de registro de CloudWatch usando la consola de CloudWatch Logs o la API. Para obtener más información acerca de la creación de un grupo de registro y flujo de registro de CloudWatch, consulte Trabajar con grupos de registro y flujos de registros.

Trabajo con las opciones de registro de CloudWatch de la aplicación

Utilice las siguientes acciones de la API para añadir una opción de registro de CloudWatch a una aplicación nueva o existente, o cambiar una opción de registro de una aplicación existente. Para obtener información sobre cómo utilizar un archivo JSON como entrada para una acción de API, consulte Ejemplo de código de API de Managed Service para Apache Flink.

Agregación de una opción de registro de CloudWatch al crear una aplicación

El siguiente ejemplo de código demuestra cómo utilizar la acción CreateApplication para añadir una opción de registro de CloudWatch al crear una aplicación. En el ejemplo, sustituya el nombre de recurso de Amazon (ARN) del flujo de registro de CloudWatch para añadirlo a la nueva aplicación con su propia información. Para obtener más información sobre la acción, consulte CreateApplication.

{ "ApplicationName": "test", "ApplicationDescription": "test-application-description", "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration": { "CodeContent": { "S3ContentLocation":{ "BucketARN": "arn:aws:s3:::amzn-s3-demo-bucket", "FileKey": "myflink.jar" } }, "CodeContentType": "ZIPFILE" } }, "CloudWatchLoggingOptions": [{ "LogStreamARN": "<Amazon Resource Name (ARN) of the CloudWatch log stream to add to the new application>" }] }

Agregación de una opción de registros de CloudWatch en una aplicación

El siguiente ejemplo de código muestra cómo utilizar la acción AddApplicationCloudWatchLoggingOption para añadir una opción de registro de CloudWatch a una aplicación existente. En el siguiente ejemplo, reemplace cada marcador de posición del usuario con su propia información. Para obtener más información sobre la acción, consulte AddApplicationCloudWatchLoggingOption.

{ "ApplicationName": "<Name of the application to add the log option to>", "CloudWatchLoggingOption": { "LogStreamARN": "<ARN of the log stream to add to the application>" }, "CurrentApplicationVersionId": <Version of the application to add the log to> }

Actualización de una opción de registro de CloudWatch existente

El siguiente ejemplo de código muestra cómo utilizar la acción UpdateApplication para modificar una opción de registro de CloudWatch. En el siguiente ejemplo, reemplace cada marcador de posición del usuario con su propia información. Para obtener más información sobre la acción, consulte UpdateApplication.

{ "ApplicationName": "<Name of the application to update the log option for>", "CloudWatchLoggingOptionUpdates": [ { "CloudWatchLoggingOptionId": "<ID of the logging option to modify>", "LogStreamARNUpdate": "<ARN of the new log stream to use>" } ], "CurrentApplicationVersionId": <ID of the application version to modify> }

Eliminación de una opción de registro de CloudWatch desde una aplicación

El siguiente ejemplo muestra cómo utilizar la acción DeleteApplicationCloudWatchLoggingOption para borrar una opción de registro de CloudWatch. En el siguiente ejemplo, reemplace cada marcador de posición del usuario con su propia información. Para obtener más información sobre la acción, consulte DeleteApplicationCloudWatchLoggingOption.

{ "ApplicationName": "<Name of application to delete log option from>", "CloudWatchLoggingOptionId": "<ID of the application log option to delete>", "CurrentApplicationVersionId": <Version of the application to delete the log option from> }

Establecimiento del nivel de registro de la aplicación

Para establecer el nivel de registro de la aplicación, utilice el parámetro MonitoringConfiguration de la acción CreateApplication o el parámetro MonitoringConfigurationUpdate de la acción UpdateApplication.

Para obtener más información acerca de los niveles del flujo de la aplicación, consulte Control de niveles de monitoreo de aplicaciones.

Establecimiento del nivel de registro de la aplicación al crear una aplicación

El siguiente ejemplo de solicitud de la acción CreateApplication establece el nivel de registro de la aplicación en INFO.

{ "ApplicationName": "MyApplication", "ApplicationDescription": "My Application Description", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::amzn-s3-demo-bucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "CodeContentType":"ZIPFILE" }, "FlinkApplicationConfiguration": "MonitoringConfiguration": { "ConfigurationType": "CUSTOM", "LogLevel": "INFO" } }, "RuntimeEnvironment": "FLINK-1_15", "ServiceExecutionRole": "arn:aws:iam::123456789123:role/myrole" }
Actualización del nivel de registro de la aplicación

El siguiente ejemplo de solicitud de la acción UpdateApplication establece el nivel de registro de la aplicación en INFO.

{ "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "MonitoringConfigurationUpdate": { "ConfigurationTypeUpdate": "CUSTOM", "LogLevelUpdate": "INFO" } } } }

Agregación de permisos para escribir en el flujo de registro de CloudWatch

Managed Service para Apache Flink necesita permisos para escribir errores de configuración en CloudWatch. Se puede añadir estos permisos al rol de AWS Identity and Access Management (IAM) que asume Managed Service para Apache Flink.

Para obtener más información sobre el uso de un rol de IAM para Managed Service para Apache Flink, consulte Identidad y gestión de acceso para Amazon Managed Service para Apache Flink.

Política de confianza

Para conceder permisos a Managed Service para Apache Flink para asumir un rol de IAM, puede asignar la siguiente política de confianza al rol.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "kinesisanalytics.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Política de permisos

Para conceder permisos a una aplicación para escribir eventos de registro en CloudWatch desde un recurso de Managed Service para Apache Flink, puede utilizar la siguiente política de permisos de IAM. Proporcione los nombres de recursos de Amazon (ARN) para el grupo de registro y flujo.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Stmt0123456789000", "Effect": "Allow", "Action": [ "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:us-east-1:123456789012:log-group:my-log-group:log-stream:my-log-stream*", "arn:aws:logs:us-east-1:123456789012:log-group:my-log-group:*", "arn:aws:logs:us-east-1:123456789012:log-group:*" ] } ] }

Control de niveles de monitoreo de aplicaciones

Usted controla la generación de los mensajes de registro de la aplicación mediante el nivel de métricas de monitoreo y el nivel de registro de monitoreo de la aplicación.

El nivel de métricas de supervisión de la aplicación controla la granularidad de los mensajes de registro. Los niveles de las métricas de monitoreo se definen de la siguiente manera:

El nivel de registro de supervisión de la aplicación controla la verbosidad del registro de la aplicación. Los niveles de registro de monitoreo se definen de la siguiente manera:

  • Error: posibles eventos catastróficos de la aplicación.

  • Advertencia: situaciones potencialmente dañinas de la aplicación.

  • Información: eventos de fallo informativos y transitorios de la aplicación. Se recomiendautilizar este nivel de registro.

  • Depuración: eventos informativos detallados que son muy útiles para depurar una aplicación. Nota: utilice este nivel únicamente con fines de depuración temporal.

Aplicación de prácticas recomendadas de registro

Se recomienda que la aplicación utilice el nivel de registro de información. Se recomiendaeste nivel para asegurarse de que aparecen los errores de Apache Flink, que se registran en el nivel de información y no en el nivel de error.

Se recomienda que utilice el nivel de depuración solo de forma temporal mientras investiga los problemas de las aplicaciones. Vuelva al nivel de información cuando se resuelva el problema. El uso del nivel de registro de depuración afectará significativamente al rendimiento de la aplicación.

El registro excesivo también puede afectar significativamente al rendimiento de la aplicación. Por ejemplo, se recomienda que no escriba una entrada de registro para cada registro procesado. El registro excesivo puede provocar graves cuellos de botella en el procesamiento de datos y provocar retrasos a la hora de leer los datos de las fuentes.

Realización de soluciones de problemas de registro

Si los registros de la aplicación no se escriben en el flujo de registro, compruebe lo siguiente:

Uso con información de registros de CloudWatch.

Una vez que haya activado el registro de CloudWatch en su aplicación, podrá utilizar CloudWatch Logs Insights para analizar los registros de la aplicación. Para obtener más información, consulte Analyze logs with CloudWatch Logs Insights.