이 문서에서는 Google Cloud Managed Service for Prometheus를 사용하여 Flink 내보내기 도구에서 측정항목을 수집할 수 있도록 Google Kubernetes Engine 배포를 구성하는 방법을 설명합니다. 이 문서에서는 다음을 수행하는 방법을 보여줍니다.
- 측정항목을 보고하도록 Flink 내보내기 도구를 설정합니다.
- 내보낸 측정항목을 수집하도록 Managed Service for Prometheus의 PodMonitoring 리소스를 구성합니다.
- 측정항목을 보도록 Cloud Monitoring의 대시보드에 액세스합니다.
- 측정항목을 모니터링하도록 알림 규칙을 구성합니다.
이 안내는 관리형 컬렉션을 Managed Service for Prometheus와 함께 사용하는 경우에만 적용됩니다. 자체 배포 컬렉션을 사용하는 경우 Flink 문서에서 설치 정보를 참조하세요.
이 안내는 예시로서 제공되며 대부분의 Kubernetes 환경에서 작동합니다. 제한적인 보안 또는 조직 정책으로 인해 애플리케이션 또는 내보내기 도구를 설치하는 데 문제가 있으면 지원을 위한 오픈소스 문서를 참조하는 것이 좋습니다.
Flink에 대한 자세한 내용은 Apache Flink를 참조하세요.
기본 요건
Managed Service for Prometheus 및 관리형 컬렉션을 사용하여 Flink 내보내기 도구에서 측정항목을 수집하려면 배포가 다음 요구사항을 충족해야 합니다.
- 클러스터가 Google Kubernetes Engine 버전 1.21.4-gke.300 이상을 실행 중이어야 합니다.
- 관리형 컬렉션이 사용 설정된 상태에서 Managed Service for Prometheus를 실행 중이어야 합니다. 자세한 내용은 관리형 컬렉션 시작하기를 참조하세요.
- Cloud Monitoring에서 사용할 수 있는 대시보드를 Flink 통합에 사용하려면
flink
버전 1.17 이상을 사용해야 합니다.사용 가능한 대시보드에 대한 자세한 내용은 대시보드 보기를 참조하세요.
metrics.reporter.prom.factory.class: org.apache.flink.metrics.prometheus.PrometheusReporterFactory
로 구성된 경우 Prometheus 형식의 측정항목을 노출합니다.
공식 시작하기 매니페스트를 사용하여 Flink를 배포한 경우 ConfigMap에 이 새로운 옵션을 추가합니다.
apiVersion: v1 kind: ConfigMap metadata: name: flink-config labels: app: flink data: flink-conf.yaml: |+ ... + metrics.reporter.prom.factory.class: org.apache.flink.metrics.prometheus.PrometheusReporterFactory
공식 연산자를 사용하여 Flink를 배포한 경우 FlinkDeployment의 spec.flinkConfiguration
필드에 이 새로운 옵션을 추가합니다.
apiVersion: flink.apache.org/v1beta1 kind: FlinkDeployment metadata: name: basic-example spec: image: flink:1.17 flinkVersion: v1_17 flinkConfiguration: taskmanager.numberOfTaskSlots: "2" + metrics.reporter.prom.factory.class: org.apache.flink.metrics.prometheus.PrometheusReporterFactory
또는 Flink 연산자 구성 내의 기본 옵션으로 Prometheus 리포터를 지정할 수 있습니다.
Flink 내보내기 도구가 예상 엔드포인트에서 측정항목을 내보내는지 확인하려면 다음을 수행합니다.
다음 명령어를 사용하여 포트 전달을 설정합니다.
kubectl -n NAMESPACE_NAME port-forward POD_NAME 9249
브라우저 또는 다른 터미널 세션의
curl
유틸리티를 사용하여 엔드포인트localhost:9249/metrics
에 액세스합니다.
PodMonitoring 리소스 정의
대상 검색을 위해 Managed Service for Prometheus 연산자에는 동일한 네임스페이스의 Flink 내보내기 도구에 해당하는 PodMonitoring 리소스가 필요합니다.
다음 PodMonitoring 구성을 사용할 수 있습니다.
port
및 matchLabels
필드의 값이 모니터링하려는 Flink 포드의 값과 일치하는지 확인합니다.
Flink는 측정항목이 사용 설정된 경우 기본적으로 포트 9249로 측정항목을 노출합니다.
로컬 파일에서 구성 변경사항을 적용하려면 다음 명령어를 실행합니다.
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Terraform을 사용하여 구성을 관리할 수도 있습니다.
규칙 및 알림 정의
다음 Rules
구성을 사용하여 Flink 측정항목에 대한 알림을 정의할 수 있습니다.
로컬 파일에서 구성 변경사항을 적용하려면 다음 명령어를 실행합니다.
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Terraform을 사용하여 구성을 관리할 수도 있습니다.
클러스터에 규칙을 적용하는 방법에 대한 자세한 내용은 관리형 규칙 평가 및 알림을 참조하세요.
애플리케이션에 맞게 알림 임곗값을 조정할 수 있습니다.구성 확인
측정항목 탐색기를 사용하여 Flink 내보내기 도구를 올바르게 구성했는지 확인할 수 있습니다. Cloud Monitoring이 측정항목을 수집하는 데 1~2분 정도 걸릴 수 있습니다.
측정항목이 수집되었는지 확인하려면 다음을 수행하세요.
-
Google Cloud 콘솔에서 leaderboard 측정항목 탐색기 페이지로 이동합니다.
검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Monitoring인 결과를 선택합니다.
- 쿼리 빌더 창의 툴바에서 이름이 code MQL 또는 code PromQL인 버튼을 선택합니다.
- 언어 전환 버튼에 PromQL이 선택되어 있는지 확인합니다. 언어 전환 버튼은 쿼리 형식을 지정할 수 있는 동일한 툴바에 있습니다.
- 다음 쿼리를 입력하고 실행합니다.
up{job="flink", cluster="CLUSTER_NAME", namespace="NAMESPACE_NAME"}
대시보드 보기
Cloud Monitoring 통합에는 'Prometheus' 대시보드가 포함됩니다. 대시보드는 통합을 구성할 때 자동으로 설치됩니다. 통합을 설치하지 않고도 대시보드의 정적 미리보기를 볼 수 있습니다.
설치된 대시보드를 보려면 다음을 수행합니다.
-
Google Cloud 콘솔에서 대시보드 페이지로 이동합니다.
검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Monitoring인 결과를 선택합니다.
- 대시보드 목록 탭을 선택합니다.
- 통합 카테고리를 선택합니다.
- 확인할 대시보드의 이름을 클릭합니다.
대시보드의 정적 미리보기를 보려면 다음을 수행합니다.
-
Google Cloud 콘솔에서 통합 페이지로 이동합니다.
검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Monitoring인 결과를 선택합니다.
- Kubernetes Engine 배포 플랫폼 필터를 클릭합니다.
- Apache Flink 통합을 찾고 세부정보 보기를 클릭합니다.
- 대시보드 탭을 선택합니다.
문제 해결
측정항목 수집 문제 해결에 대한 자세한 내용은 수집 측 문제 해결에서 내보내기 도구의 수집 관련 문제를 참조하세요.