Verwenden Sie die Überwachungskonfiguration, um den Flink Kubernetes-Operator und die Flink-Jobs zu überwachen - 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.

Verwenden Sie die Überwachungskonfiguration, um den Flink Kubernetes-Operator und die Flink-Jobs zu überwachen

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

Anmerkung

Sie müssen IAM Rollen für das Dienstkonto für Ihren Flink-Operator und Ihren Flink-Job einrichten (Service Accounts), um diese Funktion nutzen zu können, da sie die Interaktion mit anderen erfordert. AWS-Services Sie müssen dies mit IRSA in einrichten. Einrichtung des Flink Kubernetes-Operators für Amazon auf EMR EKS

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 diesen Forwarder zu verwenden.

      { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "S3_BUCKET_URI/*", "S3_BUCKET_URI" ] }
  • cloudWatchMonitoringConfiguration— Konfigurationsschlüssel, an den die Weiterleitung eingerichtet werden soll CloudWatch.

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

    • 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 diesen Forwarder zu verwenden.

      { "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 oder beides aktivieren. 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

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, zu dem die Weiterleitung eingerichtet werden soll 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.