Verwendung der Überwachungskonfiguration zur Überwachung von Flink-Kubernetes-Operator- und Flink-Aufträge - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwendung der Überwachungskonfiguration zur Überwachung von Flink-Kubernetes-Operator- und Flink-Aufträge

Mit der Überwachungskonfiguration können Sie die Protokollarchivierung Ihrer Flink-Anwendung und -Operator-Protokolle auf einfache Weise in S3 und/oder einrichten CloudWatch (Sie können eine oder beide auswählen). Dadurch wird Ihren JobManager und TaskManager Pods ein FluentD-Sidecar hinzugefügt und anschließend die Protokolle dieser Komponenten an Ihre konfigurierten Senken weitergeleitet.

Anmerkung

Sie müssen IAM-Rollen für das Servicekonto für Ihren Flink-Operator und Ihren Flink-Auftrag (Servicekonten) einrichten, um dieses Feature nutzen zu können, da sie die Interaktion mit anderen AWS-Services erfordert. Sie müssen dies mithilfe von IRSA in Flink-Kubernetes-Operator für Amazon EMR in EKS einrichten einrichten.

Sie können diese Konfiguration folgendermaßen definieren.

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

Im Folgenden finden Sie Konfigurationsoptionen.

  • s3MonitoringConfiguration – Konfigurationsschlüssel zum Einrichten der Weiterleitung an S3

    • logUri (erforderlich) – der S3-Bucket-Pfad, in dem Sie Ihre Protokolle speichern möchten.

    • Der Pfad auf S3 sieht nach dem Hochladen der Protokolle wie folgt aus.

      • Keine Protokollrotation aktiviert:

        s3://${logUri}/${POD NAME}/STDOUT or STDERR.gz
      • Die Protokollrotation ist aktiviert. Sie können sowohl eine rotierte Datei als auch eine aktuelle Datei (eine Datei ohne Datumsstempel) verwenden.

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

        Das folgende Format ist eine aufsteigende Zahl.

        s3://${logUri}/${POD NAME}/stdout_YYYYMMDD_index.gz
    • Die folgenden IAM-Berechtigungen sind erforderlich. um diese Weiterleitung zu nutzen.

      { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "S3_BUCKET_URI/*", "S3_BUCKET_URI" ] }
  • cloudWatchMonitoringConfiguration – Konfigurationsschlüssel zum Einrichten der Weiterleitung an CloudWatch.

    • logGroupName (erforderlich) – Name der CloudWatch Protokollgruppe, an die Sie Protokolle senden möchten (erstellt die Gruppe automatisch, falls sie nicht vorhanden ist).

    • logStreamNamePrefix (optional) – Name des Protokollstreams, an den Sie Protokolle senden möchten. Der Standardwert ist eine leere Zeichenfolge. Das Format lautet folgendermaßen:

      ${logStreamNamePrefix}/${POD NAME}/STDOUT or STDERR
    • Die folgenden IAM-Berechtigungen sind erforderlich. um diese Weiterleitung zu nutzen.

      { "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 (optional) – der Konfigurationsschlüssel zum Festlegen von Ressourcenlimits für den gestarteten Fluentbit-Sidecar-Container.

    • memoryLimit (Optional) – Der Standardwert ist 512Mi. Passen Sie ihn entsprechend Ihren Anforderungen an.

    • cpuLimit (optional) – Diese Option hat keinen Standard. Passen Sie ihn entsprechend Ihren Anforderungen an.

  • containerLogRotationConfiguration (optional) – steuert das Rotationsverhalten des Container-Protokolls. Sie ist standardmäßig aktiviert.

    • rotationSize (erforderlich) – gibt die Dateigröße für die Protokollrotation an. Der Bereich der möglichen Werte ist von 2 KB bis 2 GB. Die numerische Einheit des rotationSize-Parameters wird als Ganzzahl übergeben. Da Dezimalwerte nicht unterstützt werden, können Sie mit dem Wert 1 500 MB beispielsweise eine Rotationsgröße von 1,5 GB angeben. Der Standardwert ist 2 GB.

    • maxFilesToKeep (erforderlich) – gibt die maximale Anzahl von Dateien an, die nach der Rotation im Container aufbewahrt werden sollen. Der kleinste Wert ist 1 und der größte Wert ist 50. Der Standardwert ist 10.

Wir können auch die Protokollarchivierung für den Operator aktivieren, indem wir die folgenden Optionen in der values.yaml-Datei in Ihrer Helm-Chart-Installation verwenden. Sie können S3 CloudWatchoder beides aktivieren.

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

Im Folgenden sind die verfügbaren Konfigurationsoptionen unter monitoringConfiguration aufgeführt.

  • s3MonitoringConfiguration – Stellen Sie diese Option ein, um auf S3 zu archivieren.

  • logUri (erforderlich) – Der S3-Bucket-Pfad, in dem Sie Ihre Protokolle speichern möchten.

  • Im Folgenden finden Sie Formate dafür, wie die S3-Bucket-Pfade nach dem Hochladen der Protokolle aussehen könnten.

    • Keine Protokollrotation aktiviert.

      s3://${logUri}/${POD NAME}/OPERATOR or WEBHOOK/STDOUT or STDERR.gz
    • Die Protokollrotation ist aktiviert. Sie können sowohl eine rotierte Datei als auch eine aktuelle Datei (eine Datei ohne Datumsstempel) verwenden.

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

      Der folgende Formatindex ist eine aufsteigende Zahl.

      s3://${logUri}/${POD NAME}/OPERATOR or WEBHOOK/stdout_YYYYMMDD_index.gz
  • cloudWatchMonitoringConfiguration – der Konfigurationsschlüssel, um die Weiterleitung an einzurichten CloudWatch.

    • logGroupName (erforderlich) – Name der CloudWatch Protokollgruppe, an die Sie Protokolle senden möchten. Die Gruppe wird automatisch erstellt, wenn sie noch nicht vorhanden ist.

    • logStreamNamePrefix (optional) – Name des Protokollstreams, an den Sie Protokolle senden möchten. Der Standardwert ist eine leere Zeichenfolge. Das Format in CloudWatch lautet wie folgt:

      ${logStreamNamePrefix}/${POD NAME}/STDOUT or STDERR
  • sideCarResources (optional) – der Konfigurationsschlüssel zum Festlegen von Ressourcenlimits für den gestarteten Fluentbit-Sidecar-Container.

    • memoryLimit (optional) – das Speicherlimit. Passen Sie ihn entsprechend Ihren Anforderungen an. Der Standardwert ist 512 Mi.

    • cpuLimit – das CPU-Limit. Passen Sie ihn entsprechend Ihren Anforderungen an. Kein Standardwert.

  • containerLogRotationConfiguration (optional): – steuert das Rotationsverhalten des Container-Protokolls. Sie ist standardmäßig aktiviert.

    • rotationSize (erforderlich) – gibt die Dateigröße für die Protokollrotation an. Der Bereich der möglichen Werte ist von 2 KB bis 2 GB. Die numerische Einheit des rotationSize-Parameters wird als Ganzzahl übergeben. Da Dezimalwerte nicht unterstützt werden, können Sie mit dem Wert 1 500 MB beispielsweise eine Rotationsgröße von 1,5 GB angeben. Der Standardwert ist 2 GB.

    • maxFilesToKeep (erforderlich) – gibt die maximale Anzahl von Dateien an, die nach der Rotation im Container aufbewahrt werden sollen. Der kleinste Wert ist 1 und der größte Wert ist 50. Der Standardwert ist 10.