

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Utilizza la configurazione di monitoraggio per monitorare l'operatore Flink Kubernetes e i lavori Flink
<a name="jobruns-flink-monitoring-configuration"></a>

La configurazione di monitoraggio consente di configurare facilmente l'archiviazione dei log dell'applicazione Flink e dei registri degli operatori su S3 and/or CloudWatch (è possibile sceglierne uno o entrambi). In questo modo aggiungi un sidecar FluentD ai JobManager tuoi pod TaskManager e successivamente inoltra i registri di questi componenti ai lavandini configurati.

**Nota**  
Devi configurare i ruoli IAM per l'account di servizio per l'operatore Flink e il processo Flink (Account di servizio) per poter utilizzare questa funzionalità, perché richiede l'interazione con altri Servizi AWS. Per la configurazione è necessario utilizzare IRSA in [Configurazione dell'operatore Flink Kubernetes per Amazon EMR su EKS](jobruns-flink-kubernetes-operator-setup.md).

## Log dell'applicazione Flink
<a name="jobruns-flink-monitoring-configuration-application-logs"></a>

Puoi definire questa configurazione nel modo seguente.

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

Di seguito sono elencate le opzioni di configurazione.
+ `s3MonitoringConfiguration`: chiave di configurazione per impostare l'inoltro a S3
  + `logUri` (obbligatorio): il percorso del bucket S3 in cui desideri archiviare i log.
  + Il percorso su S3 una volta caricati i log sarà simile al seguente.
    + Rotazione dei log non abilitata:

      ```
      s3://${logUri}/${POD NAME}/STDOUT or STDERR.gz
      ```
    + La rotazione dei log è abilitata. Puoi utilizzare sia un file ruotato sia un file corrente (uno senza marcatura temporale).

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

      Il formato seguente è un numero crescente.

      ```
      s3://${logUri}/${POD NAME}/stdout_YYYYMMDD_index.gz
      ```
  + Per utilizzare questo strumento di inoltro, sono necessarie le seguenti autorizzazioni IAM.

    ```
    {
        "Effect": "Allow",
        "Action": [
            "s3:PutObject"
        ],
        "Resource": [
           "S3_BUCKET_URI/*",
           "S3_BUCKET_URI"
        ]
    }
    ```
+ `cloudWatchMonitoringConfiguration`— chiave di configurazione verso cui impostare l'inoltro. CloudWatch
  + `logGroupName`(obbligatorio) — nome del gruppo di CloudWatch log a cui si desidera inviare i log (crea automaticamente il gruppo se non esiste).
  + `logStreamNamePrefix` (facoltativo): nome del flusso di log a cui si desidera inviare i log. Il valore predefinito è una stringa vuota. Il formato è il seguente:

    ```
    ${logStreamNamePrefix}/${POD NAME}/STDOUT or STDERR
    ```
  + Per utilizzare questo strumento di inoltro, sono necessarie le seguenti autorizzazioni IAM.

    ```
    {
        "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` (facoltativo): la chiave di configurazione per impostare i limiti delle risorse sul container sidecar Fluentbit avviato.
  + `memoryLimit` (facoltativo): il valore predefinito è 512Mi. Regola secondo necessità.
  + `cpuLimit` (facoltativo): questa opzione non ha un valore predefinito. Regola secondo necessità.
+ `containerLogRotationConfiguration` (facoltativo): controlla il comportamento di rotazione dei log di container. È abilitato per impostazione predefinita.
  + `rotationSize` (obbligatorio): specifica la dimensione del file per la rotazione dei log. L'intervallo di valori possibili è compreso tra 2 KB e 2 GB. La parte relativa all'unità numerica del parametro rotationSize viene trasmessa come numero intero. Poiché i valori decimali non sono supportati, puoi specificare una dimensione di rotazione di 1,5 GB, ad esempio, con il valore 1.500 MB. Il valore predefinito è 2 GB.
  + `maxFilesToKeep` (obbligatorio): specifica il numero massimo di file da mantenere nel container in seguito alla rotazione. Il valore minimo è 1, quello massimo è 50. Il valore predefinito è 10.

## Log dell'operatore Flink
<a name="jobruns-flink-monitoring-configuration-operator-logs"></a>

È anche possibile abilitare l'archiviazione dei log dell'operatore utilizzando le opzioni seguenti nel file `values.yaml` nell'installazione del grafico Helm. Puoi abilitare S3 o entrambi. 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
```

Di seguito sono elencate le opzioni di configurazione disponibili in `monitoringConfiguration`.
+ `s3MonitoringConfiguration`: imposta questa opzione per l'archiviazione su S3.
+ `logUri` (obbligatorio): il percorso del bucket S3 in cui desideri archiviare i log.
+ Di seguito sono riportati i formati che mostrano come potrebbero presentarsi i percorsi del bucket S3 una volta caricati i log.
  + Rotazione dei log non abilitata.

    ```
    s3://${logUri}/${POD NAME}/OPERATOR or WEBHOOK/STDOUT or STDERR.gz
    ```
  + La rotazione dei log è abilitata. Puoi utilizzare sia un file ruotato sia un file corrente (uno senza marcatura temporale).

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

    L'indice di formato seguente è un numero crescente.

    ```
    s3://${logUri}/${POD NAME}/OPERATOR or WEBHOOK/stdout_YYYYMMDD_index.gz
    ```
+ `cloudWatchMonitoringConfiguration`— la chiave di configurazione verso cui configurare l'inoltro. CloudWatch
  + `logGroupName`(obbligatorio) — nome del gruppo di CloudWatch log a cui si desidera inviare i log. Se non esiste, il gruppo viene creato in automatico.
  + `logStreamNamePrefix` (facoltativo): nome del flusso di log a cui si desidera inviare i log. Il valore predefinito è una stringa vuota. Il formato in CloudWatch è il seguente:

    ```
    ${logStreamNamePrefix}/${POD NAME}/STDOUT or STDERR
    ```
+ `sideCarResources` (facoltativo): la chiave di configurazione per impostare i limiti delle risorse sul container sidecar Fluentbit avviato.
  + `memoryLimit` (facoltativo): il limite di memoria. Regola secondo necessità. Il valore predefinito è 512Mi.
  + `cpuLimit`: il limite della CPU. Regola secondo necessità. Nessun valore predefinito.
+ `containerLogRotationConfiguration` (facoltativo): controlla il comportamento di rotazione dei log di container. È abilitato per impostazione predefinita.
  + `rotationSize` (obbligatorio): specifica la dimensione del file per la rotazione dei log. L'intervallo di valori possibili è compreso tra 2 KB e 2 GB. La parte relativa all'unità numerica del parametro rotationSize viene trasmessa come numero intero. Poiché i valori decimali non sono supportati, puoi specificare una dimensione di rotazione di 1,5 GB, ad esempio, con il valore 1.500 MB. Il valore predefinito è 2 GB.
  + `maxFilesToKeep` (obbligatorio): specifica il numero massimo di file da mantenere nel container in seguito alla rotazione. Il valore minimo è 1, quello massimo è 50. Il valore predefinito è 10.