18.4. 가시성
18.4.1. OpenShift Container Platform 클러스터의 관찰 기능 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform은 플랫폼 및 플랫폼에서 실행되는 워크로드 모두에서 성능 지표 및 로그와 같은 대량의 데이터를 생성합니다. 관리자는 다양한 도구를 사용하여 사용 가능한 모든 데이터를 수집하고 분석할 수 있습니다. 다음은 관찰 기능 스택을 구성하는 시스템 엔지니어, 아키텍트 및 관리자에 대한 모범 사례에 대한 개요입니다.
명시적으로 명시하지 않는 한 이 문서의 내용은 Edge 및 Core 배포 모두를 나타냅니다.
18.4.1.1. 모니터링 스택 이해 링크 복사링크가 클립보드에 복사되었습니다!
모니터링 스택은 다음 구성 요소를 사용합니다.
- Prometheus는 OpenShift Container Platform 구성 요소 및 워크로드에서 지표를 수집하고 분석합니다.
- Alertmanager는 Prometheus의 구성 요소로, 라우팅, 그룹화, 경고 실링을 처리합니다.
- Thanos는 메트릭의 장기 스토리지를 처리합니다.
그림 18.2. OpenShift Container Platform 모니터링 아키텍처
단일 노드 OpenShift 클러스터의 경우 분석 및 보존을 위해 클러스터에서 모든 메트릭을 hub 클러스터로 전송하므로 Alertmanager 및 Thanos를 비활성화합니다.
18.4.1.2. 주요 성능 지표 링크 복사링크가 클립보드에 복사되었습니다!
시스템에 따라 사용 가능한 수백 개의 측정이 있을 수 있습니다.
다음 주요 메트릭을 고려하십시오.
-
etcd응답 시간 - API 응답 시간
- Pod 재시작 및 예약
- 리소스 사용량
- OVN 상태
- 전체 클러스터 Operator 상태
메트릭이 중요한 경우 경고를 설정합니다.
다음 명령을 실행하여 사용 가능한 메트릭을 확인할 수 있습니다.
+
oc -n openshift-monitoring exec -c prometheus prometheus-k8s-0 -- curl -qsk http://localhost:9090/api/v1/metadata | jq '.data
$ oc -n openshift-monitoring exec -c prometheus prometheus-k8s-0 -- curl -qsk http://localhost:9090/api/v1/metadata | jq '.data
18.4.1.2.1. PromQL의 쿼리 예 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 콘솔을 사용하여 메트릭 쿼리 브라우저에서 다음 쿼리를 확인할 수 있습니다.
콘솔의 URL은 https://<OpenShift Console FQDN>/monitoring/query-browser입니다. 다음 명령을 실행하여 Openshift 콘솔 FQDN을 가져올 수 있습니다.
+
oc get routes -n openshift-console console -o jsonpath='{.status.ingress[0].host}'
$ oc get routes -n openshift-console console -o jsonpath='{.status.ingress[0].host}'
| 지표 | 쿼리 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| combined |
|
| 지표 | 쿼리 |
|---|---|
|
|
|
|
|
|
| 리더 선택 |
|
| 네트워크 대기 시간 |
|
| 지표 | 쿼리 |
|---|---|
| 성능이 저하된 Operator |
|
| 클러스터당 총 성능이 저하된 Operator |
|
18.4.1.2.2. 메트릭 스토리지에 대한 권장 사항 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 Prometheus는 영구 스토리지를 사용하여 저장된 지표를 백업하지 않습니다. Prometheus Pod를 다시 시작하면 모든 지표 데이터가 손실됩니다. 플랫폼에서 사용 가능한 백엔드 스토리지를 사용하도록 모니터링 스택을 구성해야 합니다. Prometheus의 높은 IO 요구 사항을 충족하려면 로컬 스토리지를 사용합니다.
소규모 클러스터의 경우 Prometheus의 영구 스토리지에 Local Storage Operator를 사용할 수 있습니다. 블록, 파일 및 오브젝트 스토리지에 대한 ceph 클러스터를 배포하는 Red Hat OpenShift Data Foundation(ODF)은 대규모 클러스터에 적합합니다.
단일 노드 OpenShift 클러스터에서 시스템 리소스 요구 사항을 낮게 유지하려면 모니터링 스택의 백엔드 스토리지를 프로비저닝하지 마십시오. 이러한 클러스터는 타사 모니터링 플랫폼을 프로비저닝할 수 있는 허브 클러스터에 모든 메트릭을 전달합니다.
18.4.1.3. 원거리 엣지 네트워크에서 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
엣지의 OpenShift Container Platform 클러스터는 플랫폼 구성 요소의 풋프린트를 최소한으로 유지해야 합니다. 다음 절차에서는 작은 모니터링 풋프린트를 사용하여 에지 네트워크에서 단일 노드 OpenShift 또는 노드를 구성하는 방법의 예입니다.
사전 요구 사항
- RHACM(Red Hat Advanced Cluster Management)을 사용하는 환경의 경우 Observability 서비스를 활성화했습니다.
- hub 클러스터는 Red Hat ODF(OpenShift Data Foundation)를 실행하고 있습니다.
프로세스
ConfigMapCR을 생성하고 다음 예와 같이monitoringConfigMap.yaml으로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 단일 노드 OpenShift 클러스터에서 다음 명령을 실행하여
ConfigMapCR을 적용합니다.oc apply -f monitoringConfigMap.yaml
$ oc apply -f monitoringConfigMap.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 네임스페이스CR을 생성하고 다음 예와 같이monitoringNamespace.yaml로 저장합니다.apiVersion: v1 kind: Namespace metadata: name: open-cluster-management-observability
apiVersion: v1 kind: Namespace metadata: name: open-cluster-management-observabilityCopy to Clipboard Copied! Toggle word wrap Toggle overflow hub 클러스터에서 다음 명령을 실행하여
NamespaceCR을 적용합니다.oc apply -f monitoringNamespace.yaml
$ oc apply -f monitoringNamespace.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow ObjectBucketClaimCR을 생성하고 다음 예와 같이monitoringObjectBucketClaim.yaml로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow hub 클러스터에서 다음 명령을 실행하여
ObjectBucketClaimCR을 적용합니다.oc apply -f monitoringObjectBucketClaim.yaml
$ oc apply -f monitoringObjectBucketClaim.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow SecretCR을 생성하고 다음 예와 같이monitoringSecret.yaml로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow hub 클러스터에서 다음 명령을 실행하여
SecretCR을 적용합니다.oc apply -f monitoringSecret.yaml
$ oc apply -f monitoringSecret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 허브 클러스터에서 NooBaa 서비스의 키와 백엔드 버킷 이름을 가져옵니다.
NOOBAA_ACCESS_KEY=$(oc get secret noobaa-admin -n openshift-storage -o json | jq -r '.data.AWS_ACCESS_KEY_ID|@base64d')
$ NOOBAA_ACCESS_KEY=$(oc get secret noobaa-admin -n openshift-storage -o json | jq -r '.data.AWS_ACCESS_KEY_ID|@base64d')Copy to Clipboard Copied! Toggle word wrap Toggle overflow NOOBAA_SECRET_KEY=$(oc get secret noobaa-admin -n openshift-storage -o json | jq -r '.data.AWS_SECRET_ACCESS_KEY|@base64d')
$ NOOBAA_SECRET_KEY=$(oc get secret noobaa-admin -n openshift-storage -o json | jq -r '.data.AWS_SECRET_ACCESS_KEY|@base64d')Copy to Clipboard Copied! Toggle word wrap Toggle overflow OBJECT_BUCKET=$(oc get objectbucketclaim -n open-cluster-management-observability multi-cloud-observability -o json | jq -r .spec.bucketName)
$ OBJECT_BUCKET=$(oc get objectbucketclaim -n open-cluster-management-observability multi-cloud-observability -o json | jq -r .spec.bucketName)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 버킷 스토리지에 대한
SecretCR을 생성하고 다음 예와 같이monitoringBucketSecret.yaml로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow hub 클러스터에서 다음 명령을 실행하여
SecretCR을 적용합니다.oc apply -f monitoringBucketSecret.yaml
$ oc apply -f monitoringBucketSecret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow MultiClusterObservabilityCR을 생성하고 다음 예와 같이monitoringMultiClusterObservability.yaml로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow hub 클러스터에서 다음 명령을 실행하여
MultiClusterObservabilityCR을 적용합니다.oc apply -f monitoringMultiClusterObservability.yaml
$ oc apply -f monitoringMultiClusterObservability.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
네임스페이스의 경로와 Pod를 확인하여 다음 명령을 실행하여 서비스가 허브 클러스터에 배포되었는지 확인합니다.
oc get routes,pods -n open-cluster-management-observability
$ oc get routes,pods -n open-cluster-management-observabilityCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 대시보드는 나열된 grafana 경로에서 액세스할 수 있습니다. 이를 사용하여 모든 관리 클러스터의 지표를 볼 수 있습니다.
Red Hat Advanced Cluster Management의 관찰 기능에 대한 자세한 내용은 Observability 를 참조하십시오.
18.4.1.4. 경고 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform에는 많은 수의 경고 규칙이 포함되어 있으며 이는 릴리스에서 릴리스로 변경될 수 있습니다.
18.4.1.4.1. 기본 경고 보기 링크 복사링크가 클립보드에 복사되었습니다!
클러스터의 모든 경고 규칙을 검토합니다.
프로세스
클러스터의 모든 경고 규칙을 검토하려면 다음 명령을 실행합니다.
oc get cm -n openshift-monitoring prometheus-k8s-rulefiles-0 -o yaml
$ oc get cm -n openshift-monitoring prometheus-k8s-rulefiles-0 -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 규칙에는 설명이 포함될 수 있으며 추가 정보 및 완화 단계에 대한 링크를 제공할 수 있습니다. 예를 들어
etcdHighFsyncDurations에 대한 규칙을 참조하십시오.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
18.4.1.4.2. 경고 알림 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 콘솔에서 경고를 볼 수 있습니다. 그러나 관리자는 경고를 전달하도록 외부 수신자를 구성해야 합니다. OpenShift Container Platform에서는 다음 수신기 유형을 지원합니다.
- PagerDuty
- 타사 사고 대응 플랫폼입니다.
- Webhook
-
POST요청을 통해 경고를 수신하고 필요한 작업을 수행할 수 있는 임의의 API 끝점입니다. - 이메일
- 지정된 주소로 이메일을 보냅니다.
- Slack
- Slack 채널 또는 개별 사용자에게 알림을 보냅니다.
18.4.1.5. 워크로드 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 OpenShift Container Platform은 애플리케이션 워크로드에 대한 메트릭을 수집하지 않습니다. 워크로드 지표를 수집하도록 클러스터를 구성할 수 있습니다.
사전 요구 사항
- 클러스터에서 워크로드 지표를 수집하기 위해 끝점이 정의되어 있습니다.
프로세스
ConfigMapCR을 생성하고 다음 예와 같이monitoringConfigMap.yaml로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 워크로드 모니터링을 활성화하려면
true로 설정합니다.
다음 명령을 실행하여
ConfigMapCR을 적용합니다.oc apply -f monitoringConfigMap.yaml
$ oc apply -f monitoringConfigMap.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow ServiceMonitorCR을 생성하고 다음 예와 같이monitoringServiceMonitor.yaml로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
ServiceMonitorCR을 적용합니다.oc apply -f monitoringServiceMonitor.yaml
$ oc apply -f monitoringServiceMonitor.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Prometheus는 기본적으로 /metrics 경로를 스크랩합니다. 그러나 사용자 지정 경로를 정의할 수 있습니다. 애플리케이션 벤더는 관련 것으로 간주되는 메트릭을 사용하여 스크랩을 위한 끝점을 노출할지 여부를 결정해야 합니다.
18.4.1.5.1. 워크로드 경고 생성 링크 복사링크가 클립보드에 복사되었습니다!
클러스터에서 사용자 워크로드에 대한 경고를 활성화할 수 있습니다.
프로세스
ConfigMapCR을 생성하고 다음 예와 같이monitoringConfigMap.yaml으로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 워크로드 모니터링을 활성화하려면
true로 설정합니다.
다음 명령을 실행하여
ConfigMapCR을 적용합니다.oc apply -f monitoringConfigMap.yaml
$ oc apply -f monitoringConfigMap.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 예와 같이 경고 규칙,
monitoringAlertRule.yaml에 대한 YAML 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 경고 규칙을 적용합니다.
oc apply -f monitoringAlertRule.yaml
$ oc apply -f monitoringAlertRule.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow