Uso della configurazione di monitoraggio per monitorare l'operatore Flink Kubernetes e i processi Flink - Amazon EMR

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à.

Uso della configurazione di monitoraggio per monitorare l'operatore Flink Kubernetes e i processi Flink

La configurazione del monitoraggio consente di configurare facilmente l'archiviazione dei log dell'applicazione Flink e dei registri degli operatori su S3 e/o 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.

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.

È 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.