

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Uso da configuração de monitoramento para monitorar o operador do Kubernetes do Flink e os trabalhos do Flink
<a name="jobruns-flink-monitoring-configuration"></a>

A configuração de monitoramento permite que você configure facilmente o arquivamento de registros do seu aplicativo Flink e dos registros do operador no S3 and/or CloudWatch (você pode escolher um ou ambos). Isso adiciona um sidecar FluentD aos JobManager seus pods TaskManager e, posteriormente, encaminha os registros desses componentes para os coletores configurados.

**nota**  
Você deve configurar perfis do IAM para a conta de serviço do seu operador do Flink e seu trabalho do Flink (contas de serviço) para poder usar esse recurso, pois ele requer interação com outros Serviços da AWS. Você deve configurar isso usando IRSA em [Configuração do operador do Kubernetes para Flink para o Amazon EMR no EKS](jobruns-flink-kubernetes-operator-setup.md).

## Logs da aplicação do Flink
<a name="jobruns-flink-monitoring-configuration-application-logs"></a>

Você pode definir essa configuração da maneira apresentada a seguir.

```
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
```

A seguir, são apresentadas as opções de configuração.
+ `s3MonitoringConfiguration`: a chave de configuração para configurar o encaminhamento para o S3.
  + `logUri` (obrigatório): o caminho do bucket do S3 em que você deseja armazenar seus logs.
  + O caminho no S3 depois que os logs forem carregados será semelhante ao apresentado a seguir.
    + Nenhuma alternância de log habilitada:

      ```
      s3://${logUri}/${POD NAME}/STDOUT or STDERR.gz
      ```
    + A alternância de log está habilitada. Você pode usar um arquivo rotacionado e um arquivo atual (um que não tenha carimbo de data).

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

      O formato a seguir é um número incremental.

      ```
      s3://${logUri}/${POD NAME}/stdout_YYYYMMDD_index.gz
      ```
  + As permissões do IAM apresentadas a seguir são obrigatórias para usar este encaminhador.

    ```
    {
        "Effect": "Allow",
        "Action": [
            "s3:PutObject"
        ],
        "Resource": [
           "S3_BUCKET_URI/*",
           "S3_BUCKET_URI"
        ]
    }
    ```
+ `cloudWatchMonitoringConfiguration`— chave de configuração para a qual configurar o encaminhamento. CloudWatch
  + `logGroupName`(obrigatório) — nome do grupo de CloudWatch registros para o qual você deseja enviar registros (cria automaticamente o grupo se ele não existir).
  + `logStreamNamePrefix` (opcional): o nome do fluxo de logs para o qual você deseja enviar os logs. O valor padrão é uma string vazia. O formato é o seguinte:

    ```
    ${logStreamNamePrefix}/${POD NAME}/STDOUT or STDERR
    ```
  + As permissões do IAM apresentadas a seguir são obrigatórias para usar este encaminhador.

    ```
    {
        "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): a chave de configuração para definir limites de recursos no contêiner sidecar do Fluent Bit iniciado.
  + `memoryLimit` (opcional): o valor padrão é 512 Mi. Ajuste de acordo com suas necessidades.
  + `cpuLimit` (opcional): esta opção não tem um padrão. Ajuste de acordo com suas necessidades.
+ `containerLogRotationConfiguration` (opcional): controla o comportamento de alternância de log do contêiner. Ele é habilitado por padrão.
  + `rotationSize` (obrigatório): especifica o tamanho do arquivo para a alternância de log. O intervalo de valores possíveis é de 2 KB a 2 GB. A parcela numérica da unidade do parâmetro rotationSize é transferida como um número inteiro. Como não há suporte para valores decimais, você pode especificar um tamanho de rotação de 1,5 GB, por exemplo, com o valor 1.500 MB. O padrão é 2 GB.
  + `maxFilesToKeep` (obrigatório): especifica o número máximo de arquivos a serem retidos no contêiner após a alternância ter ocorrido. O valor mínimo é de 1 e o valor máximo é de 50. O padrão é 10.

## Logs do operador do Flink
<a name="jobruns-flink-monitoring-configuration-operator-logs"></a>

Também podemos habilitar o arquivamento de logs para o operador ao usar as opções apresentadas a seguir no arquivo `values.yaml` da instalação do chart do Helm. Você pode ativar o S3 ou 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 seguir, estão apresentadas as opções de configuração disponíveis em `monitoringConfiguration`.
+ `s3MonitoringConfiguration`: defina esta opção para realizar o arquivamento no S3.
+ `logUri` (obrigatório): o caminho do bucket do S3 em que você deseja armazenar seus logs.
+ A seguir, estão apresentados os formatos de como os caminhos do bucket do S3 podem parecer depois que os logs são carregados.
  + Nenhuma alternância de log habilitada.

    ```
    s3://${logUri}/${POD NAME}/OPERATOR or WEBHOOK/STDOUT or STDERR.gz
    ```
  + A alternância de log está habilitada. Você pode usar um arquivo rotacionado e um arquivo atual (um que não tenha carimbo de data).

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

    O índice de formato a seguir é um número incremental.

    ```
    s3://${logUri}/${POD NAME}/OPERATOR or WEBHOOK/stdout_YYYYMMDD_index.gz
    ```
+ `cloudWatchMonitoringConfiguration`— a chave de configuração para a qual configurar o encaminhamento. CloudWatch
  + `logGroupName`(obrigatório) — nome do grupo de CloudWatch registros para o qual você deseja enviar registros. O grupo é criado automaticamente, se não existir.
  + `logStreamNamePrefix` (opcional): o nome do fluxo de logs para o qual você deseja enviar os logs. O valor padrão é uma string vazia. O formato em CloudWatch é o seguinte:

    ```
    ${logStreamNamePrefix}/${POD NAME}/STDOUT or STDERR
    ```
+ `sideCarResources` (opcional): a chave de configuração para definir limites de recursos no contêiner sidecar do Fluent Bit iniciado.
  + `memoryLimit` (opcional): o limite de memória. Ajuste de acordo com suas necessidades. O padrão é de 512Mi.
  + `cpuLimit`: o limite de CPU. Ajuste de acordo com suas necessidades. Nenhum valor padrão.
+ `containerLogRotationConfiguration` (opcional): controla o comportamento de alternância de log do contêiner. Ele é habilitado por padrão.
  + `rotationSize` (obrigatório): especifica o tamanho do arquivo para a alternância de log. O intervalo de valores possíveis é de 2 KB a 2 GB. A parcela numérica da unidade do parâmetro rotationSize é transferida como um número inteiro. Como não há suporte para valores decimais, você pode especificar um tamanho de rotação de 1,5 GB, por exemplo, com o valor 1.500 MB. O padrão é 2 GB.
  + `maxFilesToKeep` (obrigatório): especifica o número máximo de arquivos a serem retidos no contêiner após a alternância ter ocorrido. O valor mínimo é de 1 e o valor máximo é de 50. O padrão é 10.