Utilice la configuración de supervisión para supervisar las tareas del operador de Flink, Kubernetes y de Flink - Amazon EMR

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Utilice la configuración de supervisión para supervisar las tareas del operador de Flink, Kubernetes y de Flink

La configuración de monitoreo le permite configurar fácilmente el archivado de registros de sus aplicaciones y registros de operadores de Flink en S3 y/o CloudWatch (puede elegir uno o ambos). Al hacerlo, se añade un sidecar FluentD a los módulos TaskManager y, posteriormente, se JobManager reenvían los registros de estos componentes a los sumideros configurados.

nota

Debe configurar las IAM funciones de la cuenta de servicio de su operador de Flink y su trabajo de Flink (cuentas de servicio) para poder utilizar esta función, ya que requiere interactuar con otras. Servicios de AWS Debe configurarlo mediante IRSA in. Configuración del operador Flink Kubernetes para Amazon en EMR EKS

Puede definir la configuración de la siguiente manera:

apiVersion: flink.apache.org/v1beta1 kind: FlinkDeployment metadata: name: basic-example spec: image: FLINK IMAGE TAG imagePullPolicy: Always flinkVersion: v1_17 flinkConfiguration: taskmanager.numberOfTaskSlots: "2" executionRoleArn: JOB EXECUTION ROLE jobManager: resource: memory: "2048m" cpu: 1 taskManager: resource: memory: "2048m" cpu: 1 job: jarURI: local:///opt/flink/examples/streaming/StateMachineExample.jar monitoringConfiguration: s3MonitoringConfiguration: logUri: S3 BUCKET cloudWatchMonitoringConfiguration: logGroupName: LOG GROUP NAME logStreamNamePrefix: LOG GROUP STREAM PREFIX sideCarResources: limits: cpuLimit: 500m memoryLimit: 250Mi containerLogRotationConfiguration: rotationSize: 2GB maxFilesToKeep: 10

Las siguientes son opciones de configuración.

  • s3MonitoringConfiguration: clave de configuración para configurar el reenvío a S3

    • logUri (obligatorio): la ruta del bucket de S3 donde desea almacenar sus registros.

    • Una vez cargados los registros, la ruta en S3 tendrá el siguiente aspecto.

      • La rotación de los registros no está habilitada:

        s3://${logUri}/${POD NAME}/STDOUT or STDERR.gz
      • La rotación de los registros está habilitada. Puede utilizar tanto un archivo rotado como un archivo actual (uno sin la fecha).

        s3://${logUri}/${POD NAME}/STDOUT or STDERR.gz

        El siguiente formato es un número creciente.

        s3://${logUri}/${POD NAME}/stdout_YYYYMMDD_index.gz
    • Se requieren los siguientes IAM permisos para usar este reenviador.

      { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "S3_BUCKET_URI/*", "S3_BUCKET_URI" ] }
  • cloudWatchMonitoringConfiguration— clave de configuración para configurar el reenvío. CloudWatch

    • logGroupName(obligatorio): nombre del grupo de CloudWatch registros al que desea enviar los registros (crea automáticamente el grupo si no existe).

    • logStreamNamePrefix (opcional): nombre del flujo de registro al que quiere enviar registros. El valor predeterminado es una cadena vacía. El formato es el siguiente:

      ${logStreamNamePrefix}/${POD NAME}/STDOUT or STDERR
    • Se requieren los siguientes IAM permisos para usar este reenviador.

      { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:REGION:ACCOUNT-ID:log-group:{YOUR_LOG_GROUP_NAME}:*", "arn:aws:logs:REGION:ACCOUNT-ID:log-group:{YOUR_LOG_GROUP_NAME}" ] }
  • sideCarResources (opcional): la clave de configuración para establecer los límites de recursos en el contenedor asociado de Fluentbit lanzado.

    • memoryLimit (opcional): el valor predeterminado es 512 Mi. Ajústelo según sus necesidades.

    • cpuLimit (opcional): esta opción no tiene un valor predeterminado. Ajústelo según sus necesidades.

  • containerLogRotationConfiguration (opcional): controla el comportamiento de la rotación del registro de contenedor. Está habilitada de forma predeterminada.

    • rotationSize (obligatorio): especifica el tamaño del archivo para la rotación del registro. El rango de valores posibles va de 2 KB a 2 GB. La parte de la unidad numérica del rotationSize parámetro se pasa como un número entero. Como no se admiten valores decimales, puede especificar un tamaño de rotación de 1,5 GB, por ejemplo, con el valor 1500 MB. El valor predeterminado es 2 GB.

    • maxFilesToKeep (obligatorio): especifica el número máximo de archivos que deben retenerse en el contenedor una vez hecha la rotación. El valor mínimo es 1 y el máximo, 50. El valor predeterminado es 10.

También podemos habilitar el archivado de registros para el operador al utilizar las siguientes opciones en el archivo values.yaml en la instalación del gráfico de Helm. Puede habilitar S3 o ambos. CloudWatch

monitoringConfiguration: s3MonitoringConfiguration: logUri: "S3-BUCKET" totalFileSize: "1G" uploadTimeout: "1m" cloudWatchMonitoringConfiguration: logGroupName: "flink-log-group" logStreamNamePrefix: "example-job-prefix-test-2" sideCarResources: limits: cpuLimit: 1 memoryLimit: 800Mi memoryBufferLimit: 700M

A continuación se describen las opciones de configuración disponibles de monitoringConfiguration.

  • s3MonitoringConfiguration: configure esta opción para archivar en S3.

  • logUri (obligatorio): la ruta del bucket de S3 donde desea almacenar sus registros.

  • Los siguientes son formatos de cómo se verían las rutas del bucket de S3 una vez cargados los registros.

    • La rotación de los registros no está habilitada.

      s3://${logUri}/${POD NAME}/OPERATOR or WEBHOOK/STDOUT or STDERR.gz
    • La rotación de los registros está habilitada. Puede utilizar tanto un archivo rotado como un archivo actual (uno sin la fecha).

      s3://${logUri}/${POD NAME}/OPERATOR or WEBHOOK/STDOUT or STDERR.gz

      El siguiente índice de formato es un número creciente.

      s3://${logUri}/${POD NAME}/OPERATOR or WEBHOOK/stdout_YYYYMMDD_index.gz
  • cloudWatchMonitoringConfiguration— la clave de configuración a la que configurar el reenvío. CloudWatch

    • logGroupName(obligatorio): nombre del grupo de CloudWatch registros al que desea enviar los registros. Si el grupo no existe, se crea automáticamente.

    • logStreamNamePrefix (opcional): nombre del flujo de registro al que quiere enviar registros. El valor predeterminado es una cadena vacía. El formato CloudWatch es el siguiente:

      ${logStreamNamePrefix}/${POD NAME}/STDOUT or STDERR
  • sideCarResources (opcional): la clave de configuración para establecer los límites de recursos en el contenedor asociado de Fluentbit lanzado.

    • memoryLimit (opcional): el límite de memoria. Ajústelo según sus necesidades. El valor predeterminado es 512Mi.

    • cpuLimit— el CPU límite. Ajústelo según sus necesidades. Sin valor predeterminado.

  • containerLogRotationConfiguration (opcional): controla el comportamiento de la rotación de los registro de contenedor. Está habilitada de forma predeterminada.

    • rotationSize (obligatorio): especifica el tamaño del archivo para la rotación del registro. El rango de valores posibles va de 2 KB a 2 GB. La parte de la unidad numérica del rotationSize parámetro se pasa como un número entero. Como no se admiten valores decimales, puede especificar un tamaño de rotación de 1,5 GB, por ejemplo, con el valor 1500 MB. El valor predeterminado es 2 GB.

    • maxFilesToKeep (obligatorio): especifica el número máximo de archivos que deben retenerse en el contenedor una vez hecha la rotación. El valor mínimo es 1 y el máximo, 50. El valor predeterminado es 10.