使用监控配置监控 Flink Kubernetes Operator 和 Flink 任务 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用监控配置监控 Flink Kubernetes Operator 和 Flink 任务

监控配置使您可以轻松地将 Flink 应用程序和操作员日志的日志存档设置为 S3 和/或 CloudWatch (您可以选择其中一个或两个)。这样做会向 JobManager 你的 TaskManager 和容器添加一个 FluentD 边车,然后将这些组件的日志转发到你配置的接收器。

注意

必须为 Flink Operator 和 Flink 任务(服务账户)设置服务账户的 IAM 角色,才能使用此功能,因为它需要与其他 Amazon Web Services进行交互。您必须按照 设置 Amazon EMR on EKS 的 Flink Kubernetes Operator,使用 IRSA 进行设置。

您可以通过下列方式来定义此配置。

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

配置选项如下。

  • s3MonitoringConfiguration – 用来设置转发到 S3 的配置密钥

    • logUri(必需)– 用来存储日志的 S3 存储桶路径。

    • 上传日志后,S3 中的路径如下所示。

      • 未启用日志轮换:

        s3://${logUri}/${POD NAME}/STDOUT or STDERR.gz
      • 已启用日志轮换。您可以同时使用轮换文件和当前文件(不带日期戳的文件)。

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

        以下格式是递增数字。

        s3://${logUri}/${POD NAME}/stdout_YYYYMMDD_index.gz
    • 使用此转发器需要以下 IAM 权限。

      { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "S3_BUCKET_URI/*", "S3_BUCKET_URI" ] }
  • cloudWatchMonitoringConfiguration— 用于设置转发的配置密钥 CloudWatch。

    • logGroupName(必填)— 要向其发送 CloudWatch 日志的日志组的名称(如果该组不存在,则自动创建该组)。

    • logStreamNamePrefix(可选)– 要向其发送日志的日志流的名称。默认值是空字符串。格式如下所示:

      ${logStreamNamePrefix}/${POD NAME}/STDOUT or STDERR
    • 使用此转发器需要以下 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(可选)– 用于在启动的 Fluentbit Sidecar 容器上设置资源限制的配置密钥。

    • memoryLimit(可选)– 默认值为 512Mi。根据自身需求进行调整。

    • cpuLimit(可选)– 此选项没有默认值。根据自身需求进行调整。

  • containerLogRotationConfiguration(可选)– 控制容器日志的轮换行为。该功能默认已启用。

    • rotationSize(必需)– 指定日志轮换的文件大小。可行值的范围从 2KB 到 2GB 不等。rotationSize 参数的数字单位部分以整数形式传递。由于不支持十进制值,您可以指定 1.5GB 的轮换大小,例如值 1500MB。默认值为 2GB。

    • maxFilesToKeep(必需)– 指定轮换后要在容器中保留的最大文件数。最小值为 1,最大值为 50。默认值为 10。

我们还可以使用 Helm 图表安装 values.yaml 文件中的以下选项,为 Operator 启用日志存档。您可以启用 S3 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

monitoringConfiguration 下的可用配置选项如下。

  • s3MonitoringConfiguration – 设置此选项以存档到 S3。

  • logUri(必填项)– 用来存储日志的 S3 存储桶路径。

  • 以下是上传日志后 S3 存储桶路径的示例格式。

    • 未启用日志轮换。

      s3://${logUri}/${POD NAME}/OPERATOR or WEBHOOK/STDOUT or STDERR.gz
    • 已启用日志轮换。您可以同时使用轮换文件和当前文件(不带日期戳的文件)。

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

      以下格式索引是递增数字。

      s3://${logUri}/${POD NAME}/OPERATOR or WEBHOOK/stdout_YYYYMMDD_index.gz
  • cloudWatchMonitoringConfiguration— 用于设置转发的配置密钥 CloudWatch。

    • logGroupName(必填)— 您要向其发送 CloudWatch 日志的日志组的名称。如果日志组不存在,则会自动创建。

    • logStreamNamePrefix(可选)– 要向其发送日志的日志流的名称。默认值是空字符串。中的格式 CloudWatch 如下:

      ${logStreamNamePrefix}/${POD NAME}/STDOUT or STDERR
  • sideCarResources(可选)– 用于在启动的 Fluentbit Sidecar 容器上设置资源限制的配置密钥。

    • memoryLimit(可选)– 内存限制。根据自身需求进行调整。默认值为 512Mi。

    • cpuLimit – CPU 限制。根据自身需求进行调整。无默认值。

  • containerLogRotationConfiguration(可选)– 控制容器日志的轮换行为。该功能默认已启用。

    • rotationSize(必需)– 指定日志轮换的文件大小。可行值的范围从 2KB 到 2GB 不等。rotationSize 参数的数字单位部分以整数形式传递。由于不支持十进制值,您可以指定 1.5GB 的轮换大小,例如值 1500MB。默认值为 2GB。

    • maxFilesToKeep(必需)– 指定轮换后要在容器中保留的最大文件数。最小值为 1,最大值为 50。默认值为 10。