2장. 메트릭 및 서비스 메시
2.1. 메트릭 사용
모니터링 스택 구성 요소는 기본적으로 모든 OpenShift Container Platform 설치에 배포되며 CCMO(Cluster Monitoring Operator)에서 관리합니다. 이러한 구성 요소에는 Prometheus, Alertmanager, Thanos Querier 등이 포함됩니다. CMO는 플랫폼 Prometheus 인스턴스에서 Red Hat으로 데이터의 하위 집합을 전송하여 클러스터의 원격 상태 모니터링을 용이하게 하는 Telemeter Client도 배포합니다.
메시에 애플리케이션을 추가하면 CPU 및 메모리 사용량, 네트워크 연결 및 기타 리소스 사용에 대한 메트릭 및 사용자 지정 경고를 사용하여 OpenShift Container Platform에서 실행되는 애플리케이션의 클러스터 내 상태 및 성능을 모니터링할 수 있습니다.
2.1.1. Service Mesh를 사용하여 OpenShift 모니터링 구성
Red Hat OpenShift Service Mesh를 사용자 워크로드 모니터링과 통합할 수 있습니다.
사전 요구 사항
- Red Hat OpenShift Service Mesh가 설치되어 있습니다.
- 사용자 워크로드 모니터링이 활성화되어 있습니다. 사용자 정의 프로젝트에 대한 모니터링 활성화를 참조하십시오.
프로세스
ServiceMonitor
오브젝트를 적용하여 Istio 컨트롤 플레인을 모니터링합니다.ServiceMonitor
오브젝트의 예apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: istiod-monitor namespace: istio-system spec: targetLabels: - app selector: matchLabels: istio: pilot endpoints: - port: http-monitoring interval: 30s
PodMonitor
오브젝트를 적용하여 Istio 프록시에서 지표를 수집합니다.PodMonitor
오브젝트의 예apiVersion: monitoring.coreos.com/v1 kind: PodMonitor metadata: name: istio-proxies-monitor namespace: istio-system 1 spec: selector: matchExpressions: - key: istio-prometheus-ignore operator: DoesNotExist podMetricsEndpoints: - path: /stats/prometheus interval: 30s relabelings: - action: keep sourceLabels: ["__meta_kubernetes_pod_container_name"] regex: "istio-proxy" - action: keep sourceLabels: ["__meta_kubernetes_pod_annotationpresent_prometheus_io_scrape"] - action: replace regex: (\d+);(([A-Fa-f0-9]{1,4}::?){1,7}[A-Fa-f0-9]{1,4}) replacement: '[$2]:$1' sourceLabels: ["__meta_kubernetes_pod_annotation_prometheus_io_port","__meta_kubernetes_pod_ip"] targetLabel: "__address__" - action: replace regex: (\d+);((([0-9]+?)(\.|$)){4}) replacement: '$2:$1' sourceLabels: ["__meta_kubernetes_pod_annotation_prometheus_io_port","__meta_kubernetes_pod_ip"] targetLabel: "__address__" - action: labeldrop regex: "__meta_kubernetes_pod_label_(.+)" - sourceLabels: ["__meta_kubernetes_namespace"] action: replace targetLabel: namespace - sourceLabels: ["__meta_kubernetes_pod_name"] action: replace targetLabel: pod_name
- 1
- OpenShift Container Platform 모니터링은
ServiceMonitor
및PodMonitor
오브젝트의namespaceSelector
사양을 무시하므로 Istio 컨트롤 플레인 네임스페이스를 포함하여 모든 메시 네임스페이스에PodMonitor
오브젝트를 적용해야 합니다.
-
OpenShift 콘솔
Observe Metrics 로 이동하여 istio_requests_total
을 실행합니다.
메트릭 구현에는 쿼리에서 결과를 반환하는 데 몇 분이 걸릴 수 있습니다.