22.5. OpenShift에서 Kafka 메트릭 및 대시보드 보기
AMQ Streams가 OpenShift Container Platform에 배포되면 사용자 정의 프로젝트 모니터링을 통해 메트릭이 제공됩니다. 이 OpenShift 기능을 사용하면 개발자가 자체 프로젝트(예: Kafka 프로젝트)를 모니터링하기 위해 별도의 Prometheus 인스턴스에 액세스할 수 있습니다.
사용자 정의 프로젝트에 대한 모니터링이 활성화된 경우 openshift-user-workload-monitoring 프로젝트에 다음 구성 요소가 포함됩니다.
- Prometheus Operator
- Prometheus 인스턴스(Prometheus Operator에서 자동으로 배포)
- Thanos Ruler 인스턴스
AMQ Streams는 이러한 구성 요소를 사용하여 메트릭을 사용합니다.
클러스터 관리자는 사용자 정의 프로젝트에 대한 모니터링을 활성화한 다음 개발자 및 기타 사용자에게 자체 프로젝트 내에서 애플리케이션을 모니터링할 수 있는 권한을 부여해야 합니다.
Grafana 배포
Kafka 클러스터가 포함된 프로젝트에 Grafana 인스턴스를 배포할 수 있습니다. 그런 다음 예제 Grafana 대시보드를 사용하여 Grafana 사용자 인터페이스에서 AMQ Streams에 대한 Prometheus 지표를 시각화할 수 있습니다.
openshift-monitoring 프로젝트는 핵심 플랫폼 구성 요소에 대한 모니터링을 제공합니다. 이 프로젝트에서 Prometheus 및 Grafana 구성 요소를 사용하여 OpenShift Container Platform 4.x에서 AMQ Streams에 대한 모니터링을 구성하지 마십시오.
절차 개요
OpenShift Container Platform에서 AMQ Streams 모니터링을 설정하려면 다음 절차를 순서대로 따르십시오.
22.5.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- 예제 YAML 파일을 사용하여 Prometheus 지표 구성을 배포 했습니다.
-
사용자 정의 프로젝트에 대한 모니터링이 활성화됩니다. 클러스터 관리자가 OpenShift 클러스터에
cluster-monitoring-config구성 맵을 생성했습니다. -
클러스터 관리자에게
monitoring-rules-edit또는monitoring-edit역할이 할당되었습니다.
cluster-monitoring-config 구성 맵을 생성하고 사용자 정의 프로젝트를 모니터링할 수 있는 사용자에게 권한을 부여하는 방법에 대한 자세한 내용은 OpenShift 설명서 를 참조하십시오.
22.5.2. Prometheus 리소스 배포 링크 복사링크가 클립보드에 복사되었습니다!
Prometheus를 사용하여 Kafka 클러스터에서 모니터링 데이터를 가져옵니다.
자체 Prometheus 배포를 사용하거나 AMQ Streams에서 제공하는 예제 지표 구성 파일을 사용하여 Prometheus를 배포할 수 있습니다. 예제 파일을 사용하려면 PodMonitor 리소스를 구성하고 배포합니다. PodMonitor 는 Apache Kafka, Zoo Cryostat, Operators, Kafka Bridge 및 Cruise Control의 Pod에서 직접 데이터를 스크랩합니다.
그런 다음 Alertmanager에 대한 경고 규칙 예제를 배포합니다.
사전 요구 사항
- 실행 중인 Kafka 클러스터입니다.
- AMQ Streams와 함께 제공되는 경고 규칙 예제 를 확인합니다.
프로세스
사용자 정의 프로젝트에 대한 모니터링이 활성화되어 있는지 확인합니다.
oc get pods -n openshift-user-workload-monitoring
oc get pods -n openshift-user-workload-monitoringCopy to Clipboard Copied! Toggle word wrap Toggle overflow 활성화하면 모니터링 구성 요소의 Pod가 반환됩니다. 예를 들면 다음과 같습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 반환된 Pod가 없는 경우 사용자 정의 프로젝트에 대한 모니터링이 비활성화됩니다. 22.5절. “OpenShift에서 Kafka 메트릭 및 대시보드 보기” 의 사전 요구 사항을 참조하십시오.
여러
PodMonitor리소스는examples/metrics/prometheus-install/strimzi-pod-monitor.yaml에서 정의됩니다.각
PodMonitor리소스에 대해spec.namespaceSelector.matchNames속성을 편집합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 메트릭을 스크랩할 Pod가 실행 중인 프로젝트입니다(예:
Kafka).
strimzi-pod-monitor.yaml파일을 Kafka 클러스터가 실행 중인 프로젝트에 배포합니다.oc apply -f strimzi-pod-monitor.yaml -n MY-PROJECT
oc apply -f strimzi-pod-monitor.yaml -n MY-PROJECTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 예제 Prometheus 규칙을 동일한 프로젝트에 배포합니다.
oc apply -f prometheus-rules.yaml -n MY-PROJECT
oc apply -f prometheus-rules.yaml -n MY-PROJECTCopy to Clipboard Copied! Toggle word wrap Toggle overflow
22.5.3. Grafana의 서비스 계정 생성 링크 복사링크가 클립보드에 복사되었습니다!
AMQ Streams의 Grafana 인스턴스는 cluster-monitoring-view 역할이 할당된 서비스 계정으로 실행해야 합니다.
Grafana를 사용하여 모니터링에 대한 지표를 표시하는 경우 서비스 계정을 생성합니다.
사전 요구 사항
프로세스
Kafka 클러스터가 포함된 프로젝트에서 Grafana에 대한
ServiceAccount를 생성합니다.oc create sa grafana-service-account -n my-project
oc create sa grafana-service-account -n my-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서는
my-project네임스페이스에grafana-service-account라는 서비스 계정이 생성됩니다.Grafana
ServiceAccount에cluster-monitoring-view역할을 할당하는ClusterRoleBinding리소스를 생성합니다. 여기서 리소스의 이름은grafana-cluster-monitoring-binding입니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 동일한 프로젝트에
ClusterRoleBinding을 배포합니다.oc apply -f grafana-cluster-monitoring-binding.yaml -n my-project
oc apply -f grafana-cluster-monitoring-binding.yaml -n my-projectCopy to Clipboard Copied! Toggle word wrap Toggle overflow 서비스 계정에 대한 토큰 시크릿을 생성합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Secret오브젝트 및 액세스 토큰을 생성합니다.oc create -f <secret_configuration>.yaml
oc create -f <secret_configuration>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Grafana를 배포할 때 액세스 토큰이 필요합니다.
22.5.4. Prometheus 데이터 소스를 사용하여 Grafana 배포 링크 복사링크가 클립보드에 복사되었습니다!
Prometheus 지표를 표시하기 위해 Grafana를 배포합니다. Grafana 애플리케이션에는 OpenShift Container Platform 모니터링 스택에 대한 구성이 필요합니다.
OpenShift Container Platform에는 openshift-monitoring 프로젝트에 Thanos Querier 인스턴스가 포함되어 있습니다. Thanos Querier는 플랫폼 메트릭을 집계하는 데 사용됩니다.
필요한 플랫폼 지표를 사용하려면 Grafana 인스턴스에 Thanos Querier에 연결할 수 있는 Prometheus 데이터 소스가 필요합니다. 이 연결을 구성하려면 Thanos Querier와 함께 실행되는 oauth-proxy 사이드카에 토큰을 사용하여 인증하는 구성 맵을 생성합니다. datasource.yaml 파일은 구성 맵의 소스로 사용됩니다.
마지막으로 Kafka 클러스터가 포함된 프로젝트에 볼륨으로 마운트된 구성 맵을 사용하여 Grafana 애플리케이션을 배포합니다.
사전 요구 사항
- Prometheus 리소스를 배포 했습니다.
- Grafana 에 대한 서비스 계정을 생성 했습니다.
프로세스
Grafana
ServiceAccount:의 액세스 토큰을 가져옵니다.oc describe sa/grafana-service-account | grep Tokens: oc describe secret grafana-service-account-token-mmlp9 | grep token:
oc describe sa/grafana-service-account | grep Tokens: oc describe secret grafana-service-account-token-mmlp9 | grep token:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 예에서 서비스 계정의 이름은
grafana-service-account입니다. 다음 단계에서 사용할 액세스 토큰을 복사합니다.Grafana에 대한 Thanos Querier 구성이 포함된
datasource.yaml파일을 생성합니다.표시된 대로 액세스 토큰을
httpHeaderValue1속성에 붙여넣습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
GRAFANA-ACCESS-TOKEN: GrafanaServiceAccount에 대한 액세스 토큰의 값입니다.
datasource.yaml파일에서grafana-config라는 구성 맵을 생성합니다.oc create configmap grafana-config --from-file=datasource.yaml -n MY-PROJECT
oc create configmap grafana-config --from-file=datasource.yaml -n MY-PROJECTCopy to Clipboard Copied! Toggle word wrap Toggle overflow 배포및 서비스로 구성된 Grafana 애플리케이션을 생성합니다.grafana-config구성 맵은 데이터 소스 구성의 볼륨으로 마운트됩니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kafka 클러스터가 포함된 프로젝트에 Grafana 애플리케이션을 배포합니다.
oc apply -f <grafana-application> -n <my-project>
oc apply -f <grafana-application> -n <my-project>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
22.5.5. Grafana 서비스에 대한 경로 생성 링크 복사링크가 클립보드에 복사되었습니다!
Grafana 서비스를 노출하는 경로를 통해 Grafana 사용자 인터페이스에 액세스할 수 있습니다.
프로세스
grafana서비스에 대한 에지 경로를 생성합니다.oc create route edge <my-grafana-route> --service=grafana --namespace=KAFKA-NAMESPACE
oc create route edge <my-grafana-route> --service=grafana --namespace=KAFKA-NAMESPACECopy to Clipboard Copied! Toggle word wrap Toggle overflow
22.5.6. Grafana 대시보드 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
Grafana를 사용하여 사용자 지정 가능한 대시보드에 Prometheus 지표의 시각화를 제공합니다.
AMQ Streams는 JSON 형식의 Grafana에 대한 대시보드 구성 파일의 예제 를 제공합니다.
-
예/metrics/grafana-dashboards
이 절차에서는 Grafana 대시보드 예제를 사용합니다.
예제 대시보드는 키 메트릭을 모니터링하는 데 좋은 시작점이지만 Kafka에서 지원하는 모든 메트릭은 표시되지 않습니다. 인프라에 따라 예제 대시보드를 수정하거나 다른 메트릭을 추가할 수 있습니다.
사전 요구 사항
프로세스
Grafana 서비스로의 경로 세부 정보를 가져옵니다. 예를 들면 다음과 같습니다.
oc get routes NAME HOST/PORT PATH SERVICES MY-GRAFANA-ROUTE MY-GRAFANA-ROUTE-amq-streams.net grafana
oc get routes NAME HOST/PORT PATH SERVICES MY-GRAFANA-ROUTE MY-GRAFANA-ROUTE-amq-streams.net grafanaCopy to Clipboard Copied! Toggle word wrap Toggle overflow - 웹 브라우저에서 경로 호스트 및 포트의 URL을 사용하여 Grafana 로그인 화면에 액세스합니다.
사용자 이름과 암호를 입력한 다음 로그인 을 클릭합니다.
기본 Grafana 사용자 이름과 암호는 모두
admin입니다. 처음 로그인한 후 암호를 변경할 수 있습니다.- Configuration > Data Sources 에서 Prometheus 데이터 소스가 생성되었는지 확인합니다. 데이터 소스는 22.5.4절. “Prometheus 데이터 소스를 사용하여 Grafana 배포” 에서 생성되었습니다.
- + 아이콘을 클릭한 다음 가져오기 를 클릭합니다.
-
examples/metrics/grafana-dashboards에서 가져올 대시보드의 JSON을 복사합니다. - 텍스트 상자에 JSON을 붙여넣은 다음 Load 를 클릭합니다.
- 다른 예제 Grafana 대시보드에 대해 5-7단계를 반복합니다.
가져온 Grafana 대시보드는 대시보드 홈 페이지에서 볼 수 있습니다.