Amazon Managed Service for Prometheus를 사용하여 Flink 작업 모니터링 - Amazon EMR

Amazon Managed Service for Prometheus를 사용하여 Flink 작업 모니터링

Amazon Managed Service for Prometheus(관리 포털)와 Apache Flink를 통합할 수 있습니다. Amazon Managed Service for Prometheus는 Amazon EKS에서 실행되는 클러스터에서 Amazon Managed Service for Prometheus 서버의 지표 수집을 지원합니다. Amazon Managed Service for Prometheus는 Amazon EKS 클러스터에서 이미 실행 중인 Prometheus 서버와 함께 작동합니다. Amazon EMR Flink 운영자와의 Amazon Managed Service for Prometheus 통합을 실행하면 Amazon Managed Service for Prometheus와 통합되도록 Prometheus 서버를 자동으로 배포하고 구성합니다.

  1. Amazon Managed Service for Prometheus Workspace를 생성합니다. 이 Workspace는 수집 엔드포인트 역할을 합니다. 나중에 원격 쓰기 URL이 필요합니다.

  2. 서비스 계정에 대한 IAM 역할 설정.

    이 온보딩 방법에서서는 Prometheus 서버가 실행되는 Amazon EKS 클러스터의 서비스 계정에 대한 IAM 역할을 사용합니다. 이러한 역할을 서비스 역할이라고도 합니다.

    아직 역할이 없는 경우 Amazon EKS 클러스터의 지표 수집을 위한 서비스 역할을 설정합니다.

    계속하기 전에 amp-iamproxy-ingest-role이라는 IAM 역할을 생성합니다.

  3. Amazon Managed Service for Prometheus와 함께 Amazon EMR Flink 운영자를 설치합니다.

이제 Amazon Managed Service for Prometheus Workspace, Amazon Managed Service for Prometheus에 대한 전용 IAM 역할 및 필요한 권한이 확보되었으므로 Amazon EMR Flink 운영자를 설치할 수 있습니다.

enable-amp.yaml 파일을 생성합니다. 이 파일을 사용하면 사용자 지정 구성을 사용하여 Amazon Managed Service for Prometheus 설정을 재정의할 수 있습니다. 고유한 역할을 사용해야 합니다.

kube-prometheus-stack: prometheus: serviceAccount: create: true name: "amp-iamproxy-ingest-service-account" annotations: eks.amazonaws.com/role-arn: "arn:aws:iam::<AWS_ACCOUNT_ID>:role/amp-iamproxy-ingest-role" remoteWrite: - url: <AMAZON_MANAGED_PROMETHEUS_REMOTE_WRITE_URL> sigv4: region: <AWS_REGION> queueConfig: maxSamplesPerSend: 1000 maxShards: 200 capacity: 2500

Helm Install --set 명령을 사용하여 flink-kubernetes-operator 차트에 재정의를 전달합니다.

helm upgrade -n <namespace> flink-kubernetes-operator \ oci://public.ecr.aws/emr-on-eks/flink-kubernetes-operator \ --set prometheus.enabled=true -f enable-amp.yaml

이 명령은 포트 9999의 연산자에 Prometheus 리포터를 자동으로 설치합니다. 향후 FlinkDeployment는 9249의 metrics 포트를 공개합니다.

  • Flink 운영자 지표는 Prometheus의 flink_k8soperator_ 레이블 아래에 표시됩니다.

  • Flink 태스크 관리자 지표는 Prometheus의 flink_taskmanager_ 레이블 아래에 표시됩니다.

  • Flink 작업 관리자 지표는 Prometheus의 flink_jobmanager_ 레이블 아래에 표시됩니다.