기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
모니터링 구성을 사용하여 Flink Kubernetes 연산자 및 Flink 작업 모니터링
모니터링 구성을 사용하면 Flink 애플리케이션 및 운영자 로그의 로그 아카이브를 S3 및/또는 CloudWatch로 쉽게 설정할 수 있습니다(둘 중 하나 또는 둘 다 선택 가능). 이렇게 하면 JobManager 및 TaskManager 포드에 FluentD sidecar가 추가되고 이후에 이러한 구성 요소의 로그가 구성된 싱크로 전달됩니다.
참고
이 기능을 사용하려면 다른 AWS 서비스와 상호 작용해야 하므로 Flink 운영자의 서비스 계정 및 Flink 작업(서비스 계정)에 대해 IAM 역할을 설정해야 합니다. Amazon EMR on EKS에 대한 Flink Kubernetes 운영자 설정에서 IRSA를 사용하여 설정해야 합니다.
Flink 애플리케이션 로그
다음과 같은 방법으로 이 구성을 정의할 수 있습니다.
apiVersion: flink.apache.org/v1beta1 kind: FlinkDeployment metadata: name: basic-example spec: image:FLINK IMAGE TAGimagePullPolicy: Always flinkVersion: v1_17 flinkConfiguration: taskmanager.numberOfTaskSlots: "2" executionRoleArn:JOB EXECUTION ROLEjobManager: resource: memory: "2048m" cpu: 1 taskManager: resource: memory: "2048m" cpu: 1 job: jarURI: local:///opt/flink/examples/streaming/StateMachineExample.jar monitoringConfiguration: s3MonitoringConfiguration: logUri:S3 BUCKETcloudWatchMonitoringConfiguration: logGroupName:LOG GROUP NAMElogStreamNamePrefix:LOG GROUP STREAM PREFIXsideCarResources: 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(예: 1,500MB 값)로 지정할 수 있습니다. 기본값은 2GB입니다.maxFilesToKeep(필수) - 로테이션을 수행한 후 컨테이너에서 보존할 최대 파일 수를 지정합니다. 최솟값은 1이고 최댓값은 50입니다. 기본값은 10.
Flink 운영자 로그
또한 차트 Helm 설치에 관한 values.yaml 파일에서 다음 옵션을 사용하여 운영자를 위한 로그 아카이브를 활성화할 수 있습니다. 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(예: 1,500MB 값)로 지정할 수 있습니다. 기본값은 2GB입니다.maxFilesToKeep(필수) - 로테이션을 수행한 후 컨테이너에서 보존할 최대 파일 수를 지정합니다. 최솟값은 1이고 최댓값은 50입니다. 기본값은 10.