

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.

# Uso de la configuración de supervisión para supervisar el operador de Flink Kubernetes y los trabajos de Flink
<a name="jobruns-flink-monitoring-configuration"></a>

La configuración de monitoreo le permite configurar fácilmente el archivado de registros de su aplicación Flink y los registros del operador en S3 and/or 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 los roles de IAM para la cuenta de servicio de su operador de Flink y su trabajo de Flink (cuentas de servicio) para poder utilizar esta característica, ya que requiere interactuar con otros Servicios de AWS. Debe configurarlo con las IRSA en [Configuración del operador de Kubernetes de Flink para Amazon EMR en EKS](jobruns-flink-kubernetes-operator-setup.md).

## Registros de aplicaciones de Flink
<a name="jobruns-flink-monitoring-configuration-application-logs"></a>

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
      ```
  + Los siguientes permisos de IAM son necesarios para utilizar 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
    ```
  + Los siguientes permisos de IAM son necesarios para utilizar 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 parámetro rotationSize 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.

## Registros del operador de Flink
<a name="jobruns-flink-monitoring-configuration-operator-logs"></a>

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 activar S3 o ambas opciones. 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 se debe 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 límite de la CPU. 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 parámetro rotationSize 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.