모니터링
OpenShift Dedicated의 프로젝트 모니터링
초록
1장. 모니터링 정보 링크 복사링크가 클립보드에 복사되었습니다!
1.1. OpenShift Dedicated 모니터링 정보 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated에서는 Red Hat site Reliability Engineering(SRE) 플랫폼 메트릭과 별도로 자체 프로젝트를 모니터링할 수 있습니다. 추가 모니터링 솔루션 없이도 자체 프로젝트를 모니터링할 수 있습니다.
OpenShift Dedicated 모니터링 스택은 Prometheus 오픈 소스 프로젝트 및 광범위한 에코시스템을 기반으로 합니다.
1.2. 스택 아키텍처 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 프로젝트를 모니터링하기 위한 기본 모니터링 구성 요소 및 구성 요소가 포함된 모니터링 스택 아키텍처에 대해 알아볼 수 있습니다.
1.2.1. 모니터링 스택 이해 링크 복사링크가 클립보드에 복사되었습니다!
모니터링 스택에는 다음 구성 요소가 포함됩니다.
- 기본 플랫폼 모니터링 구성 요소
플랫폼 모니터링 구성 요소는 OpenShift Dedicated 설치 중에 기본적으로
openshift-monitoring프로젝트에 설치됩니다. Red Hat 사이트 안정성 엔지니어(SRE)는 이러한 구성 요소를 사용하여 Kubernetes 서비스를 포함한 핵심 클러스터 구성 요소를 모니터링합니다. 여기에는 모든 네임스페이스의 모든 워크로드에서 수집된 CPU 및 메모리와 같은 중요한 메트릭이 포함됩니다.다음 다이어그램의 설치됨 섹션에서 이러한 구성 요소를 확인할 수 있습니다.
- 사용자 정의 프로젝트를 모니터링하기 위한 구성 요소
사용자 정의 프로젝트 모니터링 구성 요소는 OpenShift Dedicated 설치 중에 기본적으로
openshift-user-workload-monitoring프로젝트에 설치됩니다. 이러한 구성 요소를 사용하여 사용자 정의 프로젝트에서 서비스 및 Pod를 모니터링할 수 있습니다.다음 다이어그램의 사용자 섹션에서 이러한 구성 요소를 볼 수 있습니다.
1.2.1.1. 기본 모니터링 대상 링크 복사링크가 클립보드에 복사되었습니다!
다음은 OpenShift Dedicated 클러스터의 Red Hat 사이트 안정성 엔지니어(SRE)에서 모니터링하는 대상의 예입니다.
- CoreDNS
- etcd
- HAProxy
- 이미지 레지스트리
- Kubelets
- Kubernetes API 서버
- Kubernetes 컨트롤러 관리자
- Kubernetes 스케줄러
- OpenShift API 서버
- OpenShift Controller Manager
- OLM(Operator Lifecycle Manager)
정확한 대상 목록은 클러스터 기능 및 설치된 구성 요소에 따라 다를 수 있습니다.
1.2.2. 사용자 정의 프로젝트를 모니터링하기 위한 구성 요소 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated에는 사용자 정의 프로젝트에서 서비스 및 Pod를 모니터링하는 데 도움이 되는 모니터링 스택에 선택적 개선 사항이 포함되어 있습니다. 이 기능에는 다음과 같은 구성 요소가 포함됩니다.
| 구성 요소 | 설명 |
|---|---|
| Prometheus Operator |
|
| Prometheus | Prometheus는 사용자 정의 프로젝트에 대한 모니터링을 제공하는 모니터링 시스템입니다. Prometheus는 처리를 위해 Alertmanager에 경고를 보냅니다. |
| Thanos Ruler | Thanos Ruler는 별도의 프로세스로 배포되는 Prometheus의 규칙 평가 엔진입니다. OpenShift Dedicated 에서 Thanos Ruler는 사용자 정의 프로젝트의 모니터링에 대한 규칙 및 경고 평가를 제공합니다. |
| Alertmanager | Alertmanager 서비스는 Prometheus 및 Thanos Ruler에서 수신한 경고를 처리합니다. 또한 Alertmanager는 사용자 정의 경고를 외부 알림 시스템으로 전송합니다. 이 서비스 배포는 선택 사항입니다. |
모니터링 스택은 사용자 정의 프로젝트의 모든 구성 요소를 모니터링합니다. OpenShift Dedicated가 업데이트되면 구성 요소가 자동으로 업데이트됩니다.
1.2.2.1. 사용자 정의 프로젝트의 대상 모니터링 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated 사용자 정의 프로젝트에 대한 모니터링은 기본적으로 활성화되어 있습니다. 다음을 모니터링할 수 있습니다.
- 사용자 정의 프로젝트에서 서비스 끝점을 통해 제공되는 메트릭입니다.
- 사용자 정의 프로젝트에서 실행 중인 Pod.
1.2.3. 고가용성 클러스터의 모니터링 스택 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 다중 노드 클러스터에서 다음 구성 요소는 HA(고가용성) 모드로 실행하여 데이터 손실 및 서비스 중단을 방지합니다.
- Prometheus
- Alertmanager
- Thanos Ruler
구성 요소는 두 개의 pod에 복제되며 각각 별도의 노드에서 실행됩니다. 즉, 모니터링 스택에서 하나의 Pod가 손실될 수 있습니다.
- HA 모드의 Prometheus
- 두 복제본 모두 독립적으로 동일한 대상을 스크랩하고 동일한 규칙을 평가합니다.
- 복제본은 서로 통신하지 않습니다. 따라서 Pod마다 데이터가 다를 수 있습니다.
- HA 모드의 Alertmanager
- 두 복제본은 알림 및 음소거 상태를 동기화합니다. 이렇게 하면 각 알림이 한 번 이상 전송됩니다.
- 복제본이 통신에 실패하거나 수신 측에 문제가 있는 경우 알림은 계속 전송되지만 복제될 수 있습니다.
Prometheus, Alertmanager 및 Thanos Ruler는 상태 저장 구성 요소입니다. 고가용성을 보장하기 위해 영구 스토리지를 사용하여 구성해야 합니다.
1.2.4. 모니터링 스택에서 TLS 보안 및 순환 링크 복사링크가 클립보드에 복사되었습니다!
통신 보안을 유지하기 위해 OpenShift Dedicated 모니터링 스택에서 TLS 프로필 및 인증서 교체가 작동하는 방법을 알아봅니다.
- 모니터링 구성 요소에 대한 TLS 보안 프로필
-
모니터링 스택의 모든 구성 요소는 클러스터 관리자가 중앙에서 구성하는 TLS 보안 프로필 설정을 사용합니다. 모니터링 스택 구성 요소는 글로벌 OpenShift Dedicated
apiservers.config.openshift.io/cluster리소스의tlsSecurityProfile필드에 이미 존재하는 TLS 보안 프로필 설정을 사용합니다. - TLS 인증서 교체 및 자동 재시작
Cluster Monitoring Operator는 모니터링 구성 요소의 내부 TLS 인증서 라이프사이클을 관리합니다. 이러한 인증서는 모니터링 구성 요소 간의 내부 통신을 보호합니다.
인증서를 순환하는 동안 CMO는 보안 및 구성 맵을 업데이트하여 영향을 받는 Pod를 자동으로 재시작합니다. 이는 예상되는 동작이며 Pod가 자동으로 복구됩니다.
다음 예제에서는 인증서 교체 중에 발생하는 이벤트를 보여줍니다.
$ oc get events -n openshift-monitoring LAST SEEN TYPE REASON OBJECT MESSAGE 2h39m Normal SecretUpdated deployment/cluster-monitoring-operator Updated Secret/grpc-tls -n openshift-monitoring because it changed 2h39m Normal SecretCreated deployment/cluster-monitoring-operator Created Secret/prometheus-user-workload-grpc-tls -n openshift-user-workload-monitoring because it was missing 2h39m Normal SecretCreated deployment/cluster-monitoring-operator Created Secret/thanos-querier-grpc-tls -n openshift-monitoring because it was missing 2h39m Normal SecretCreated deployment/cluster-monitoring-operator Created Secret/thanos-ruler-grpc-tls -n openshift-user-workload-monitoring because it was missing 2h39m Normal SecretCreated deployment/cluster-monitoring-operator Created Secret/prometheus-k8s-grpc-tls -n openshift-monitoring because it was missing 2h38m Warning FailedMount pod/prometheus-k8s-0 MountVolume.SetUp failed for volume "secret-grpc-tls" : secret "prometheus-k8s-grpc-tls" not found 2h39m Normal Created pod/prometheus-k8s-0 Created container kube-rbac-proxy-thanos 2h39m Normal Started pod/prometheus-k8s-0 Started container kube-rbac-proxy-thanos 2h39m Normal SuccessfulDelete statefulset/prometheus-k8s delete Pod prometheus-k8s-0 in StatefulSet prometheus-k8s successful 2h39m Normal SuccessfulCreate statefulset/prometheus-k8s create Pod prometheus-k8s-0 in StatefulSet prometheus-k8s successful
1.2.5. OpenShift Dedicated 모니터링을 위한 일반 용어집 링크 복사링크가 클립보드에 복사되었습니다!
이 용어집은 OpenShift Dedicated 아키텍처에서 사용되는 일반적인 용어를 정의합니다.
- Alertmanager
- Alertmanager는 Prometheus에서 수신한 경고를 처리합니다. 또한 Alertmanager는 경고를 외부 알림 시스템으로 전송해야 합니다.
- 경고 규칙
- 경고 규칙에는 클러스터 내에서 특정 상태를 설명하는 일련의 조건이 포함되어 있습니다. 이러한 조건이 true이면 경고가 트리거됩니다. 경고 규칙은 경고의 라우팅 방법을 정의하는 심각도를 할당할 수 있습니다.
- Cluster Monitoring Operator
- CMO(Cluster Monitoring Operator)는 모니터링 스택의 핵심 구성 요소입니다. Thanos Querier, Telemeter Client 및 메트릭 대상과 같은 Prometheus 인스턴스를 배포 및 관리하여 이러한 인스턴스를 최신 상태로 유지합니다. CMO는 CVO(Cluster Version Operator)에 의해 배포됩니다.
- Cluster Version Operator
- CVO(Cluster Version Operator)는 기본적으로 OpenShift Dedicated에 설치된 클러스터 Operator의 라이프사이클을 관리합니다.
- 구성 맵
-
구성 맵에서는 구성 데이터를 Pod에 삽입하는 방법을 제공합니다. 구성 맵에 저장된 데이터를
ConfigMap유형의 볼륨에서 참조할 수 있습니다. Pod에서 실행되는 애플리케이션에서는 이 데이터를 사용할 수 있습니다. - 컨테이너
- 컨테이너는 소프트웨어 및 모든 종속 항목을 포함하는 가볍고 실행 가능한 이미지입니다. 컨테이너는 운영 체제를 가상화합니다. 결과적으로 데이터 센터에서 퍼블릭 또는 프라이빗 클라우드에 이르기까지 어디에서나 컨테이너를 실행할 수 있으며 개발자 노트북도 실행할 수 있습니다.
- CR(사용자 정의 리소스)
- CR은 Kubernetes API의 확장입니다. 사용자 정의 리소스를 생성할 수 있습니다.
- etcd
- etcd는 모든 리소스 오브젝트의 상태를 저장하는 OpenShift Dedicated의 키-값 저장소입니다.
- Kubelets
- 노드에서 실행되며 컨테이너 매니페스트를 읽습니다. 정의된 컨테이너가 시작되어 실행 중인지 확인합니다.
- Kubernetes API 서버
- Kubernetes API 서버는 API 오브젝트의 데이터를 검증하고 구성합니다.
- Kubernetes 컨트롤러 관리자
- Kubernetes 컨트롤러 관리자는 클러스터 상태를 관리합니다.
- Kubernetes 스케줄러
- Kubernetes 스케줄러는 노드에 Pod를 할당합니다.
- labels
- 레이블은 Pod와 같은 오브젝트의 하위 집합을 구성하고 선택하는 데 사용할 수 있는 키-값 쌍입니다.
- 지표 서버
-
Metrics 서버 모니터링 구성 요소는 리소스 지표를 수집하여 다른 툴 및 API에서 사용할
metrics.k8s.ioMetrics API 서비스에 노출하므로 코어 플랫폼 Prometheus 스택이 이 기능을 처리할 수 없습니다. - 노드
- OpenShift Dedicated 클러스터의 컴퓨팅 머신. 노드는 VM(가상 머신) 또는 물리적 머신입니다.
- Operator
- OpenShift Dedicated 클러스터에서 Kubernetes 애플리케이션을 패키징, 배포 및 관리하는 기본 방법입니다. Operator는 사람의 운영 지식을 패키지하고 고객과 공유하는 소프트웨어로 인코딩합니다.
- OLM(Operator Lifecycle Manager)
- OLM은 Kubernetes 네이티브 애플리케이션의 라이프사이클을 설치, 업데이트 및 관리할 수 있도록 지원합니다. OLM은 효과적이고 자동화되고 확장 가능한 방식으로 Operator를 관리하도록 설계된 오픈 소스 툴킷입니다.
- 영구 스토리지
- 장치가 종료된 후에도 데이터를 저장합니다. Kubernetes는 영구 볼륨을 사용하여 애플리케이션 데이터를 저장합니다.
- PVC(영구 볼륨 클레임)
- PVC를 사용하여 PersistentVolume을 포드에 마운트할 수 있습니다. 클라우드 환경의 세부 사항을 모르는 상태에서 스토리지에 액세스할 수 있습니다.
- Pod
- Pod는 Kubernetes에서 가장 작은 논리 단위입니다. Pod는 작업자 노드에서 실행할 하나 이상의 컨테이너로 구성됩니다.
- Prometheus
- Prometheus는 OpenShift Dedicated 모니터링 스택을 기반으로 하는 모니터링 시스템입니다. Prometheus는 시계열 데이터베이스이며 메트릭에 대한 규칙 평가 엔진입니다. Prometheus는 처리를 위해 Alertmanager에 경고를 보냅니다.
- Prometheus Operator
-
openshift-monitoring프로젝트의 Prometheus Operator는 플랫폼 Prometheus 및 Alertmanager 인스턴스를 생성, 구성 및 관리합니다. 또한 Kubernetes 라벨 쿼리를 기반으로 모니터링 대상 구성을 자동으로 생성합니다. - 음소거
- 경고 조건이 true일 때 알림이 전송되는 것을 방지하기 위해 경고에 음소거를 적용할 수 있습니다. 기본 문제를 해결하는 동안 초기 알림 후 경고를 음소거할 수 있습니다.
- storage
- OpenShift Dedicated는 AWS 및 Google Cloud에서 다양한 유형의 스토리지를 지원합니다. OpenShift Dedicated 클러스터에서 영구 및 비영구 데이터에 대한 컨테이너 스토리지를 관리할 수 있습니다.
- Thanos Ruler
- Thanos Ruler는 별도의 프로세스로 배포되는 Prometheus의 규칙 평가 엔진입니다. OpenShift Dedicated에서 Thanos Ruler는 사용자 정의 프로젝트의 모니터링에 대한 규칙 및 경고 평가를 제공합니다.
- vector
- vector는 각 OpenShift Dedicated 노드에 배포하는 로그 수집기입니다. 각 노드에서 로그 데이터를 수집하고 데이터를 변환한 다음 구성된 출력으로 전달합니다.
- 웹 콘솔
- OpenShift Dedicated를 관리할 UI(사용자 인터페이스)입니다.
1.3. 모니터링 스택 이해 - 주요 개념 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated 모니터링 개념 및 용어를 숙지하십시오. 클러스터의 성능 및 스케일링을 개선하고, 데이터를 저장 및 기록하고, 메트릭 및 경고를 관리하는 방법에 대해 알아보십시오.
1.3.1. 성능 및 확장성 정보 링크 복사링크가 클립보드에 복사되었습니다!
클러스터의 성능과 스케일링을 최적화할 수 있습니다. 다음 작업을 수행하여 모니터링 스택을 구성할 수 있습니다.
모니터링 구성 요소의 배치 및 배포를 제어합니다.
- 노드 선택기를 사용하여 구성 요소를 특정 노드로 이동합니다.
- 테인트된 노드로 이동하는 구성 요소를 활성화하려면 허용 오차를 할당합니다.
- Pod 토폴로지 분배 제약 조건을 사용합니다.
- CPU 및 메모리 리소스를 관리합니다.
1.3.1.1. 노드 선택기를 사용하여 모니터링 구성 요소 이동 링크 복사링크가 클립보드에 복사되었습니다!
라벨이 지정된 노드와 함께 nodeSelector 제약 조건을 사용하면 모니터링 스택 구성 요소 중 하나를 특정 노드로 이동할 수 있습니다. 이렇게 하면 클러스터 전체에서 모니터링 구성 요소의 배치 및 배포를 제어할 수 있습니다.
모니터링 구성 요소의 배치 및 배포를 제어하면 시스템 리소스 사용을 최적화하고 성능을 개선하고 특정 요구 사항 또는 정책을 기반으로 워크로드를 분리할 수 있습니다.
노드 선택기가 다른 제약 조건에서 작동하는 방법
노드 선택기 제약 조건을 사용하여 모니터링 구성 요소를 이동하는 경우 클러스터에 대한 Pod 예약을 제어하는 다른 제약 조건이 존재할 수 있습니다.
- Pod 배치를 제어하기 위해 토폴로지 분배 제약 조건이 적용될 수 있습니다.
- 이러한 구성 요소의 여러 Pod가 항상 다른 노드에 분산되도록 Prometheus, Alertmanager 및 기타 모니터링 구성 요소에 대해 하드 유사성 방지 규칙이 적용되므로 항상 고가용성을 유지합니다.
노드에 Pod를 예약할 때 Pod 스케줄러는 Pod 배치를 결정할 때 기존 제약 조건을 모두 충족합니다. 즉, Pod 스케줄러가 어떤 노드에 배치될 Pod를 결정할 때 모든 제약 조건이 혼합됩니다.
따라서 노드 선택기 제약 조건을 구성하지만 기존 제약 조건을 모두 충족할 수 없는 경우 Pod 스케줄러는 모든 제약 조건과 일치시킬 수 없으며 노드에 배치할 Pod를 예약하지 않습니다.
모니터링 구성 요소에 대한 탄력성과 고가용성을 유지하려면 충분한 노드를 사용할 수 있는지 확인하고 구성 요소를 이동하기 위해 노드 선택기 제약 조건을 구성할 때 모든 제약 조건과 일치하는지 확인합니다.
1.3.1.2. 모니터링을 위한 Pod 토폴로지 분배 제약 조건 정보 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated Pod가 여러 가용성 영역에 배포될 때 Pod 토폴로지 분배 제약 조건을 사용하여 네트워크 토폴로지에 모니터링 Pod가 분배되는 방법을 제어할 수 있습니다.
Pod 토폴로지 분배 제약 조건은 노드가 해당 영역 내의 지역 및 영역과 같은 다양한 인프라 수준에 분산되는 계층적 토폴로지 내에서 Pod 예약을 제어하는 데 적합합니다. 또한 다른 영역에서 Pod를 예약할 수 있으므로 특정 시나리오에서 네트워크 대기 시간을 개선할 수 있습니다.
Cluster Monitoring Operator에서 배포한 모든 Pod에 대해 Pod 토폴로지 분배 제약 조건을 구성하여 영역 전체에서 노드에 Pod 복제본을 예약하는 방법을 제어할 수 있습니다. 이렇게 하면 워크로드가 다른 데이터 센터 또는 계층적 인프라 영역의 노드에 분산되므로 Pod를 고가용성 및 더 효율적으로 실행할 수 있습니다.
1.3.1.3. 모니터링 구성 요소에 대한 제한 및 요청 지정 정보 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 프로젝트를 모니터링하는 다음 구성 요소에 대한 리소스 제한 및 요청을 구성할 수 있습니다.
- Alertmanager
- Prometheus
- Thanos Ruler
리소스 제한을 정의하면 컨테이너의 리소스 사용량을 제한하여 컨테이너가 CPU 및 메모리 리소스에 대해 지정된 최대값을 초과하지 않도록 합니다.
리소스 요청을 정의하면 요청된 리소스와 일치하도록 사용 가능한 CPU 및 메모리 리소스가 충분한 노드에만 컨테이너를 예약할 수 있도록 지정합니다.
1.3.2. 데이터 저장 및 기록 정보 링크 복사링크가 클립보드에 복사되었습니다!
데이터를 저장하고 기록하여 데이터를 보호하고 문제 해결에 사용할 수 있습니다. 다음 작업을 수행하여 모니터링 스택을 구성할 수 있습니다.
영구 스토리지를 구성합니다.
- PV(영구 볼륨)에 저장하여 데이터 손실로부터 메트릭 및 경고 데이터를 보호합니다. 결과적으로 Pod를 다시 시작하거나 다시 생성할 수 있습니다.
- Alertmanager Pod가 다시 시작되면 중복 알림이 발생하지 않고 경고에 대한 음소거가 손실되지 않습니다.
- Prometheus 및 Thanos Ruler 메트릭 데이터의 보존 시간 및 크기를 수정합니다.
클러스터 문제를 해결하는 데 도움이 되도록 로깅을 구성합니다.
- 모니터링을 위한 로그 수준을 설정합니다.
- Prometheus 및 Thanos Querier의 쿼리 로깅을 활성화합니다.
1.3.2.1. Prometheus 메트릭의 보존 시간 및 크기 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 Prometheus는 다음 기간 동안 지표 데이터를 유지합니다.
- 코어 플랫폼 모니터링: 15 일
- 사용자 정의 프로젝트 모니터링: 24 시간
Prometheus 인스턴스의 보존 시간을 수정하여 데이터 삭제 기간을 변경할 수 있습니다. 보존 메트릭 데이터에서 사용하는 최대 디스크 공간을 설정할 수도 있습니다. 데이터가 이 크기 제한에 도달하면 Prometheus는 사용된 디스크 공간이 제한 미만이 될 때까지 가장 오래된 데이터를 먼저 삭제합니다.
이러한 데이터 보존 설정의 다음 동작에 유의하십시오.
-
크기 기반 보존 정책은 영구 블록, WAL(Write-ahead) 데이터, m-mapped 청크를 포함하여
/prometheus디렉터리의 모든 데이터 블록 디렉터리에 적용됩니다. -
/wal및/head_chunks디렉터리의 데이터는 보존 크기 제한에 따라 계산되지만 Prometheus는 크기 또는 시간 기반 보존 정책에 따라 이러한 디렉터리에서 데이터를 제거하지 않습니다. 따라서/wal및/head_chunks디렉토리에 대한 최대 크기 세트보다 낮은 보존 크기 제한을 설정하면/prometheus데이터 디렉터리의 데이터 블록을 유지하지 않도록 시스템을 구성했습니다. - 크기 기반 보존 정책은 Prometheus가 최소 3시간 이상의 데이터가 포함된 후 2시간마다 발생하는 새 데이터 블록을 컷핑할 때만 적용됩니다.
-
retention또는retentionSize에 대한 값을 명시적으로 정의하지 않으면 보존 시간은 코어 플랫폼 모니터링의 경우 15일, 사용자 정의 프로젝트 모니터링의 경우 24시간으로 설정됩니다. 보존 크기는 설정되지 않았습니다. -
retention및retentionSize에 대한 값을 정의하는 경우 두 값이 모두 적용됩니다. 데이터 블록이 정의된 보존 시간 또는 정의된 크기 제한을 초과하면 Prometheus가 이러한 데이터 블록을 제거합니다. -
retentionSize값을 정의하고retention을 정의하지 않으면retentionSize값만 적용됩니다. -
retentionSize에 대한 값을 정의하지 않고retention에 대한 값만 정의하지 않으면보존값만 적용됩니다. -
retentionSize또는retention값을0으로 설정하면 기본 설정이 적용됩니다. 기본 설정은 코어 플랫폼 모니터링의 경우 보존 시간을 15일로 설정하고 사용자 정의 프로젝트 모니터링의 경우 24시간으로 설정합니다. 기본적으로 보존 크기는 설정되지 않습니다.
데이터 압축은 2시간마다 수행됩니다. 따라서 PV(영구 볼륨)가 압축하기 전에 채워지고 보존Size 제한을 초과할 수 있습니다. 이러한 경우 KubePersistentVolumeFillingUp 경고가 PV의 공간이 retentionSize 제한보다 작을 때까지 실행됩니다.
1.3.3. 메트릭 이해 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated에서 클러스터 구성 요소는 서비스 끝점을 통해 노출되는 스크랩 메트릭을 통해 모니터링됩니다. 사용자 정의 프로젝트에 대한 메트릭 컬렉션을 구성할 수도 있습니다. 메트릭을 사용하면 클러스터 구성 요소 및 자체 워크로드가 수행하는 방법을 모니터링할 수 있습니다.
애플리케이션 수준에서 Prometheus 클라이언트 라이브러리를 사용하여 자체 워크로드에 대해 제공할 메트릭을 정의할 수 있습니다.
OpenShift Dedicated에서 /metrics 표준 이름 아래에 HTTP 서비스 끝점을 통해 메트릭이 노출됩니다. http://<endpoint>/metrics에 대해 curl 쿼리를 실행하여 서비스에 사용 가능한 모든 메트릭을 나열할 수 있습니다. 예를 들어 prometheus-example-app 예제 애플리케이션에 대한 경로를 노출하고 다음을 실행하여 사용 가능한 모든 메트릭을 확인할 수 있습니다.
$ curl http://<example_app_endpoint>/metrics
출력 예
# HELP http_requests_total Count of all HTTP requests
# TYPE http_requests_total counter
http_requests_total{code="200",method="get"} 4
http_requests_total{code="404",method="get"} 2
# HELP version Version information about this binary
# TYPE version gauge
version{version="v0.1.0"} 1
1.3.3.1. 사용자 정의 프로젝트에서 바인딩되지 않은 메트릭 속성의 영향 제어 링크 복사링크가 클립보드에 복사되었습니다!
개발자는 라벨을 생성하여 키-값 쌍의 형식으로 메트릭의 속성을 정의할 수 있습니다. 잠재적인 키-값 쌍의 수는 속성에 사용 가능한 값의 수에 해당합니다. 무제한의 잠재적인 값이 있는 속성을 바인딩되지 않은 속성이라고 합니다. 예를 들어, customer_id 속성은 무제한 가능한 값이 있기 때문에 바인딩되지 않은 속성입니다.
할당된 모든 키-값 쌍에는 고유한 시계열이 있습니다. 라벨에 있는 바인딩되지 않은 많은 속성을 사용하면 생성되는 시계열 수가 기하급수적으로 증가할 수 있습니다. 이는 Prometheus 성능에 영향을 미칠 수 있으며 많은 디스크 공간을 소비할 수 있습니다.
dedicated-admin 은 다음 측정값을 사용하여 사용자 정의 프로젝트에서 바인딩되지 않은 메트릭 속성의 영향을 제어할 수 있습니다.
- 사용자 정의 프로젝트에서 대상 스크랩별로 허용할 수 있는 샘플 수 제한
- 스크랩된 라벨 수, 라벨 이름 길이 및 라벨 값 길이 제한
- 연속 스크랩과 Prometheus 규칙 평가 사이의 간격 구성
- 스크랩 샘플 임계값에 도달하거나 대상을 스크랩할 수 없는 경고 생성
스크랩 샘플 제한으로 인해 라벨에 많은 바인딩되지 않는 속성을 추가하여 문제가 발생하지 않도록 할 수 있습니다. 개발자는 메트릭에 대해 정의된 바인딩되지 않은 속성 수를 제한하여 기본 원인을 방지할 수도 있습니다. 사용 가능한 값의 제한된 집합에 바인딩되는 속성을 사용하면 가능한 키 - 값 쌍 조합의 수가 줄어듭니다.
1.3.3.2. 메트릭에 클러스터 ID 라벨 추가 링크 복사링크가 클립보드에 복사되었습니다!
여러 OpenShift Dedicated 클러스터를 관리하고 원격 쓰기 기능을 사용하여 이러한 클러스터의 메트릭 데이터를 외부 스토리지 위치로 보내는 경우 클러스터 ID 레이블을 추가하여 다른 클러스터에서 들어오는 메트릭 데이터를 식별할 수 있습니다. 그런 다음 이러한 라벨을 쿼리하여 메트릭의 소스 클러스터를 식별하고 해당 데이터를 다른 클러스터에서 보낸 유사한 지표 데이터와 구별할 수 있습니다.
이렇게 하면 여러 고객의 여러 클러스터를 관리하고 지표 데이터를 단일 중앙 집중식 스토리지 시스템으로 보내는 경우 클러스터 ID 레이블을 사용하여 특정 클러스터 또는 고객의 메트릭을 쿼리할 수 있습니다.
클러스터 ID 레이블을 생성하고 사용하려면 세 가지 일반적인 단계가 필요합니다.
- 원격 쓰기 스토리지에 대한 쓰기 재레이블 설정 구성.
- 메트릭에 클러스터 ID 레이블을 추가합니다.
- 이러한 라벨을 쿼리하여 지표의 소스 클러스터 또는 고객을 식별합니다.
1.3.4. 모니터링 대시보드 정보 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated는 클러스터 구성 요소 및 사용자 정의 워크로드의 상태를 이해하는 데 도움이 되는 모니터링 대시보드 세트를 제공합니다.
OpenShift Dedicated 4.19부터 웹 콘솔의 관점에 통합됩니다. Developer 모드는 기본적으로 더 이상 활성화되지 않습니다.
모든 사용자는 모든 OpenShift Dedicated 웹 콘솔 기능과 상호 작용할 수 있습니다. 그러나 클러스터 소유자가 아닌 경우 클러스터 소유자의 특정 기능에 액세스할 수 있는 권한을 요청해야 할 수 있습니다.
여전히 개발자 화면을 활성화할 수 있습니다. 웹 콘솔의 시작 창에서 콘솔 둘러보기, 클러스터 설정, 개발자 화면 활성화에 대한 빠른 시작 정보를 찾고, 링크를 따라 새 기능 및 기능을 탐색할 수 있습니다.
관리자는 다음 항목을 포함하여 핵심 OpenShift Dedicated 구성 요소의 대시보드에 액세스할 수 있습니다.
- API 성능
- etcd
- Kubernetes 컴퓨팅 리소스
- Kubernetes 네트워크 리소스
- Prometheus
- 클러스터 및 노드 성능과 관련된 USE 메서드 대시보드
- 노드 성능 지표
1.3.5. 경고 관리 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated에서 경고 UI를 사용하면 경고, 음소거, 경고 규칙을 관리할 수 있습니다.
- 경고 규칙. 경고 규칙에는 클러스터 내에서 특정 상태를 설명하는 일련의 조건이 포함되어 있습니다. 이러한 조건이 true이면 경고가 트리거됩니다. 경고 규칙은 경고의 라우팅 방법을 정의하는 심각도를 할당할 수 있습니다.
- 경고. 경고 규칙에 정의된 조건이 true이면 경고가 실행됩니다. 경고는 OpenShift Dedicated 클러스터 내에서 일련의 상황이 나타날 수 있음을 알리는 알림을 제공합니다.
- 음소거. 경고 조건이 true일 때 알림이 전송되는 것을 방지하기 위해 경고에 음소거를 적용할 수 있습니다. 문제를 해결하는 동안 초기 알림 후 경고를 음소거할 수 있습니다.
경고 UI에서 사용할 수 있는 경고, 음소거, 경고 규칙은 액세스할 수 있는 프로젝트와 관련이 있습니다. 예를 들어 cluster-admin 역할의 사용자로 로그인한 경우 모든 경고, 음소거 및 경고 규칙에 액세스할 수 있습니다.
1.3.5.1. 음소거 관리 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated 웹 콘솔에서 경고에 대한 음소거를 생성할 수 있습니다. 음소거를 생성한 후에는 경고가 실행될 때 경고에 대한 알림을 받지 않습니다.
음소거는 초기 경고 알림을 수신한 시나리오에서 유용하며 기본 문제를 해결하는 동안 경고를 발생시키는 동안 추가 알림을 수신하지 않으려는 경우에 유용합니다.
음소거를 생성할 때 즉시 또는 나중에 활성 상태가 되는지 여부를 지정해야 합니다. 또한 음소거가 만료된 후 기간을 설정해야 합니다.
음소거를 생성한 후 이를 보고 편집하고 만료할 수 있습니다.
음소거를 생성하면 Alertmanager Pod에 복제됩니다. 그러나 Alertmanager에 대한 영구 스토리지를 구성하지 않으면 음소거가 손실될 수 있습니다. 예를 들어 모든 Alertmanager Pod가 동시에 다시 시작되면 이러한 상황이 발생할 수 있습니다.
1.3.5.2. 사용자 정의 프로젝트에 대한 경고 규칙 생성 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated에서는 사용자 정의 프로젝트에 대한 경고 규칙을 생성할 수 있습니다. 이러한 경고 규칙은 선택한 메트릭의 값에 따라 경고를 트리거합니다.
사용자 정의 프로젝트에 대한 경고 규칙을 생성하는 경우 새 규칙을 정의할 때 다음 주요 동작 및 중요한 제한 사항을 고려하십시오.
사용자 정의 경고 규칙은 코어 플랫폼 모니터링의 기본 메트릭 외에도 자체 프로젝트에서 노출하는 메트릭을 포함할 수 있습니다. 다른 사용자 정의 프로젝트의 메트릭을 포함할 수 없습니다.
예를 들어
ns1사용자 정의 프로젝트에 대한 경고 규칙은 CPU 및 메모리 지표와 같은 코어 플랫폼 메트릭 외에도ns1프로젝트에서 노출하는 메트릭을 사용할 수 있습니다. 그러나 규칙에는 다른ns2사용자 정의 프로젝트의 메트릭을 포함할 수 없습니다.-
기본적으로 경고 규칙을 생성할 때 동일한 이름의 규칙이 다른 프로젝트에 존재하는 경우에도
네임스페이스레이블이 적용됩니다. 원본 프로젝트에 바인딩되지 않은 경고 규칙을 생성하려면 "사용자 정의 프로젝트에 대한 프로젝트 간 경고 규칙 생성"을 참조하십시오. 대기 시간을 줄이고 핵심 플랫폼 모니터링 구성 요소의 부하를 최소화하기 위해
openshift.io/prometheus-rule-evaluation-scope: leaf-prometheus레이블을 규칙에 추가할 수 있습니다. 이 레이블은openshift-user-workload-monitoring프로젝트에 배포된 Prometheus 인스턴스만 경고 규칙을 평가하고 Thanos Ruler 인스턴스가 이를 수행하지 못하도록 합니다.중요경고 규칙에 이 레이블이 있는 경우 경고 규칙은 사용자 정의 프로젝트에서 노출하는 메트릭만 사용할 수 있습니다. 기본 플랫폼 메트릭을 기반으로 생성하는 경고 규칙은 경고가 트리거되지 않을 수 있습니다.
1.3.5.3. 사용자 정의 프로젝트에 대한 경고 규칙 관리 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated에서는 사용자 정의 프로젝트에서 경고 규칙을 보고 편집하고 제거할 수 있습니다.
사용자 정의 프로젝트에 대한 경고 규칙 관리는 OpenShift Dedicated 버전 4.11 이상에서만 사용할 수 있습니다.
경고 규칙 고려 사항
- 기본 경고 규칙은 특히 OpenShift Dedicated 클러스터에 사용됩니다.
- 일부 경고 규칙은 의도적으로 이름이 동일합니다. 임계값, 다른 심각도 또는 둘 다의 경우와 동일한 이벤트에 대한 경고를 보냅니다.
- 억제 규칙은 심각도가 높은 경고가 실행될 때 실행되는 심각도가 낮은 경고에 대한 알림을 방지합니다.
1.3.5.4. 사용자 정의 프로젝트에 대한 경고 최적화 링크 복사링크가 클립보드에 복사되었습니다!
경고 규칙을 생성할 때 다음 권장 사항을 따라 자체 프로젝트에 대한 경고를 최적화할 수 있습니다.
- 프로젝트에 생성하는 경고 규칙 수를 최소화합니다. 사용자에게 영향을 미치는 조건에 대해 알리는 경고 규칙을 생성합니다. 영향을 주지 않는 조건에 대한 여러 경고를 생성하면 관련 경고를 알리기가 더 어렵습니다.
- 원인 대신 증상에 대한 경고 규칙을 만듭니다. 기본 원인과 관계없이 조건을 알리는 경고 규칙을 만듭니다. 그러면 원인을 조사할 수 있습니다. 각 항목이 특정 원인에만 관련된 경우 더 많은 경고 규칙이 필요합니다. 그러면 일부 원인으로 인해 누락될 가능성이 큽니다.
- 경고 규칙을 작성하기 전에 계획합니다. 어떤 증상이 사용자에게 중요한지, 발생 시 어떤 조치를 수행할지를 결정합니다. 그런 다음 각 증상에 대한 경고 규칙을 구축합니다.
- 명확한 경고 메시지를 제공합니다. 경고 메시지에서 증상과 권장 작업을 설명합니다.
- 경고 규칙에 심각도 수준을 포함합니다. 경고의 심각도는 보고된 증상이 발생하는 경우 어떻게 대응해야 하는지에 따라 다릅니다. 예를 들어 증상이 개인 또는 문제 대응팀에서 즉각적인 주의가 필요한 경우 심각한 경고를 트리거해야 합니다.
1.3.5.5. 경고, 음소거, 경고 규칙 검색 및 필터링 링크 복사링크가 클립보드에 복사되었습니다!
경고 UI에 표시되는 경고, 음소거 및 경고 규칙을 필터링할 수 있습니다. 이 섹션에서는 사용 가능한 필터링 옵션 각각에 대해 설명합니다.
1.3.5.5.1. 경고 필터 이해 링크 복사링크가 클립보드에 복사되었습니다!
경고 UI의 경고 페이지는 기본 OpenShift Dedicated 및 사용자 정의 프로젝트와 관련된 경고에 대한 세부 정보를 제공합니다. 페이지에는 각 경고에 대한 심각도, 상태 및 소스가 요약되어 있습니다. 현재 상태로 경고가 표시되는 시간도 표시됩니다.
경고 상태, 심각도 및 소스로 필터링할 수 있습니다. 기본적으로 실행되는 플랫폼만 표시됩니다. 다음은 각 경고 필터링 옵션을 설명합니다.
상태 필터:
-
실행. 경고 조건이 true 이므로 경고가 실행되고 기간
동안선택 사항이 전달됩니다. 상태가 true로 유지되는 동안 경고가 계속 실행됩니다. - 보류 중. 경고는 활성화되어 있지만 실행되기 전에 경고 규칙에 지정된 기간 동안 대기 중입니다.
- 음소거. 이제 정의된 기간 동안 경고가 음소거되었습니다. 사용자가 정의한 라벨 선택기 집합에 따라 일시적으로 음소거가 경고를 음소거합니다. 나열된 모든 값 또는 정규식과 일치하는 경고에는 알림이 전송되지 않습니다.
-
실행. 경고 조건이 true 이므로 경고가 실행되고 기간
심각도 필터:
- 심각. 경고를 트리거한 조건으로 심각한 영향을 미칠 수 있습니다. 경고는 실행 시 즉각적인 주의가 필요하며 일반적으로 개인 또는 문제 대응팀으로 호출됩니다.
- 경고. 경고는 문제가 발생하지 않도록 주의가 필요할 수 있는 사항에 대한 경고 알림을 제공합니다. 경고는 일반적으로 즉각적이 아닌 검토에 대해 티켓 시스템으로 라우팅됩니다.
- 정보. 경고는 정보 목적으로만 제공됩니다.
- 없음. 경고에 정의된 심각도가 없습니다.
- 사용자 정의 프로젝트와 관련된 경고에 대한 사용자 정의 심각도 정의를 생성할 수도 있습니다.
소스 필터:
- 플랫폼. 플랫폼 수준 경고는 기본 OpenShift Dedicated 프로젝트에만 관련이 있습니다. 이러한 프로젝트는 핵심 OpenShift Dedicated 기능을 제공합니다.
- 사용자 사용자 경고는 사용자 정의 프로젝트와 관련되어 있습니다. 이러한 경고는 사용자가 생성하며 사용자 정의할 수 있습니다. 사용자 정의 워크로드 모니터링은 설치 후 활성화하여 자체 워크로드에 관찰 기능을 제공할 수 있습니다.
1.3.5.5.2. 음소거 필터 이해 링크 복사링크가 클립보드에 복사되었습니다!
경고 UI 의 음소거 페이지는 기본 OpenShift Dedicated 및 사용자 정의 프로젝트의 경고에 적용된 음소거에 대한 세부 정보를 제공합니다. 페이지에는 각 음소거의 상태 요약과 음소거가 종료되는 시점이 포함되어 있습니다.
음소거 상태별로 필터링할 수 있습니다. 기본적으로 활성 및 보류 중 음소거만 표시됩니다. 다음은 각 음소거 상태 필터 옵션을 설명합니다.
상태 필터:
- 활성. 음소거가 활성 상태이며 음소거가 만료될 때까지 경고가 음소거됩니다.
- 보류 중. 음소거 예정되어 있고 아직 활성화되지 않았습니다.
- 만료. 경고 조건이 true이면 음소거가 만료되고 알림이 전송됩니다.
1.3.5.5.3. 경고 규칙 필터 이해 링크 복사링크가 클립보드에 복사되었습니다!
경고 UI의 경고 규칙 페이지는 기본 OpenShift Dedicated 및 사용자 정의 프로젝트와 관련된 경고 규칙에 대한 세부 정보를 제공합니다. 페이지에는 각 경고 규칙의 상태, 심각도 및 소스가 요약되어 있습니다.
경고 상태, 심각도 및 소스에 따라 경고 규칙을 필터링할 수 있습니다. 기본적으로 플랫폼 경고 규칙만 표시됩니다. 다음은 각 경고 규칙 필터링 옵션을 설명합니다.
경고 상태 필터:
-
실행. 경고 조건이 true 이므로 경고가 실행되고 기간
동안선택 사항이 전달됩니다. 상태가 true로 유지되는 동안 경고가 계속 실행됩니다. - 보류 중. 경고는 활성화되어 있지만 실행되기 전에 경고 규칙에 지정된 기간 동안 대기 중입니다.
- 음소거. 이제 정의된 기간 동안 경고가 음소거되었습니다. 사용자가 정의한 라벨 선택기 집합에 따라 일시적으로 음소거가 경고를 음소거합니다. 나열된 모든 값 또는 정규식과 일치하는 경고에는 알림이 전송되지 않습니다.
- 실행하지 않음. 경고가 실행되지 않습니다.
-
실행. 경고 조건이 true 이므로 경고가 실행되고 기간
심각도 필터:
- 심각. 경고 규칙에 정의된 조건이 심각한 영향을 미칠 수 있습니다. true인 경우 이러한 조건에는 즉각적인 주의가 필요합니다. 규칙과 관련된 경고는 일반적으로 개인 또는 문제 대응팀으로 호출됩니다.
- 경고. 경고 규칙에 정의된 조건은 문제가 발생하지 않도록 주의해야 할 수 있습니다. 규칙과 관련된 경고는 일반적으로 즉각적이 아닌 검토에 대해 티켓 시스템으로 라우팅됩니다.
- 정보. 경고 규칙은 정보성 경고만 제공합니다.
- 없음. 경고 규칙에는 정의된 심각도가 없습니다.
- 사용자 정의 프로젝트와 관련된 경고 규칙에 대한 사용자 정의 심각도 정의를 생성할 수도 있습니다.
소스 필터:
- 플랫폼. 플랫폼 수준 경고 규칙은 기본 OpenShift Dedicated 프로젝트에만 관련이 있습니다. 이러한 프로젝트는 핵심 OpenShift Dedicated 기능을 제공합니다.
- 사용자 사용자 정의 워크로드 경고 규칙은 사용자 정의 프로젝트와 관련이 있습니다. 이러한 경고 규칙은 사용자가 생성하며 사용자 정의할 수 있습니다. 사용자 정의 워크로드 모니터링은 설치 후 활성화하여 자체 워크로드에 관찰 기능을 제공할 수 있습니다.
1.3.6. 사용자 정의 프로젝트에 대한 경고 라우팅 이해 링크 복사링크가 클립보드에 복사되었습니다!
전용 관리자는 사용자 정의 프로젝트에 대한 경고 라우팅을 활성화할 수 있습니다. 이 기능을 사용하면 alert-routing-edit 클러스터 역할이 있는 사용자가 사용자 정의 프로젝트에 대한 경고 알림 라우팅 및 수신자를 구성할 수 있습니다. 이러한 알림은 사용자 정의 모니터링 전용 Alertmanager 인스턴스에서 라우팅됩니다.
그런 다음 사용자는 관리자의 지원없이 사용자 정의 프로젝트에 대한 AlertmanagerConfig 오브젝트를 생성하거나 편집하여 사용자 정의 경고 라우팅을 생성하고 구성할 수 있습니다.
사용자가 사용자 정의 프로젝트에 대한 경고 라우팅을 정의한 후에는 사용자 정의 경고 알림이 openshift-user-workload-monitoring 네임스페이스의 alertmanager-user-workload Pod로 라우팅됩니다.
사용자 정의 프로젝트에 대한 경고 라우팅의 다음 제한 사항을 검토하십시오.
-
사용자 정의 경고 규칙의 경우 사용자 정의 라우팅의 범위는 리소스가 정의된 네임스페이스로 지정됩니다. 예를 들어 네임스페이스
ns1의 라우팅 구성은 동일한 네임스페이스의PrometheusRules리소스에만 적용됩니다. -
사용자 정의 모니터링에서 네임스페이스가 제외되면 네임스페이스의
AlertmanagerConfig리소스가 Alertmanager 구성의 일부가 됩니다.
1.3.7. 외부 시스템에 알림 전송 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated 에서는 경고 UI에서 실행 경고를 볼 수 있습니다. 알림은 기본적으로 모든 알림 시스템으로 전송되지 않습니다. 다음 수신자 유형에 경고를 전송하도록 OpenShift Dedicated를 구성할 수 있습니다.
- PagerDuty
- Webhook
- 이메일
- Slack
- Microsoft Teams
알림을 수신기로 라우팅하면 오류가 발생할 때 적절한 팀에게 적절한 알림을 보낼 수 있습니다. 예를 들어, 심각한 경고는 즉각적인 주의가 필요하며 일반적으로 개인 또는 문제 대응팀으로 호출됩니다. 심각하지 않은 경고 알림을 제공하는 경고는 즉각적이지 않은 검토를 위해 티켓팅 시스템으로 라우팅할 수 있습니다.
워치독 경고를 사용하여 해당 경고가 제대로 작동하는지 확인
OpenShift Dedicated 모니터링에는 지속적으로 실행되는 워치독 경고가 포함되어 있습니다. Alertmanager는 구성된 알림 공급자에게 워치독 경고 알림을 반복적으로 보냅니다. 일반적으로 공급자는 워치독 경고를 수신하지 않을 때 관리자에게 알리도록 구성됩니다. 이 메커니즘을 사용하면 Alertmanager와 알림 공급자 간의 모든 통신 문제를 빠르게 식별할 수 있습니다.
2장. 시작하기 링크 복사링크가 클립보드에 복사되었습니다!
2.1. 모니터링의 유지보수 및 지원 링크 복사링크가 클립보드에 복사되었습니다!
모니터링 스택의 모든 구성 옵션이 노출되는 것은 아닙니다. OpenShift Dedicated 모니터링을 구성하려면 추가 리소스 섹션에 연결된 "Cluster Monitoring Operator 구성 참조"에 설명된 옵션을 사용하여 CCMO(Cluster Monitoring Operator)를 구성합니다. 다른 구성은 지원되지 않으므로 사용하지 마십시오.
구성 패러다임은 Prometheus 릴리스마다 변경될 수 있으며 이러한 경우는 모든 구성 가능성이 제어되는 경우에만 정상적으로 처리될 수 있습니다. 지원되지 않는 구성을 사용하는 경우 CMO가 차이점을 자동으로 조정하고 지원되지 않는 변경 사항을 기본적으로 정의된 상태로 다시 재설정하므로 변경 사항이 사라집니다.
다른 Prometheus 인스턴스 설치는 Red Hat 사이트 안정성 엔지니어(SRE)에서 지원되지 않습니다.
2.1.1. 모니터링에 대한 지원 고려 사항 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated 모니터링에는 구성 제한이 있습니다. 자동화된 구성 재설정을 방지하려면 이를 이해하는 것이 중요합니다.
메트릭, 기록 규칙 또는 경고 규칙에 대한 이전 버전과의 호환성은 보장되지 않습니다.
다음과 같은 수정 사항은 명시적으로 지원되지 않습니다.
- OpenShift Dedicated에 사용자 정의 Prometheus 인스턴스 설치. 사용자 정의 인스턴스는 Prometheus Operator에서 관리하는 Prometheus CR(사용자 정의 리소스)입니다.
-
기본 플랫폼 모니터링 구성 요소 수정
cluster-monitoring-config구성 맵에 정의된 구성 요소를 수정하지 않아야 합니다. Red Hat SRE는 이러한 구성 요소를 사용하여 핵심 클러스터 구성 요소 및 Kubernetes 서비스를 모니터링합니다.
2.1.2. 모니터링 구성 요소에 대한 버전 매트릭스 지원 링크 복사링크가 클립보드에 복사되었습니다!
다음 매트릭스에는 OpenShift Dedicated 4.12 및 이후 릴리스의 모니터링 구성 요소 버전에 대한 정보가 포함되어 있습니다.
| OpenShift Dedicated | Prometheus Operator | Prometheus | 지표 서버 | Alertmanager | kube-state-metrics 에이전트 | monitoring-plugin | node-exporter 에이전트 | Thanos |
|---|---|---|---|---|---|---|---|---|
| 4.20 | 0.85.0 | 3.5.0 | 0.8.0 | 0.28.1 | 2.16.0 | 1.0.0 | 1.9.1 | 0.39.2 |
| 4.19 | 0.81.0 | 3.2.1 | 0.7.2 | 0.28.1 | 2.15.0 | 1.0.0 | 1.9.1 | 0.37.2 |
| 4.18 | 0.78.1 | 2.55.1 | 0.7.2 | 0.27.0 | 2.13.0 | 1.0.0 | 1.8.2 | 0.36.1 |
| 4.17 | 0.75.2 | 2.53.1 | 0.7.1 | 0.27.0 | 2.13.0 | 1.0.0 | 1.8.2 | 0.35.1 |
| 4.16 | 0.73.2 | 2.52.0 | 0.7.1 | 0.26.0 | 2.12.0 | 1.0.0 | 1.8.0 | 0.35.0 |
| 4.15 | 0.70.0 | 2.48.0 | 0.6.4 | 0.26.0 | 2.10.1 | 1.0.0 | 1.7.0 | 0.32.5 |
| 4.14 | 0.67.1 | 2.46.0 | 해당 없음 | 0.25.0 | 2.9.2 | 1.0.0 | 1.6.1 | 0.30.2 |
| 4.13 | 0.63.0 | 2.42.0 | 해당 없음 | 0.25.0 | 2.8.1 | 해당 없음 | 1.5.0 | 0.30.2 |
| 4.12 | 0.60.1 | 2.39.1 | 해당 없음 | 0.24.0 | 2.6.0 | 해당 없음 | 1.4.0 | 0.28.1 |
openshift-state-metrics 에이전트 및 Telemeter Client는 OpenShift 관련 구성 요소입니다. 따라서 해당 버전은 OpenShift Dedicated 버전에 해당합니다.
2.2. 사용자 정의 프로젝트에 대한 모니터링 액세스 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated 클러스터를 설치하면 사용자 정의 프로젝트에 대한 모니터링이 기본적으로 활성화됩니다. 사용자 정의 프로젝트를 모니터링하면 추가 모니터링 솔루션 없이도 자체 OpenShift Dedicated 프로젝트를 모니터링할 수 있습니다.
dedicated-admin 사용자에게는 사용자 정의 프로젝트에 대한 모니터링을 구성하고 액세스할 수 있는 기본 권한이 있습니다.
OLM(Operator Lifecycle Manager)을 통해 설치된 사용자 정의 Prometheus 인스턴스 및 Prometheus Operator는 활성화된 경우 사용자 정의 프로젝트 모니터링에 문제가 발생할 수 있습니다. 사용자 정의 Prometheus 인스턴스는 지원되지 않습니다.
선택적으로 클러스터 설치 중 또는 설치 후 사용자 정의 프로젝트에 대한 모니터링을 비활성화할 수 있습니다.
2.3. 사용자 정의 프로젝트 모니터링 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
전용 관리자는 사용자 정의 프로젝트에 대한 모니터링을 비활성화할 수 있습니다. 사용자 워크로드 모니터링에서 개별 프로젝트를 제외할 수도 있습니다.
2.3.1. 사용자 정의 프로젝트 모니터링 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 사용자 정의 프로젝트에 대한 모니터링이 활성화됩니다. 기본 제공 모니터링 스택을 사용하여 사용자 정의 프로젝트를 모니터링하지 않으려면 비활성화할 수 있습니다.
사전 요구 사항
- OpenShift Cluster Manager 에 로그인했습니다.
프로세스
- OpenShift Cluster Manager Hybrid Cloud Console에서 클러스터를 선택합니다.
- 설정 탭을 클릭합니다.
사용자 워크로드 모니터링 활성화 확인란을 클릭하여 옵션을 선택 해제한 다음 저장을 클릭합니다.
사용자 워크로드 모니터링이 비활성화됩니다. Prometheus, Prometheus Operator 및 Thanos Ruler 구성 요소는
openshift-user-workload-monitoring프로젝트에서 중지됩니다.
2.3.2. 모니터링에서 사용자 정의 프로젝트 제외 링크 복사링크가 클립보드에 복사되었습니다!
개별 사용자 정의 프로젝트는 사용자 워크로드 모니터링에서 제외될 수 있습니다. 이렇게 하려면 값이 false 인 프로젝트의 네임스페이스에 openshift.io/user-monitoring 레이블을 추가합니다.
프로세스
프로젝트 네임스페이스에 라벨을 추가합니다.
$ oc label namespace my-project 'openshift.io/user-monitoring=false'모니터링을 다시 활성화하려면 네임스페이스에서 라벨을 제거합니다.
$ oc label namespace my-project 'openshift.io/user-monitoring-'참고프로젝트에 대한 활성 모니터링 대상이 있는 경우 레이블을 추가한 후 Prometheus가 스크랩을 중지하는 데 몇 분이 걸릴 수 있습니다.
3장. 사용자 워크로드 모니터링 구성 링크 복사링크가 클립보드에 복사되었습니다!
3.1. 사용자 워크로드 모니터링 스택 구성 준비 링크 복사링크가 클립보드에 복사되었습니다!
이 섹션에서는 구성할 수 있는 사용자 정의 모니터링 구성 요소와 사용자 워크로드 모니터링 스택 구성을 준비하는 방법을 설명합니다.
- 모니터링 스택의 모든 구성 매개변수가 노출되는 것은 아닙니다. 구성에서는 Cluster Monitoring Operator의 구성 맵 참조에 나열된 매개변수 및 필드만 지원됩니다.
3.1.1. 구성 가능한 모니터링 구성 요소 링크 복사링크가 클립보드에 복사되었습니다!
이 표는 구성할 수 있는 모니터링 구성 요소와 user-workload-monitoring-config 구성 맵에서 구성 요소를 지정하는 데 사용되는 키를 보여줍니다.
cluster-monitoring-config ConfigMap 오브젝트에서 모니터링 구성 요소를 수정하지 마십시오. Red Hat 사이트 안정성 엔지니어(SRE)는 이러한 구성 요소를 사용하여 핵심 클러스터 구성 요소 및 Kubernetes 서비스를 모니터링합니다.
| Component | user-workload-monitoring-config 구성 맵 키 |
|---|---|
| Prometheus Operator |
|
| Prometheus |
|
| Alertmanager |
|
| Thanos Ruler |
|
3.1.2. 사용자 정의 프로젝트에 대한 경고 라우팅 활성화 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated에서 관리자는 사용자 정의 프로젝트에 대한 경고 라우팅을 활성화할 수 있습니다. 이 프로세스는 다음 단계로 구성됩니다.
- 사용자 정의 프로젝트에 대한 경고 라우팅을 활성화하여 별도의 Alertmanager 인스턴스를 사용합니다.
- 사용자 정의 프로젝트에 대한 경고 라우팅을 구성할 수 있는 권한을 사용자에게 부여합니다.
이러한 단계를 완료하면 개발자 및 기타 사용자가 사용자 정의 경고를 구성하고 사용자 정의 프로젝트에 대한 라우팅을 경고할 수 있습니다.
3.1.2.1. 사용자 정의 경고 라우팅을 위한 별도의 Alertmanager 인스턴스 활성화 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated에서는 기본 플랫폼 경고와 별도로 사용자 정의 경고를 제공하는 사용자 정의 프로젝트에 대한 전용 Alertmanager 인스턴스를 배포할 수 있습니다. 이 경우 별도의 Alertmanager 인스턴스를 선택적으로 활성화하여 사용자 정의 프로젝트에 대한 경고만 보낼 수 있습니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-configConfigMap오브젝트가 있습니다. 이 오브젝트는 클러스터가 생성될 때 기본적으로 생성됩니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
user-workload-monitoring-configConfigMap오브젝트를 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-configdata/config.yaml아래의alertmanager섹션에 있는enabled: true및enableAlertmanagerConfig: true를 추가합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | alertmanager: enabled: true1 enableAlertmanagerConfig: true2 - 1
- 클러스터에서 사용자 정의 프로젝트에 대해 Alertmanager의 전용 인스턴스를 활성화하려면
enabled값을true로 설정합니다. 값을false로 설정하거나 사용자 정의 프로젝트에 대해 Alertmanager를 비활성화하려면 키를 완전히 생략합니다. 이 값을false로 설정하거나 키가 생략된 경우 사용자 정의 경고가 기본 플랫폼 Alertmanager 인스턴스로 라우팅됩니다. - 2
- 사용자가
AlertmanagerConfig오브젝트를 사용하여 자체 경고 라우팅 구성을 정의할 수 있도록enableAlertmanagerConfig값을true로 설정합니다.
- 파일을 저장하여 변경 사항을 적용합니다. 사용자 정의 프로젝트에 대한 Alertmanager의 전용 인스턴스가 자동으로 시작됩니다.
검증
alert-manager-user-workloadPod가 실행 중인지 확인합니다.$ oc -n openshift-user-workload-monitoring get pods출력 예
NAME READY STATUS RESTARTS AGE alertmanager-user-workload-0 6/6 Running 0 38s alertmanager-user-workload-1 6/6 Running 0 38s ...
3.1.2.2. 사용자 정의 프로젝트에 대한 경고 라우팅을 구성할 수 있는 사용자 권한 부여 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 프로젝트에 대한 경고 라우팅을 구성할 수 있는 권한을 사용자에게 부여할 수 있습니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-configConfigMap오브젝트가 있습니다. 이 오브젝트는 클러스터가 생성될 때 기본적으로 생성됩니다. - 이미 존재하는 역할에 할당 중인 사용자 계정입니다.
-
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
사용자 정의 프로젝트의 사용자에게
alert-routing-edit클러스터 역할을 할당합니다.$ oc -n <namespace> adm policy add-role-to-user alert-routing-edit <user>1 - 1
<namespace>의 경우ns1과 같은 사용자 정의 프로젝트의 네임스페이스를 대체합니다.<user>에게 역할을 할당하려는 계정의 사용자 이름을 대체합니다.
3.2. 사용자 워크로드 모니터링을 위한 성능 및 확장성 구성 링크 복사링크가 클립보드에 복사되었습니다!
클러스터의 성능과 스케일링을 최적화하도록 모니터링 스택을 구성할 수 있습니다. 다음 문서에서는 모니터링 구성 요소를 배포하고 CPU 및 메모리 리소스에 대한 모니터링 스택의 영향을 제어하는 방법에 대한 정보를 제공합니다.
3.2.1. 모니터링 구성 요소의 배치 및 배포 제어 링크 복사링크가 클립보드에 복사되었습니다!
모니터링 스택 구성 요소를 특정 노드로 이동할 수 있습니다.
-
라벨이 지정된 노드에
nodeSelector제약 조건을 사용하여 모니터링 스택 구성 요소를 특정 노드로 이동합니다. - 테인트된 노드로 이동하는 구성 요소를 활성화하려면 허용 오차를 할당합니다.
이렇게 하면 클러스터 전체에서 모니터링 구성 요소의 배치 및 배포를 제어할 수 있습니다.
모니터링 구성 요소의 배치 및 배포를 제어하면 시스템 리소스 사용을 최적화하고 성능을 개선하고 특정 요구 사항 또는 정책을 기반으로 워크로드를 분리할 수 있습니다.
3.2.1.1. 다른 노드로 모니터링 구성 요소 이동 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 프로젝트의 워크로드를 모니터링하는 구성 요소를 특정 작업자 노드로 이동할 수 있습니다.
구성 요소를 컨트롤 플레인 또는 인프라 노드로 이동할 수 없습니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-configConfigMap오브젝트가 있습니다. 이 오브젝트는 클러스터가 생성될 때 기본적으로 생성됩니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
아직 수행하지 않은 경우 모니터링 구성 요소를 실행할 노드에 라벨을 추가합니다.
$ oc label nodes <node_name> <node_label>1 - 1
- &
lt;node_name>을 레이블을 추가할 노드의 이름으로 바꿉니다. <node_label>을 원하는 라벨 이름으로 바꿉니다.
openshift-user-workload-monitoring프로젝트에서user-workload-monitoring-configConfigMap오브젝트를 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-configdata/config.yaml에서 구성 요소의nodeSelector제약 조건의 노드 레이블을 지정합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | # ... <component>:1 nodeSelector: <node_label_1>2 <node_label_2>3 # ...- 파일을 저장하여 변경 사항을 적용합니다. 새 구성에 지정된 구성 요소가 자동으로 새 노드로 이동되고 새 구성의 영향을 받는 Pod가 재배포됩니다.
3.2.1.2. 모니터링 구성 요소에 허용 오차 할당 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 프로젝트를 모니터링하는 구성 요소에 허용 오차를 할당하여 테인트된 작업자 노드로 이동할 수 있습니다. 컨트롤 플레인 또는 인프라 노드에서 예약이 허용되지 않습니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-configConfigMap오브젝트는openshift-user-workload-monitoring네임스페이스에 있습니다. 이 오브젝트는 클러스터가 생성될 때 기본적으로 생성됩니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
openshift-user-workload-monitoring프로젝트에서user-workload-monitoring-config구성 맵을 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config구성 요소에 대한
tolerations를 지정합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | <component>: tolerations: <toleration_specification>이에 따라
<component>및<toleration_specification>을 바꿉니다.예를 들어
oc adm taint nodes node1 key1=value1:NoSchedule은key1의 키와value1의 값이 있는node1에 테인트를 추가합니다. 이렇게 하면 해당 테인트에 허용 오차가 구성되지 않는 한node1에 모니터링 구성 요소가 배포되지 않습니다. 다음 예제는 예제 테인트를 허용하도록thanosRuler구성 요소를 구성합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | thanosRuler: tolerations: - key: "key1" operator: "Equal" value: "value1" effect: "NoSchedule"- 파일을 저장하여 변경 사항을 적용합니다. 새 구성의 영향을 받는 Pod가 자동으로 재배포됩니다.
3.2.2. 모니터링 구성 요소를 위한 CPU 및 메모리 리소스 관리 링크 복사링크가 클립보드에 복사되었습니다!
모니터링 구성 요소를 실행하는 컨테이너에 리소스 제한 및 해당 구성 요소에 대한 요청을 지정하여 충분한 CPU 및 메모리 리소스가 있는지 확인할 수 있습니다.
openshift-user-workload-monitoring 네임스페이스에서 사용자 정의 프로젝트를 모니터링하는 모니터링 구성 요소에 대한 제한 및 요청을 구성할 수 있습니다.
3.2.2.1. 제한 및 요청 지정 링크 복사링크가 클립보드에 복사되었습니다!
CPU 및 메모리 리소스를 구성하려면 openshift-user-workload-monitoring 네임스페이스의 user-workload-monitoring-config ConfigMap 오브젝트에서 리소스 제한 및 요청 값을 지정합니다.
사전 요구 사항
-
cluster-admin클러스터 역할의 사용자로 또는openshift-user-workload-monitoring프로젝트에서user-workload-monitoring-config-edit역할의 사용자로 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
openshift-user-workload-monitoring프로젝트에서user-workload-monitoring-config구성 맵을 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config구성할 각 구성 요소에 대한 리소스 제한 및 요청을 정의하는 값을 추가합니다.
중요제한에 설정된 값이 요청에 설정된 값보다 항상 높은지 확인합니다. 그러지 않으면 오류가 발생하고 컨테이너가 실행되지 않습니다.
리소스 제한 및 요청 설정 예
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | alertmanager: resources: limits: cpu: 500m memory: 1Gi requests: cpu: 200m memory: 500Mi prometheus: resources: limits: cpu: 500m memory: 3Gi requests: cpu: 200m memory: 500Mi thanosRuler: resources: limits: cpu: 500m memory: 1Gi requests: cpu: 200m memory: 500Mi- 파일을 저장하여 변경 사항을 적용합니다. 새 구성의 영향을 받는 Pod가 자동으로 재배포됩니다.
3.2.3. 사용자 정의 프로젝트에서 바인딩되지 않은 메트릭 속성의 영향 제어 링크 복사링크가 클립보드에 복사되었습니다!
dedicated-admin 은 다음 측정값을 사용하여 사용자 정의 프로젝트에서 바인딩되지 않은 메트릭 속성의 영향을 제어할 수 있습니다.
- 사용자 정의 프로젝트에서 대상 스크랩별로 허용할 수 있는 샘플 수 제한
- 스크랩된 라벨 수, 라벨 이름 길이 및 라벨 값 길이 제한
- 연속 스크랩과 Prometheus 규칙 평가 사이의 간격 구성
스크랩 샘플 제한으로 인해 라벨에 많은 바인딩되지 않는 속성을 추가하여 문제가 발생하지 않도록 할 수 있습니다. 개발자는 메트릭에 대해 정의된 바인딩되지 않은 속성 수를 제한하여 기본 원인을 방지할 수도 있습니다. 사용 가능한 값의 제한된 집합에 바인딩되는 속성을 사용하면 가능한 키 - 값 쌍 조합의 수가 줄어듭니다.
3.2.3.1. 사용자 정의 프로젝트에 대한 스크랩 간격, 평가 간격 및 적용 제한 설정 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 프로젝트에 대해 다음 스크랩 및 라벨 제한을 설정할 수 있습니다.
- 대상 스크랩별로 허용할 수 있는 샘플 수 제한
- 스크랩된 라벨 수 제한
- 레이블 이름 및 라벨 값의 길이 제한
연속 스크랩과 Prometheus 규칙 평가 사이의 간격을 설정할 수도 있습니다.
샘플 또는 레이블 제한을 설정하면 제한에 도달한 후 해당 대상 스크랩에 대한 추가 샘플 데이터가 사용되지 않습니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-configConfigMap오브젝트가 있습니다. 이 오브젝트는 클러스터가 생성될 때 기본적으로 생성됩니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
openshift-user-workload-monitoring프로젝트에서user-workload-monitoring-configConfigMap오브젝트를 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-configdata/config.yaml:에 강제 제한 및 시간 간격 구성을 추가합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: enforcedSampleLimit: 500001 enforcedLabelLimit: 5002 enforcedLabelNameLengthLimit: 503 enforcedLabelValueLengthLimit: 6004 scrapeInterval: 1m30s5 evaluationInterval: 1m15s6 - 1
- 이 매개변수가 지정된 경우 값이 필요합니다. 이
enforcedSampleLimit예제에서는 사용자 정의 프로젝트의 대상 스크랩별로 허용할 수 있는 샘플 수를 50,000개로 제한합니다. - 2
- 스크랩당 최대 라벨 수를 지정합니다. 기본값은
0이며, 제한이 없음을 지정합니다. - 3
- 레이블 이름의 최대 문자 길이를 지정합니다. 기본값은
0이며, 제한이 없음을 지정합니다. - 4
- 레이블 값의 최대 문자 길이를 지정합니다. 기본값은
0이며, 제한이 없음을 지정합니다. - 5
- 연속 스크랩 사이의 간격을 지정합니다. 간격을 5초에서 5분으로 설정해야 합니다. 기본값은
30s입니다. - 6
- Prometheus 규칙 평가 사이의 간격을 지정합니다. 간격을 5초에서 5분으로 설정해야 합니다. Prometheus의 기본값은
30s입니다.참고data/config.yaml/thanosRuler필드를 통해 Thanos Ruler에 대한evaluationInterval속성을 구성할 수도 있습니다. Thanos Ruler의 기본값은15s입니다.
- 파일을 저장하여 변경 사항을 적용합니다. 제한이 자동으로 적용됩니다.
3.2.4. Pod 토폴로지 분배 제약 조건 구성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 모니터링을 위해 모든 Pod에 대한 Pod 토폴로지 분배 제약 조건을 구성하여 영역 전체의 노드에 Pod 복제본을 예약하는 방법을 제어할 수 있습니다. 이렇게 하면 워크로드가 다른 데이터 센터 또는 계층적 인프라 영역의 노드에 분산되므로 Pod를 고가용성 및 더 효율적으로 실행할 수 있습니다.
user-workload-monitoring-config 구성 맵을 사용하여 Pod 모니터링에 대한 Pod 토폴로지 분배 제약 조건을 구성할 수 있습니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-configConfigMap오브젝트가 있습니다. 이 오브젝트는 클러스터가 생성될 때 기본적으로 생성됩니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
openshift-user-workload-monitoring프로젝트에서user-workload-monitoring-config구성 맵을 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-configdata/config.yaml필드 아래에 다음 설정을 추가하여 Pod 토폴로지 분배 제약 조건을 구성합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | <component>:1 topologySpreadConstraints: - maxSkew: <n>2 topologyKey: <key>3 whenUnsatisfiable: <value>4 labelSelector:5 <match_option>- 1
- Pod 토폴로지 분배 제약 조건을 설정할 구성 요소의 이름을 지정합니다.
- 2
maxSkew에 대한 숫자 값을 지정합니다. 이 값은 균등하게 분배될 수 있는 Pod를 정의합니다.- 3
topologyKey의 노드 라벨 키를 지정합니다. 이 키와 동일한 값이 있는 라벨이 있는 노드는 동일한 토폴로지에 있는 것으로 간주됩니다. 스케줄러는 균형 잡힌 수의 pod를 각 도메인에 배치하려고 합니다.- 4
whenUnsatisfiable의 값을 지정합니다. 사용 가능한 옵션은DoNotSchedule및ScheduleAnyway입니다.maxSkew값을 사용하여 대상 토폴로지의 일치하는 Pod 수와 글로벌 최소값 간에 허용되는 최대 차이를 정의하도록DoNotSchedule을 지정합니다. 스케줄러에서 Pod를 계속 예약하지만 불일치를 줄일 수 있는 노드에 더 높은 우선 순위를 부여하려면ScheduleAnyway를 지정합니다.- 5
- 일치하는 포드를 찾으려면
labelSelector를 지정합니다. 이 라벨 선택기와 일치하는 Pod는 해당 토폴로지 도메인의 Pod 수를 확인하기 위해 계산됩니다.Thanos Ruler 구성 예
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | thanosRuler: topologySpreadConstraints: - maxSkew: 1 topologyKey: monitoring whenUnsatisfiable: ScheduleAnyway labelSelector: matchLabels: app.kubernetes.io/name: thanos-ruler
- 파일을 저장하여 변경 사항을 적용합니다. 새 구성의 영향을 받는 Pod가 자동으로 재배포됩니다.
3.3. 사용자 워크로드 모니터링을 위한 데이터 저장 및 기록 링크 복사링크가 클립보드에 복사되었습니다!
메트릭 및 경고 데이터를 저장 및 기록하고, 로그를 구성하여 기록되는 활동을 지정하고, Prometheus가 저장된 데이터를 유지하는 기간을 제어하고, 데이터의 최대 디스크 공간을 설정합니다. 이러한 작업을 수행하면 데이터를 보호하고 문제 해결에 사용할 수 있습니다.
3.3.1. 영구 스토리지 구성 링크 복사링크가 클립보드에 복사되었습니다!
영구 스토리지로 클러스터 모니터링을 실행하여 다음과 같은 이점을 얻을 수 있습니다.
- PV(영구 볼륨)에 저장하여 데이터 손실로부터 메트릭 및 경고 데이터를 보호합니다. 결과적으로 Pod를 다시 시작하거나 다시 생성할 수 있습니다.
- Alertmanager Pod가 다시 시작되면 중복 알림이 발생하지 않고 경고에 대한 음소거가 손실되지 않습니다.
멀티 노드 클러스터에서는 고가용성을 보장하기 위해 Prometheus, Alertmanager 및 Thanos Ruler에 대한 영구 스토리지를 구성해야 합니다.
프로덕션 환경의 경우 영구 스토리지를 구성하는 것이 매우 좋습니다.
3.3.1.1. 영구 스토리지 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
- 스토리지의 블록 유형을 사용합니다.
3.3.1.2. 영구 볼륨 클레임 구성 링크 복사링크가 클립보드에 복사되었습니다!
구성 요소를 모니터링하기 위해 PV(영구 볼륨)를 사용하려면 PVC(영구 볼륨 클레임)를 구성해야 합니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-configConfigMap오브젝트가 있습니다. 이 오브젝트는 클러스터가 생성될 때 기본적으로 생성됩니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
openshift-user-workload-monitoring프로젝트에서user-workload-monitoring-config구성 맵을 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-configdata/config.yaml아래의 구성 요소에 대한 PVC 구성을 추가합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | <component>:1 volumeClaimTemplate: spec: storageClassName: <storage_class>2 resources: requests: storage: <amount_of_storage>3 - 1
- PVC를 구성할 모니터링 구성 요소를 지정합니다.
- 2
- 기존 스토리지 클래스를 지정합니다. 스토리지 클래스를 지정하지 않으면 기본 스토리지 클래스가 사용됩니다.
- 3
- 필요한 스토리지의 양을 지정합니다.
다음 예제에서는 Thanos Ruler의 영구 스토리지를 요청하는 PVC를 구성합니다.
PVC 구성 예
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | thanosRuler: volumeClaimTemplate: spec: storageClassName: my-storage-class resources: requests: storage: 10Gi참고thanosRuler구성 요소의 스토리지 요구 사항은 평가되는 규칙 수와 각 규칙이 생성하는 샘플 수에 따라 달라집니다.
파일을 저장하여 변경 사항을 적용합니다. 새 구성의 영향을 받는 Pod가 자동으로 재배포되고 새 스토리지 구성이 적용됩니다.
주의PVC 구성으로 구성 맵을 업데이트하면 영향을 받는
StatefulSet오브젝트가 다시 생성되어 임시 서비스가 중단됩니다.
3.3.2. Prometheus 메트릭 데이터의 보존 시간 및 크기 수정 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 Prometheus는 사용자 정의 프로젝트 모니터링을 위해 지표 데이터를 24시간 동안 유지합니다. 데이터를 삭제할 때 Prometheus 인스턴스의 보존 시간을 수정하여 변경할 수 있습니다. 보존 메트릭 데이터에서 사용하는 최대 디스크 공간을 설정할 수도 있습니다.
데이터 압축은 2시간마다 수행됩니다. 따라서 PV(영구 볼륨)가 압축하기 전에 채워지고 보존Size 제한을 초과할 수 있습니다. 이러한 경우 KubePersistentVolumeFillingUp 경고가 PV의 공간이 retentionSize 제한보다 작을 때까지 실행됩니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-configConfigMap오브젝트가 있습니다. 이 오브젝트는 클러스터가 생성될 때 기본적으로 생성됩니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
openshift-user-workload-monitoring프로젝트에서user-workload-monitoring-config구성 맵을 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-configdata/config.yaml아래에 보존 시간 및 크기 구성을 추가합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: retention: <time_specification>1 retentionSize: <size_specification>2 - 1
- 보존 시간:
ms(밀리초),s(초),m(분),h(시간),d(일),w(주) 또는y(년)가 직접 따르는 번호입니다.1h30m15s와 같은 특정 시간 동안 시간 값을 결합할 수도 있습니다. - 2
- 보존 크기: 숫자 바로 뒤에
B(bytes),KB(kilobytes),MB(megabytes),GB(gigabytes),TB(terabytes),PB(petabytes),EB(exabytes)가 옵니다.다음 예제에서는 보존 시간을 24시간으로 설정하고 Prometheus 인스턴스의 보존 크기를 10GB로 설정합니다.
Prometheus의 보존 시간 설정 예
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: retention: 24h retentionSize: 10GB
- 파일을 저장하여 변경 사항을 적용합니다. 새 구성의 영향을 받는 Pod가 자동으로 재배포됩니다.
3.3.2.1. Thanos Ruler 메트릭 데이터의 보존 시간 수정 링크 복사링크가 클립보드에 복사되었습니다!
기본적으로 사용자 정의 프로젝트의 경우 Thanos Ruler는 지표 데이터를 24시간 동안 자동으로 유지합니다. openshift-user-workload-monitoring 네임스페이스의 user-workload-monitoring-config 구성 맵에 시간 값을 지정하여 이 데이터 보존 기간을 변경할 수 있습니다.
user-workload Prometheus에 대한 보존을 구성하는 경우 Thanos Ruler는 명시적으로 구성된 경우를 제외하고 동일한 보존 시간을 자동으로 상속합니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-configConfigMap오브젝트가 있습니다. 이 오브젝트는 클러스터가 생성될 때 기본적으로 생성됩니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
openshift-user-workload-monitoring프로젝트에서user-workload-monitoring-configConfigMap오브젝트를 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-configdata/config.yaml아래에 보존 시간 구성을 추가합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | thanosRuler: retention: <time_specification>1 - 1
- 다음 형식으로 보존 시간을 지정합니다.
ms(milliseconds),s(초),m(분),h(시간),d(일),w(주) 또는y(년)입니다.1h30m15s와 같은 특정 시간 동안 시간 값을 결합할 수도 있습니다. 기본값은24h입니다.다음 예제에서는 Thanos Ruler 데이터의 보존 시간을 10일로 설정합니다.
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | thanosRuler: retention: 10d
- 파일을 저장하여 변경 사항을 적용합니다. 새 구성의 영향을 받는 Pod가 자동으로 재배포됩니다.
3.3.3. 모니터링 구성 요소에 대한 로그 수준 설정 링크 복사링크가 클립보드에 복사되었습니다!
Alertmanager, Prometheus Operator, Prometheus 및 Thanos Ruler의 로그 수준을 구성할 수 있습니다. 이러한 설정을 사용하여 문제 해결 및 구성 요소가 작동하는 방법에 대한 더 나은 통찰력을 얻을 수 있습니다.
다음 로그 수준은 user-workload-monitoring-config ConfigMap 오브젝트의 관련 구성 요소에 적용할 수 있습니다.
-
debug. 디버그, 정보, 경고 및 오류 메시지를 기록합니다. -
info(기본값). 정보, 경고 및 오류 메시지를 기록합니다. -
warn. 경고 및 오류 메시지만 기록합니다. -
error. 오류 메시지만 기록합니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-configConfigMap오브젝트가 있습니다. 이 오브젝트는 클러스터가 생성될 때 기본적으로 생성됩니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
openshift-user-workload-monitoring프로젝트에서user-workload-monitoring-config구성 맵을 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-configdata/config.yaml아래에 구성 요소의 로그 구성을 추가합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | <component>:1 logLevel: <log_level>2 # ...- 파일을 저장하여 변경 사항을 적용합니다. 새 구성의 영향을 받는 Pod가 자동으로 재배포됩니다.
관련 프로젝트의 배포 또는 Pod 구성을 검토하여 로그 구성이 적용되었는지 확인합니다.
다음 예제에서는
prometheus-operator배포의 로그 수준을 확인합니다.$ oc -n openshift-user-workload-monitoring get deploy prometheus-operator -o yaml | grep "log-level"출력 예
- --log-level=debug
구성 요소의 Pod가 실행 중인지 확인합니다.
$ oc -n openshift-user-workload-monitoring get pods참고인식할 수 없는
logLevel값이ConfigMap오브젝트에 포함된 경우 구성 요소의 Pod가 다시 시작되지 않을 수 있습니다.
3.3.4. Prometheus의 쿼리 로그 파일 활성화 링크 복사링크가 클립보드에 복사되었습니다!
엔진에서 실행한 모든 쿼리를 로그 파일에 작성하도록 Prometheus를 구성할 수 있습니다.
로그 순환은 지원되지 않으므로 문제를 해결해야 하는 경우에만 이 기능을 일시적으로 활성화합니다. 문제 해결을 완료한 후 ConfigMap 오브젝트의 변경 사항을 되돌려 기능을 활성화하여 쿼리 로깅을 비활성화합니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-configConfigMap오브젝트가 있습니다. 이 오브젝트는 클러스터가 생성될 때 기본적으로 생성됩니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
openshift-user-workload-monitoring프로젝트에서user-workload-monitoring-config구성 맵을 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-configdata/config.yaml:에서 Prometheus의queryLogFile매개변수를 추가합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: queryLogFile: <path>1 - 1
- 쿼리가 기록될 파일의 전체 경로를 추가합니다.
- 파일을 저장하여 변경 사항을 적용합니다. 새 구성의 영향을 받는 Pod가 자동으로 재배포됩니다.
구성 요소의 포드가 실행 중인지 확인합니다. 다음 샘플 명령은 Pod 상태를 나열합니다.
$ oc -n openshift-user-workload-monitoring get pods출력 예
... prometheus-operator-776fcbbd56-2nbfm 2/2 Running 0 132m prometheus-user-workload-0 5/5 Running 1 132m prometheus-user-workload-1 5/5 Running 1 132m thanos-ruler-user-workload-0 3/3 Running 0 132m thanos-ruler-user-workload-1 3/3 Running 0 132m ...쿼리 로그를 읽습니다.
$ oc -n openshift-user-workload-monitoring exec prometheus-user-workload-0 -- cat <path>중요기록된 쿼리 정보를 검사한 후 구성 맵에서 설정을 되돌립니다.
3.4. 사용자 워크로드 모니터링에 대한 메트릭 구성 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 구성 요소 및 자체 워크로드의 수행 방식을 모니터링하도록 메트릭 컬렉션을 구성합니다.
장기 저장을 위해 수집된 메트릭을 원격 시스템에 전송하고, 메트릭에 클러스터 ID 레이블을 추가하여 다른 클러스터에서 들어오는 데이터를 확인할 수 있습니다.
3.4.1. 원격 쓰기 스토리지 구성 링크 복사링크가 클립보드에 복사되었습니다!
Prometheus가 장기 스토리지의 원격 시스템에 인가된 지표를 보낼 수 있도록 원격 쓰기 스토리지를 구성할 수 있습니다. 이렇게 하면 Prometheus가 메트릭을 저장하는 방법 또는 길이에 영향을 미치지 않습니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-configConfigMap오브젝트가 있습니다. 이 오브젝트는 클러스터가 생성될 때 기본적으로 생성됩니다. -
OpenShift CLI(
oc)가 설치되어 있습니다. Thanos와 같은 원격 쓰기 호환 엔드포인트를 설정하고 엔드포인트 URL을 알고 있어야 합니다. 원격 쓰기 기능과 호환되는 엔드포인트에 대한 정보는 Prometheus 원격 엔드포인트 및 스토리지 설명서를 참조하십시오.
중요Red Hat은 원격 쓰기 전송자 구성에 대한 정보만 제공하고 수신자 엔드포인트 구성에 대한 지침을 제공하지 않습니다. 고객은 원격 쓰기 호환 가능한 자체 엔드포인트를 설정해야 합니다. 엔드포인트 수신자 구성 문제는 Red Hat 프로덕션 지원에 포함되어 있지 않습니다.
원격 쓰기 끝점에 대한
Secret오브젝트에 인증 정보를 설정했습니다.openshift-user-workload-monitoring네임스페이스에 보안을 생성해야 합니다.주의보안 위험을 줄이려면 HTTPS 및 인증을 사용하여 메트릭을 엔드포인트에 보냅니다.
프로세스
openshift-user-workload-monitoring프로젝트에서user-workload-monitoring-config구성 맵을 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config다음 예와 같이
data/config.yaml/prometheus에remoteWrite:섹션을 추가합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: remoteWrite: - url: "https://remote-write-endpoint.example.com"1 <endpoint_authentication_credentials>2 인증 정보 뒤에 쓰기 재레이블 구성 값을 추가합니다.
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: remoteWrite: - url: "https://remote-write-endpoint.example.com" <endpoint_authentication_credentials> writeRelabelConfigs: - <your_write_relabel_configs>1 - 1
- 원격 엔드포인트에 보낼 메트릭에 대한 구성을 추가합니다.
my_metric이라는 단일 메트릭 전달 예apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: remoteWrite: - url: "https://remote-write-endpoint.example.com" writeRelabelConfigs: - sourceLabels: [__name__] regex: 'my_metric' action: keepmy_namespace네임스페이스에서my_metric_1및my_metric_2라는 전달 메트릭의 예apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: remoteWrite: - url: "https://remote-write-endpoint.example.com" writeRelabelConfigs: - sourceLabels: [__name__,namespace] regex: '(my_metric_1|my_metric_2);my_namespace' action: keep
- 파일을 저장하여 변경 사항을 적용합니다. 새 구성이 자동으로 적용됩니다.
3.4.1.1. 지원되는 원격 쓰기 인증 설정 링크 복사링크가 클립보드에 복사되었습니다!
다른 방법을 사용하여 원격 쓰기 엔드포인트로 인증할 수 있습니다. 현재 지원되는 인증 방법은 AWS 서명 버전 4, 기본 인증, 권한 부여, OAuth 2.0 및 TLS 클라이언트입니다. 다음 표에서는 원격 쓰기에 사용할 지원되는 인증 방법에 대한 세부 정보를 제공합니다.
| 인증 방법 | 구성 맵 필드 | 설명 |
|---|---|---|
| AWS 서명 버전 4 |
| 이 방법은 AWS Signature Version 4 인증을 사용하여 요청에 서명합니다. 이 방법은 권한 부여, OAuth 2.0 또는 기본 인증과 동시에 사용할 수 없습니다. |
| 기본 인증 |
| 기본 인증은 구성된 사용자 이름 및 암호로 모든 원격 쓰기 요청에 권한 부여 헤더를 설정합니다. |
| 권한 부여 |
|
권한 부여는 구성된 토큰을 사용하여 모든 원격 쓰기 요청에 |
| OAuth 2.0 |
|
OAuth 2.0 구성에서는 클라이언트 자격 증명 부여 유형을 사용합니다. Prometheus는 원격 쓰기 엔드포인트에 액세스하기 위해 지정된 클라이언트 ID 및 클라이언트 시크릿을 사용하여 |
| TLS 클라이언트 |
| TLS 클라이언트 구성은 TLS를 사용하여 원격 쓰기 엔드포인트 서버로 인증하는 데 사용되는 CA 인증서, 클라이언트 인증서, 클라이언트 키 파일 정보를 지정합니다. 샘플 구성은 이미 CA 인증서 파일, 클라이언트 인증서 파일 및 클라이언트 키 파일을 생성했다고 가정합니다. |
3.4.1.2. 원격 쓰기 인증 설정의 예 링크 복사링크가 클립보드에 복사되었습니다!
다음 샘플에서는 원격 쓰기 끝점에 연결하는 데 사용할 수 있는 다양한 인증 설정을 보여줍니다. 각 샘플에서는 인증 자격 증명 및 기타 관련 설정을 포함하는 해당 Secret 오브젝트를 구성하는 방법도 보여줍니다. 각 샘플은 openshift-user-workload-monitoring 네임스페이스에서 사용자 정의 프로젝트에 대한 모니터링과 함께 사용할 인증을 구성합니다.
3.4.1.2.1. AWS Signature Version 4 인증을 위한 샘플 YAML 링크 복사링크가 클립보드에 복사되었습니다!
다음은 openshift-user-workload-monitoring 네임스페이스에서 sigv4-credentials 라는 sigv4 보안에 대한 설정을 보여줍니다.
apiVersion: v1
kind: Secret
metadata:
name: sigv4-credentials
namespace: openshift-user-workload-monitoring
stringData:
accessKey: <AWS_access_key>
secretKey: <AWS_secret_key>
type: Opaque
다음은 openshift-user-workload-monitoring 네임스페이스에서 sigv4-credentials 라는 Secret 오브젝트를 사용하는 샘플 AWS 서명 버전 4 원격 쓰기 인증 설정을 보여줍니다.
apiVersion: v1
kind: ConfigMap
metadata:
name: user-workload-monitoring-config
namespace: openshift-user-workload-monitoring
data:
config.yaml: |
prometheus:
remoteWrite:
- url: "https://authorization.example.com/api/write"
sigv4:
region: <AWS_region>
accessKey:
name: sigv4-credentials
key: accessKey
secretKey:
name: sigv4-credentials
key: secretKey
profile: <AWS_profile_name>
roleArn: <AWS_role_arn>
3.4.1.2.2. 기본 인증을 위한 샘플 YAML 링크 복사링크가 클립보드에 복사되었습니다!
다음은 openshift-user-workload-monitoring 네임스페이스에 rw-basic-auth 라는 Secret 오브젝트에 대한 샘플 기본 인증 설정을 보여줍니다.
apiVersion: v1
kind: Secret
metadata:
name: rw-basic-auth
namespace: openshift-user-workload-monitoring
stringData:
user: <basic_username>
password: <basic_password>
type: Opaque
다음 샘플은 openshift-user-workload-monitoring 네임스페이스에서 rw-basic-auth 라는 Secret 오브젝트를 사용하는 basicAuth 원격 쓰기 구성을 보여줍니다. 끝점에 대한 인증 자격 증명을 이미 설정했다고 가정합니다.
apiVersion: v1
kind: ConfigMap
metadata:
name: user-workload-monitoring-config
namespace: openshift-user-workload-monitoring
data:
config.yaml: |
prometheus:
remoteWrite:
- url: "https://basicauth.example.com/api/write"
basicAuth:
username:
name: rw-basic-auth
key: user
password:
name: rw-basic-auth
key: password
3.4.1.2.3. Secret 오브젝트를 사용하는 전달자 토큰으로 인증을 위한 샘플 YAML 링크 복사링크가 클립보드에 복사되었습니다!
다음은 openshift-user-workload-monitoring 네임스페이스에 rw-bearer-auth 라는 Secret 오브젝트에 대한 전달자 토큰 설정을 보여줍니다.
apiVersion: v1
kind: Secret
metadata:
name: rw-bearer-auth
namespace: openshift-user-workload-monitoring
stringData:
token: <authentication_token>
type: Opaque
- 1
- 인증 토큰입니다.
다음은 openshift-user-workload-monitoring 네임스페이스에서 rw-bearer-auth 라는 Secret 오브젝트를 사용하는 샘플 전달자 토큰 구성 맵 설정을 보여줍니다.
apiVersion: v1
kind: ConfigMap
metadata:
name: user-workload-monitoring-config
namespace: openshift-user-workload-monitoring
data:
config.yaml: |
prometheus:
remoteWrite:
- url: "https://authorization.example.com/api/write"
authorization:
type: Bearer
credentials:
name: rw-bearer-auth
key: token
3.4.1.2.4. OAuth 2.0 인증을 위한 샘플 YAML 링크 복사링크가 클립보드에 복사되었습니다!
다음은 openshift-user-workload-monitoring 네임스페이스에서 oauth2-credentials 라는 Secret 오브젝트에 대한 샘플 OAuth 2.0 설정을 보여줍니다.
apiVersion: v1
kind: Secret
metadata:
name: oauth2-credentials
namespace: openshift-user-workload-monitoring
stringData:
id: <oauth2_id>
secret: <oauth2_secret>
type: Opaque
다음은 openshift-user-workload-monitoring 네임스페이스에서 oauth2-credentials 라는 Secret 오브젝트를 사용하는 oauth2 원격 쓰기 인증 샘플 구성을 보여줍니다.
apiVersion: v1
kind: ConfigMap
metadata:
name: user-workload-monitoring-config
namespace: openshift-user-workload-monitoring
data:
config.yaml: |
prometheus:
remoteWrite:
- url: "https://test.example.com/api/write"
oauth2:
clientId:
secret:
name: oauth2-credentials
key: id
clientSecret:
name: oauth2-credentials
key: secret
tokenUrl: https://example.com/oauth2/token
scopes:
- <scope_1>
- <scope_2>
endpointParams:
param1: <parameter_1>
param2: <parameter_2>
- 1 3
- 해당
Secret오브젝트의 이름입니다.ClientId는 대신ConfigMap오브젝트를 참조할 수 있지만clientSecret은Secret오브젝트를 참조해야 합니다. - 2 4
- 지정된
Secret오브젝트에 OAuth 2.0 인증 정보가 포함된 키입니다. - 5
- 지정된
clientId및clientSecret을 사용하여 토큰을 가져오는 데 사용되는 URL입니다. - 6
- 권한 부여 요청에 대한 OAuth 2.0 범위입니다. 이러한 범위는 토큰이 액세스할 수 있는 데이터를 제한합니다.
- 7
- 권한 부여 서버에 필요한 OAuth 2.0 권한 부여 요청 매개변수입니다.
3.4.1.2.5. TLS 클라이언트 인증을 위한 샘플 YAML 링크 복사링크가 클립보드에 복사되었습니다!
다음은 openshift-user-workload-monitoring 네임스페이스에서 mtls-bundle 이라는 tls Secret 오브젝트에 대한 샘플 TLS 클라이언트 설정을 보여줍니다.
apiVersion: v1
kind: Secret
metadata:
name: mtls-bundle
namespace: openshift-user-workload-monitoring
data:
ca.crt: <ca_cert>
client.crt: <client_cert>
client.key: <client_key>
type: tls
다음 샘플에서는 mtls-bundle 이라는 TLS Secret 오브젝트를 사용하는 tlsConfig 원격 쓰기 인증 구성을 보여줍니다.
apiVersion: v1
kind: ConfigMap
metadata:
name: user-workload-monitoring-config
namespace: openshift-user-workload-monitoring
data:
config.yaml: |
prometheus:
remoteWrite:
- url: "https://remote-write-endpoint.example.com"
tlsConfig:
ca:
secret:
name: mtls-bundle
key: ca.crt
cert:
secret:
name: mtls-bundle
key: client.crt
keySecret:
name: mtls-bundle
key: client.key
3.4.1.3. 원격 쓰기 대기열 구성 예 링크 복사링크가 클립보드에 복사되었습니다!
원격 쓰기에 queueConfig 오브젝트를 사용하여 원격 쓰기 대기열 매개변수를 조정할 수 있습니다. 다음 예제에서는 openshift-user-workload-monitoring 네임스페이스에서 사용자 정의 프로젝트에 대한 모니터링을 위한 기본값이 있는 큐 매개변수를 보여줍니다.
기본값이 있는 원격 쓰기 매개변수 구성 예
apiVersion: v1
kind: ConfigMap
metadata:
name: user-workload-monitoring-config
namespace: openshift-user-workload-monitoring
data:
config.yaml: |
prometheus:
remoteWrite:
- url: "https://remote-write-endpoint.example.com"
<endpoint_authentication_credentials>
queueConfig:
capacity: 10000
minShards: 1
maxShards: 50
maxSamplesPerSend: 2000
batchSendDeadline: 5s
minBackoff: 30ms
maxBackoff: 5s
retryOnRateLimit: false
sampleAgeLimit: 0s
- 1
- shard당 버퍼링을 큐에서 삭제하기 전에 버퍼링할 샘플 수입니다.
- 2
- 최소 shard 수입니다.
- 3
- 최대 shard 수입니다.
- 4
- 전송당 최대 샘플 수입니다.
- 5
- 샘플이 버퍼에서 대기할 최대 시간입니다.
- 6
- 실패한 요청을 다시 시도하기 전에 대기하는 초기 시간입니다. 시간은
maxbackoff시간까지 각 재시도에 대해 두 배로 증가합니다. - 7
- 실패한 요청을 다시 시도하기 전에 대기하는 최대 시간입니다.
- 8
- 원격 쓰기 스토리지에서 429 상태 코드를 수신한 후 요청을 재시도하려면 이 매개변수를
true로 설정합니다. - 9
sampleAgeLimit제한보다 오래된 샘플은 큐에서 삭제됩니다. 값이 정의되지 않았거나0s로 설정하면 매개변수가 무시됩니다.
3.4.1.4. 원격 쓰기 메트릭 테이블 링크 복사링크가 클립보드에 복사되었습니다!
다음 표에는 원격 쓰기 구성 중 문제를 해결하는 데 도움이 되는 추가 설명과 함께 원격 쓰기 및 원격 쓰기 전파 지표가 포함되어 있습니다.
| 지표 | 설명 |
|---|---|
|
| Prometheus가 모든 샘플의 WAL(Write-ahead log)에 저장된 최신 타임스탬프를 표시합니다. |
|
| 원격 쓰기 큐가 성공적으로 전송된 최신 타임스탬프를 표시합니다. |
|
| 원격 쓰기가 전송하지 못한 샘플 수와 원격 스토리지로 다시 보내야 했습니다. 이 메트릭의 안정적인 높은 비율은 네트워크 또는 원격 스토리지 끝점의 문제를 나타냅니다. |
|
| 현재 각 원격 끝점에 대해 실행 중인 shard 수를 표시합니다. |
|
| 현재 쓰기 처리량과 전송된 샘플과 들어오는 비율에 따라 계산된 필요한 shard 수를 표시합니다. |
|
| 현재 구성에 따라 최대 shard 수를 표시합니다. |
|
| 현재 구성에 따라 최소 shard 수를 표시합니다. |
|
| Prometheus가 현재 새 데이터를 작성하고 있는 WAL 세그먼트 파일입니다. |
|
| 각 원격 쓰기 인스턴스가 현재 읽고 있는 WAL 세그먼트 파일입니다. |
3.4.2. 메트릭에 대한 클러스터 ID 레이블 생성 링크 복사링크가 클립보드에 복사되었습니다!
openshift-user-workload-monitoring 네임스페이스의 user-workload-monitoring-config 구성 맵에서 원격 쓰기 스토리지에 대한 write_relabel 설정을 추가하여 메트릭에 대한 클러스터 ID 레이블을 생성할 수 있습니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-configConfigMap 오브젝트가 있습니다. 이 오브젝트는 클러스터가 생성될 때 기본적으로 생성됩니다. -
OpenShift CLI(
oc)가 설치되어 있습니다. - 원격 쓰기 스토리지가 구성되어 있습니다.
프로세스
openshift-user-workload-monitoring프로젝트에서user-workload-monitoring-config구성 맵을 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-configdata/config.yaml/prometheus/remoteWrite의writeRelabelConfigs:섹션에서 클러스터 ID 재레이블 구성 값을 추가합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: remoteWrite: - url: "https://remote-write-endpoint.example.com" <endpoint_authentication_credentials> writeRelabelConfigs:1 - <relabel_config>2 - 1
- 원격 끝점에 보낼 지표의 쓰기 재라벨 구성 목록을 추가합니다.
- 2 2
- 원격 쓰기 엔드포인트로 전송된 지표의 레이블 구성을 대체합니다.
다음 샘플은 클러스터 ID 레이블
cluster_id를 사용하여 메트릭을 전달하는 방법을 보여줍니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: remoteWrite: - url: "https://remote-write-endpoint.example.com" writeRelabelConfigs: - sourceLabels: - __tmp_openshift_cluster_id__1 targetLabel: cluster_id2 action: replace3 - 3
- 처음에 시스템은
__tmp_openshift_cluster_id___라는 임시 클러스터 ID 소스 레이블을 적용합니다. 이 임시 레이블은 지정한 클러스터 ID 레이블 이름으로 교체됩니다. - 원격 쓰기 스토리지로 전송되는 지표의 클러스터 ID 레이블 이름을 지정합니다. 메트릭에 이미 존재하는 라벨 이름을 사용하는 경우 해당 값을 이 클러스터 ID 레이블의 이름으로 덮어씁니다. 레이블 이름의 경우
__tmp_openshift_cluster_id__를 사용하지 마십시오. 최종 레이블 재지정 단계에서 이 이름을 사용하는 라벨이 제거됩니다. replacewrite relabel 작업은 임시 레이블을 발신 지표의 target 레이블로 대체합니다. 이 작업은 기본값이며 작업이 지정되지 않은 경우 적용됩니다.
- 파일을 저장하여 변경 사항을 적용합니다. 새 구성이 자동으로 적용됩니다.
3.4.3. 사용자 정의 프로젝트에 대한 메트릭 컬렉션 설정 링크 복사링크가 클립보드에 복사되었습니다!
ServiceMonitor 리소스를 생성하여 사용자 정의 프로젝트의 서비스 끝점에서 메트릭을 스크랩할 수 있습니다. 애플리케이션은 Prometheus 클라이언트 라이브러리를 사용하여 메트릭을 /metrics 표준 이름에 노출한다고 가정합니다.
이 섹션에서는 사용자 정의 프로젝트에 샘플 서비스를 배포한 후 서비스 모니터링 방법을 정의하는 ServiceMonitor 리소스를 만드는 방법에 대해 설명합니다.
3.4.3.1. 샘플 서비스 배포 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 프로젝트에서 서비스 모니터링을 테스트하기 위해 샘플 서비스를 배포할 수 있습니다.
사전 요구 사항
-
cluster-admin클러스터 역할의 사용자로 또는 네임스페이스에 대한 관리 권한이 있는 사용자로 클러스터에 액세스할 수 있습니다.
프로세스
-
서비스 구성에 대한 YAML 파일을 생성합니다. 이 예에서는
prometheus-example-app.yaml이라고 합니다. 파일에 다음 배포 및 서비스 구성 세부 정보를 추가합니다.
apiVersion: v1 kind: Namespace metadata: name: ns1 --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: prometheus-example-app name: prometheus-example-app namespace: ns1 spec: replicas: 1 selector: matchLabels: app: prometheus-example-app template: metadata: labels: app: prometheus-example-app spec: containers: - image: ghcr.io/rhobs/prometheus-example-app:0.4.2 imagePullPolicy: IfNotPresent name: prometheus-example-app --- apiVersion: v1 kind: Service metadata: labels: app: prometheus-example-app name: prometheus-example-app namespace: ns1 spec: ports: - port: 8080 protocol: TCP targetPort: 8080 name: web selector: app: prometheus-example-app type: ClusterIP이 구성은 사용자 정의
ns1프로젝트에prometheus-example-app이라는 서비스를 배포합니다. 이 서비스는 사용자 정의version메트릭을 노출합니다.클러스터에 구성을 적용합니다.
$ oc apply -f prometheus-example-app.yaml서비스를 배포하는 데 시간이 다소 걸립니다.
Pod가 실행 중인지 확인할 수 있습니다.
$ oc -n ns1 get pod출력 예
NAME READY STATUS RESTARTS AGE prometheus-example-app-7857545cb7-sbgwq 1/1 Running 0 81m
3.4.3.2. 서비스 모니터링 방법 지정 링크 복사링크가 클립보드에 복사되었습니다!
서비스에서 노출하는 메트릭을 사용하려면 /metrics 끝점에서 메트릭을 스크랩하도록 OpenShift Dedicated 모니터링을 구성해야 합니다. 서비스를 모니터링해야 하는 방법을 지정하는 ServiceMonitor(CRD) 또는 Pod를 모니터링해야 하는 방법을 지정하는 PodMonitor CRD를 사용하여 이 작업을 수행할 수 있습니다. 전자에는 Service 오브젝트가 필요하지만 후자에는 필요하지 않으며 Prometheus가 Pod에서 노출하는 메트릭 끝점에서 메트릭을 직접 스크랩할 수 있습니다.
다음 프로세스에서는 사용자 정의 프로젝트에서 서비스에 대한 ServiceMonitor 리소스를 생성하는 방법을 보여줍니다.
사전 요구 사항
-
dedicated-admin역할 또는monitoring-edit역할의 사용자로 클러스터에 액세스할 수 있습니다. 이 예제에서는
prometheus-example-app샘플 서비스를ns1프로젝트에 배포했습니다.참고prometheus-example-app샘플 서비스는 TLS 인증을 지원하지 않습니다.
프로세스
-
example-app-service-monitor.yaml이라는 새 YAML 구성 파일을 생성합니다. YAML 파일에
ServiceMonitor리소스를 추가합니다. 다음 예제에서는ns1네임스페이스의prometheus-example-app서비스에서 노출하는 메트릭을 스크랩하기 위해prometheus-example-monitor라는 서비스 모니터를 생성합니다.apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: prometheus-example-monitor namespace: ns11 spec: endpoints: - interval: 30s port: web2 scheme: http selector:3 matchLabels: app: prometheus-example-app클러스터에 구성을 적용합니다.
$ oc apply -f example-app-service-monitor.yamlServiceMonitor리소스를 배포하는 데 시간이 다소 걸립니다.ServiceMonitor리소스가 실행 중인지 확인합니다.$ oc -n <namespace> get servicemonitor출력 예
NAME AGE prometheus-example-monitor 81m
3.4.3.3. 서비스 끝점 인증 설정 예 링크 복사링크가 클립보드에 복사되었습니다!
ServiceMonitor 및 PodMonitor CRD(사용자 정의 리소스 정의)를 사용하여 사용자 정의 프로젝트 모니터링에 대한 서비스 끝점에 대한 인증을 구성할 수 있습니다.
다음 샘플에서는 ServiceMonitor 리소스에 대한 다양한 인증 설정을 보여줍니다. 각 샘플에서는 인증 자격 증명 및 기타 관련 설정을 포함하는 해당 Secret 오브젝트를 구성하는 방법을 보여줍니다.
3.4.3.3.1. 전달자 토큰을 사용한 샘플 YAML 인증 링크 복사링크가 클립보드에 복사되었습니다!
다음 샘플에서는 ns1 네임스페이스에 example-bearer-auth 라는 Secret 오브젝트에 대한 전달자 토큰 설정을 보여줍니다.
전달자 토큰 시크릿의 예
apiVersion: v1
kind: Secret
metadata:
name: example-bearer-auth
namespace: ns1
stringData:
token: <authentication_token>
- 1
- 인증 토큰을 지정합니다.
다음 샘플은 ServiceMonitor CRD의 전달자 토큰 인증 설정을 보여줍니다. 예에서는 example-bearer-auth:이라는 Secret 오브젝트를 사용합니다.
전달자 토큰 인증 설정 예
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: prometheus-example-monitor
namespace: ns1
spec:
endpoints:
- authorization:
credentials:
key: token
name: example-bearer-auth
port: web
selector:
matchLabels:
app: prometheus-example-app
전달자 토큰을 구성하는 데 bearerTokenFile 을 사용하지 마십시오. bearerTokenFile 구성을 사용하는 경우 ServiceMonitor 리소스가 거부됩니다.
3.4.3.3.2. 기본 인증을 위한 샘플 YAML 링크 복사링크가 클립보드에 복사되었습니다!
다음 샘플은 ns1 네임스페이스에 example-basic-auth 라는 Secret 오브젝트에 대한 기본 인증 설정을 보여줍니다.
기본 인증 시크릿의 예
apiVersion: v1
kind: Secret
metadata:
name: example-basic-auth
namespace: ns1
stringData:
user: <basic_username>
password: <basic_password>
다음 샘플에서는 ServiceMonitor CRD의 기본 인증 설정을 보여줍니다. 이 예제에서는 example-basic-auth:이라는 Secret 오브젝트를 사용합니다.
기본 인증 설정 예
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: prometheus-example-monitor
namespace: ns1
spec:
endpoints:
- basicAuth:
username:
key: user
name: example-basic-auth
password:
key: password
name: example-basic-auth
port: web
selector:
matchLabels:
app: prometheus-example-app
3.4.3.3.3. OAuth 2.0을 사용한 샘플 YAML 인증 링크 복사링크가 클립보드에 복사되었습니다!
다음 샘플에서는 ns1 네임스페이스에 example-oauth2 라는 Secret 오브젝트에 대한 OAuth 2.0 설정을 보여줍니다.
OAuth 2.0 시크릿 예
apiVersion: v1
kind: Secret
metadata:
name: example-oauth2
namespace: ns1
stringData:
id: <oauth2_id>
secret: <oauth2_secret>
다음 샘플은 ServiceMonitor CRD의 OAuth 2.0 인증 설정을 보여줍니다. 예에서는 example-oauth2 라는 Secret 오브젝트를 사용합니다.
OAuth 2.0 인증 설정 예
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: prometheus-example-monitor
namespace: ns1
spec:
endpoints:
- oauth2:
clientId:
secret:
key: id
name: example-oauth2
clientSecret:
key: secret
name: example-oauth2
tokenUrl: https://example.com/oauth2/token
port: web
selector:
matchLabels:
app: prometheus-example-app
3.5. 사용자 워크로드 모니터링에 대한 경고 및 알림 구성 링크 복사링크가 클립보드에 복사되었습니다!
Prometheus에서 끝점 수신자로 경고를 라우팅하도록 로컬 또는 외부 Alertmanager 인스턴스를 구성할 수 있습니다. 모든 시계열 및 경고에 사용자 지정 레이블을 연결하여 유용한 메타데이터 정보를 추가할 수도 있습니다.
3.5.1. 외부 Alertmanager 인스턴스 구성 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated 모니터링 스택에는 Prometheus에서 경고를 라우팅하는 로컬 Alertmanager 인스턴스가 포함되어 있습니다.
외부 Alertmanager 인스턴스를 추가하여 사용자 정의 프로젝트에 대한 경고를 라우팅할 수 있습니다.
여러 클러스터에 대해 동일한 외부 Alertmanager 구성을 추가하고 각 클러스터에 대해 로컬 인스턴스를 비활성화하면 단일 외부 Alertmanager 인스턴스를 사용하여 여러 클러스터에 대한 경고 라우팅을 관리할 수 있습니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-configConfigMap오브젝트가 있습니다. 이 오브젝트는 클러스터가 생성될 때 기본적으로 생성됩니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
openshift-user-workload-monitoring프로젝트에서user-workload-monitoring-config구성 맵을 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-configdata/config.yaml/<component>아래에 구성 세부 정보가 포함된추가 AlertmanagerConfigs섹션을 추가합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | <component>:1 additionalAlertmanagerConfigs: - <alertmanager_specification>2 - 2
- 추가 Alertmanager 인스턴스의 경우 <
alertmanager_specification>을 인증 및 기타 구성 세부 정보로 바꿉니다. 현재 지원되는 인증 방법은 베어러 토큰 (bearerToken) 및 클라이언트 TLS (tlsConfig)입니다. - 1
- 지원되는 외부 Alertmanager
구성 요소인>를 바꿉니다.prometheus또는thanosRuler두 가지로 <component다음 샘플 구성 맵은 클라이언트 TLS 인증이 있는 전달자 토큰을 사용하여 Thanos Ruler에 대한 추가 Alertmanager를 구성합니다.
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | thanosRuler: additionalAlertmanagerConfigs: - scheme: https pathPrefix: / timeout: "30s" apiVersion: v1 bearerToken: name: alertmanager-bearer-token key: token tlsConfig: key: name: alertmanager-tls key: tls.key cert: name: alertmanager-tls key: tls.crt ca: name: alertmanager-tls key: tls.ca staticConfigs: - external-alertmanager1-remote.com - external-alertmanager1-remote2.com
- 파일을 저장하여 변경 사항을 적용합니다. 새 구성의 영향을 받는 Pod가 자동으로 재배포됩니다.
3.5.2. Alertmanager에 대한 보안 설정 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated 모니터링 스택에는 Prometheus에서 끝점 수신자로 경고를 라우팅하는 Alertmanager가 포함되어 있습니다. Alertmanager가 경고를 보낼 수 있도록 수신자로 인증해야 하는 경우 수신자에 대한 인증 자격 증명이 포함된 보안을 사용하도록 Alertmanager를 구성할 수 있습니다.
예를 들어, 보안을 사용하여 개인 CA(인증 기관)에서 발급한 인증서를 요구하는 끝점 수신자로 인증하도록 Alertmanager를 구성할 수 있습니다. 기본 HTTP 인증에 대한 암호 파일이 필요한 수신자로 인증하도록 Alertmanager를 구성할 수도 있습니다. 두 경우 모두 인증 세부 정보는 ConfigMap 오브젝트가 아닌 Secret 오브젝트에 포함됩니다.
3.5.2.1. Alertmanager 설정에 시크릿 추가 링크 복사링크가 클립보드에 복사되었습니다!
openshift-user-workload-monitoring 프로젝트에서 user-workload-monitoring-config 구성 맵을 편집하여 Alertmanager 구성에 보안을 추가할 수 있습니다.
구성 맵에 보안을 추가하면 보안이 Alertmanager Pod의 alertmanager 컨테이너에 /etc/alertmanager/secrets/<secret_name >에 볼륨으로 마운트됩니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-configConfigMap오브젝트가 있습니다. 이 오브젝트는 클러스터가 생성될 때 기본적으로 생성됩니다. -
openshift-user-workload-monitoring프로젝트의 Alertmanager에 구성할 시크릿을 생성했습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
openshift-user-workload-monitoring프로젝트에서user-workload-monitoring-config구성 맵을 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config다음 구성을 사용하여
data/config.yaml/alertmanager아래에secrets:섹션을 추가합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | alertmanager: secrets:1 - <secret_name_1>2 - <secret_name_2>- 1
- 이 섹션에는 Alertmanager에 마운트할 시크릿이 포함되어 있습니다. 보안은 Alertmanager 오브젝트와 동일한 네임스페이스 내에 있어야 합니다.
- 2
- 수신자에 대한 인증 자격 증명이 포함된
Secret오브젝트의 이름입니다. 보안을 여러 개 추가하는 경우 각각을 새 줄에 배치합니다.다음 샘플 구성 맵 설정은
test-secret-basic-auth및test-secret-api-token이라는 두 개의Secret오브젝트를 사용하도록 Alertmanager를 구성합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | alertmanager: secrets: - test-secret-basic-auth - test-secret-api-token
- 파일을 저장하여 변경 사항을 적용합니다. 새 구성이 자동으로 적용됩니다.
3.5.3. 시계열 및 경고에 추가 라벨 연결 링크 복사링크가 클립보드에 복사되었습니다!
Prometheus의 외부 라벨 기능을 사용하여 Prometheus를 떠나는 모든 시계열 및 경고에 사용자 정의 레이블을 연결할 수 있습니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
user-workload-monitoring-configConfigMap오브젝트가 있습니다. 이 오브젝트는 클러스터가 생성될 때 기본적으로 생성됩니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
openshift-user-workload-monitoring프로젝트에서user-workload-monitoring-config구성 맵을 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-configdata/config.yaml아래에 모든 메트릭에 대해 추가하려는 레이블을 정의합니다.apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: externalLabels: <key>: <value>1 - 1
- <
key>: <value>를 키-값 쌍으로 바꿉니다. 여기서 <key>는 새 레이블의 고유한 이름이며 <value>는 해당 값입니다.주의-
prometheus또는prometheus_replica를 키 이름으로 사용하지 마십시오. 예약되어 있으며 덮어쓸 예정이기 때문입니다. -
클러스터를키 이름으로 사용하지 마십시오. 이를 사용하면 개발자 대시보드에서 데이터를 볼 수 없는 문제가 발생할 수 있습니다.
참고openshift-user-workload-monitoring프로젝트에서 Prometheus는 메트릭을 처리하고 Thanos Ruler는 경고 및 레코딩 규칙을 처리합니다.user-workload-monitoring-configConfigMap오브젝트에서prometheus에 대한externalLabels를 설정하면 규칙에는 적용되지 않고 메트릭에 대한 외부 라벨만 구성됩니다.예를 들어 모든 시계열 및 경고에 리전 및 환경에 대한 메타데이터를 추가하려면 다음 예제를 사용합니다.
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: externalLabels: region: eu environment: prod -
- 파일을 저장하여 변경 사항을 적용합니다. 새 구성의 영향을 받는 Pod가 자동으로 재배포됩니다.
3.5.4. 경고 알림 구성 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated에서 dedicated-admin 사용자는 사용자 정의 프로젝트에 대해 별도의 Alertmanager 인스턴스를 사용하여 사용자 정의 프로젝트에 대한 경고 라우팅을 활성화할 수 있습니다.
alert-routing-edit 클러스터 역할이 있는 개발자 및 기타 사용자는 경고 수신자를 구성하여 사용자 정의 프로젝트에 대한 사용자 정의 경고 알림을 구성할 수 있습니다.
사용자 정의 프로젝트에 대한 경고 라우팅의 다음 제한 사항을 검토하십시오.
-
사용자 정의 경고 라우팅은 리소스가 정의된 네임스페이스로 범위가 지정됩니다. 예를 들어 네임스페이스
ns1의 라우팅 구성은 동일한 네임스페이스의PrometheusRules리소스에만 적용됩니다. -
사용자 정의 모니터링에서 네임스페이스가 제외되면 네임스페이스의
AlertmanagerConfig리소스가 Alertmanager 구성의 일부가 됩니다.
3.5.4.1. 사용자 정의 프로젝트에 대한 경고 라우팅 구성 링크 복사링크가 클립보드에 복사되었습니다!
alert-routing-edit 클러스터 역할이 지정된 관리자가 아닌 사용자인 경우 사용자 정의 프로젝트에 대한 경고 라우팅을 생성하거나 편집할 수 있습니다.
사전 요구 사항
- 사용자 정의 프로젝트에 대한 경고 라우팅이 활성화되었습니다.
-
경고 라우팅을 생성하려는 프로젝트에 대한
alert-routing-edit클러스터 역할이 있는 사용자로 로그인했습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
-
경고 라우팅을 위한 YAML 파일을 생성합니다. 이 절차의 예제에서는
example-app-alert-routing.yaml이라는 파일을 사용합니다. AlertmanagerConfigYAML 정의를 파일에 추가합니다. 예를 들면 다음과 같습니다.apiVersion: monitoring.coreos.com/v1beta1 kind: AlertmanagerConfig metadata: name: example-routing namespace: ns1 spec: route: receiver: default groupBy: [job] receivers: - name: default webhookConfigs: - url: https://example.org/post- 파일을 저장합니다.
클러스터에 리소스를 적용합니다.
$ oc apply -f example-app-alert-routing.yaml구성이 Alertmanager Pod에 자동으로 적용됩니다.
3.5.4.2. Alertmanager 시크릿을 사용하여 사용자 정의 프로젝트에 대한 경고 라우팅 구성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 경고 라우팅 전용 Alertmanager의 별도의 인스턴스를 활성화한 경우 openshift-user-workload-monitoring 네임스페이스에서 alertmanager-user-workload 시크릿을 편집하여 인스턴스에서 알림을 보내는 위치와 방법을 사용자 지정할 수 있습니다.
지원되는 업스트림 Alertmanager 버전의 모든 기능은 OpenShift Dedicated Alertmanager 구성에서도 지원됩니다. 지원되는 업스트림 Alertmanager 버전의 모든 구성 옵션을 확인하려면 Alertmanager 구성 (Prometheus 문서)을 참조하세요.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
현재 활성화된 Alertmanager 설정을
alertmanager.yaml파일에 인쇄합니다.$ oc -n openshift-user-workload-monitoring get secret alertmanager-user-workload --template='{{ index .data "alertmanager.yaml" }}' | base64 --decode > alertmanager.yamlalertmanager.yaml에서 설정을 편집합니다.global: http_config: proxy_from_environment: true1 route: receiver: Default group_by: - name: Default routes: - matchers: - "service = prometheus-example-monitor"2 receiver: <receiver>3 receivers: - name: Default - name: <receiver> <receiver_configuration>4 파일에 새 설정을 적용합니다.
$ oc -n openshift-user-workload-monitoring create secret generic alertmanager-user-workload --from-file=alertmanager.yaml --dry-run=client -o=yaml | oc -n openshift-user-workload-monitoring replace secret --filename=-
3.5.4.3. 기본 플랫폼 경고 및 사용자 정의 경고에 대한 다른 경고 수신자 구성 링크 복사링크가 클립보드에 복사되었습니다!
기본 플랫폼 경고 및 사용자 정의 경고에 대해 다양한 경고 수신자를 구성하여 다음 결과를 확인할 수 있습니다.
- 모든 기본 플랫폼 경고는 이러한 경고를 담당하는 팀이 소유한 수신자에게 전송됩니다.
- 모든 사용자 정의 경고가 다른 수신자에게 전송되므로 팀이 플랫폼 경고에만 집중할 수 있습니다.
Cluster Monitoring Operator가 모든 플랫폼 경고에 추가한 openshift_io_alert_source="platform" 라벨을 사용하여 이 작업을 수행할 수 있습니다.
-
기본 플랫폼 경고에 맞게
openshift_io_alert_source="platform"matcher를 사용합니다. -
사용자 정의 경고와 일치하도록
openshift_io_alert_source!="platform"또는'openshift_io_alert_source=""'matcher를 사용합니다.
사용자 정의 경고 전용 Alertmanager의 별도의 인스턴스를 활성화한 경우에는 이 구성이 적용되지 않습니다.
4장. 메트릭 액세스 링크 복사링크가 클립보드에 복사되었습니다!
4.1. 관리자로 메트릭에 액세스 링크 복사링크가 클립보드에 복사되었습니다!
메트릭에 액세스하여 클러스터 구성 요소 및 워크로드의 성능을 모니터링할 수 있습니다.
4.1.1. OpenShift Dedicated 웹 콘솔을 사용하여 모든 프로젝트의 메트릭 쿼리 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated 메트릭 쿼리 브라우저를 사용하여 클러스터 및 사용자 정의 워크로드의 상태를 모니터링합니다. 쿼리 브라우저는 Prometheus Query Language(PromQL) 쿼리를 사용하여 플롯에 표시되는 지표를 검사합니다.
전용 관리자 또는 모든 프로젝트에 대한 보기 권한이 있는 사용자로 Metrics UI에서 모든 기본 OpenShift Dedicated 및 사용자 정의 프로젝트에 대한 메트릭에 액세스할 수 있습니다.
전용 관리자만 OpenShift Dedicated 모니터링을 통해 제공되는 타사 UI에 액세스할 수 있습니다.
사전 요구 사항
-
dedicated-admin역할 또는 모든 프로젝트에 대한 보기 권한이 있는 사용자로 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 메트릭 을 클릭합니다.
하나 이상의 쿼리를 추가하려면 다음 작업을 수행합니다.
Expand 옵션 설명 기존 쿼리를 선택합니다.
쿼리 선택 드롭다운 목록에서 기존 쿼리를 선택합니다.
사용자 지정 쿼리를 생성합니다.
표현식 필드에 PromQL(Prometheus Query Language) 쿼리를 추가합니다.
PromQL 표현식을 입력하면 자동 완성 제안이 드롭다운 목록에 표시됩니다. 이러한 제안에는 함수, 메트릭, 라벨 및 시간 토큰이 포함됩니다. 키보드 화살표를 사용하여 제안된 항목 중 하나를 선택한 다음 Enter를 눌러 표현식에 항목을 추가합니다. 해당 항목에 대한 간략한 설명을 보려면 제안된 항목 위에 마우스 포인터를 이동합니다.
여러 쿼리를 추가합니다.
쿼리 추가를 클릭합니다.
기존 쿼리를 복제합니다.
쿼리 옆에 있는 옵션 메뉴
를 클릭한 다음 쿼리 중복 을 선택합니다.
쿼리가 실행되지 않도록 비활성화합니다.
쿼리 옆에 있는 옵션 메뉴
를 클릭하고 쿼리 비활성화 를 선택합니다.
생성한 쿼리를 실행하려면 쿼리 실행을 클릭합니다. 쿼리의 메트릭은 플롯에 시각화됩니다. 쿼리가 유효하지 않으면 UI에 오류 메시지가 표시됩니다.
참고- 시계열 그래프를 그릴 때 대량의 데이터를 처리하는 쿼리는 시간 초과되거나 브라우저에 과부하가 걸릴 수 있습니다. 이를 방지하려면 그래프 숨기기 를 클릭하고 메트릭 테이블만 사용하여 쿼리를 조정합니다. 그런 다음 실행 가능한 쿼리를 검색한 후 플롯을 활성화하여 그래프를 그립니다.
- 기본적으로 쿼리 테이블은 모든 메트릭과 해당 현재 값을 나열하는 확장된 보기를 표시합니다. 쿼리의 확장된 보기를 최소화하려면 ˅ 아래쪽 화살표를 클릭하세요.
- 선택 사항: 페이지 URL을 저장하여 나중에 이 쿼리 세트를 다시 사용합니다.
시각화된 메트릭을 살펴봅니다. 처음에 활성화된 모든 쿼리의 모든 메트릭이 플롯에 표시됩니다. 다음 작업을 수행하여 표시되는 메트릭을 선택합니다.
Expand 옵션 설명 쿼리에서 모든 메트릭을 숨깁니다.
쿼리의 옵션 메뉴
를 클릭하고 모든 시리즈 숨기기 를 클릭합니다.
특정 메트릭을 숨깁니다.
쿼리 테이블로 이동하여 메트릭 이름 옆에 있는 색상이 지정된 사각형을 클릭합니다.
플롯으로 확대하고 시간 범위를 변경합니다.
다음 작업 중 하나를 수행합니다.
- 수평으로 플롯을 클릭하고 드래그하여 시간 범위를 시각적으로 선택합니다.
- 메뉴를 사용하여 시간 범위를 선택합니다.
시간 범위를 재설정합니다.
확대/축소 재설정 을 클릭합니다.
특정 시점에서 모든 쿼리에 대한 출력을 표시합니다.
관심 있는 시점에서 플롯 위로 마우스를 놓습니다. 쿼리 출력이 팝업 상자에 나타납니다.
플롯을 숨깁니다.
그래프 숨기기를 클릭합니다.
4.1.2. 메트릭 대상에 대한 자세한 정보 가져오기 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated 웹 콘솔을 사용하여 현재 스크랩을 대상으로 하는 끝점을 보고 검색하고 필터링할 수 있으므로 문제를 식별하고 해결하는 데 도움이 됩니다. 예를 들어 대상 끝점의 현재 상태를 보고 OpenShift Dedicated 모니터링이 대상 구성 요소에서 메트릭을 스크랩할 수 없는 경우를 확인할 수 있습니다.
Metrics 대상 페이지에는 사용자 정의 프로젝트의 대상이 표시됩니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다.
프로세스
OpenShift Dedicated 웹 콘솔에서 모니터링 → 대상으로 이동합니다. 지표 대상 페이지가 열리고 메트릭에 대해 스크랩되는 모든 서비스 끝점 대상 목록이 표시됩니다.
이 페이지에는 기본 OpenShift Dedicated 및 사용자 정의 프로젝트의 대상에 대한 세부 정보가 표시됩니다. 이 페이지에는 각 대상에 대한 다음 정보가 나열됩니다.
- 스크랩되는 서비스 끝점 URL
-
모니터링 중인
ServiceMonitor리소스 - 대상의 up 또는 down 상태
- 네임스페이스
- 마지막 스크랩 시간
- 마지막 스크랩의 기간
선택 사항: 특정 대상을 찾으려면 다음 작업을 수행합니다.
Expand 옵션 설명 대상 상태를 상태 및 소스로 필터링합니다.
필터 목록에서 필터 를 선택합니다.
다음 필터링 옵션을 사용할 수 있습니다.
상태 필터:
- Up. 현재 대상이 활성화되어 있고 메트릭에 대해 적극적으로 스크랩되고 있습니다.
- Down. 메트릭에 대한 대상이 현재 다운되어 있지 않습니다.
소스 필터:
- 플랫폼. 플랫폼 수준 대상은 AWS 프로젝트의 기본 Red Hat OpenShift Service에만 관련이 있습니다. 이러한 프로젝트는 AWS 기능에 핵심 Red Hat OpenShift Service를 제공합니다.
- 사용자 사용자 대상은 사용자 정의 프로젝트와 관련이 있습니다. 이러한 프로젝트는 사용자가 생성하며 사용자 정의할 수 있습니다.
이름 또는 레이블로 대상을 검색합니다.
검색 상자 옆에 있는 텍스트 또는 레이블 필드에 검색어를 입력합니다.
대상을 정렬합니다.
Endpoint Status,Namespace,Last Scrape 및 Scrape Duration 열 헤더 중 하나 이상을 클릭합니다.
대상의 끝점 열에서 URL을 클릭하여 대상 세부 정보 페이지로 이동합니다. 이 페이지에서는 다음 정보를 포함하여 대상에 대한 정보를 제공합니다.
- 메트릭을 스크랩하는 끝점 URL
- 대상의 현재 Up 또는 Down 상태
- 네임스페이스에 대한 링크
-
ServiceMonitor리소스 세부 정보 링크 - 대상에 연결된 라벨
- 지표에 대해 대상이 스크랩된 가장 최근의 시간
4.1.3. 클러스터 관리자로 모니터링 대시보드 검토 링크 복사링크가 클립보드에 복사되었습니다!
관리자는 핵심 OpenShift Dedicated 클러스터 구성 요소와 관련된 대시보드를 볼 수 있습니다.
OpenShift Dedicated 4.19부터 웹 콘솔의 관점에 통합됩니다. Developer 모드는 기본적으로 더 이상 활성화되지 않습니다.
모든 사용자는 모든 OpenShift Dedicated 웹 콘솔 기능과 상호 작용할 수 있습니다. 그러나 클러스터 소유자가 아닌 경우 클러스터 소유자의 특정 기능에 액세스할 수 있는 권한을 요청해야 할 수 있습니다.
여전히 개발자 화면을 활성화할 수 있습니다. 웹 콘솔의 시작 창에서 콘솔 둘러보기, 클러스터 설정, 개발자 화면 활성화에 대한 빠른 시작 정보를 찾고, 링크를 따라 새 기능 및 기능을 탐색할 수 있습니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다.
프로세스
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 대시보드 로 이동합니다.
- 대시보드 목록에서 대시보드를 선택합니다. etcd 및 Prometheus 대시보드와 같은 일부 대시보드는 선택하면 추가 하위 메뉴가 생성됩니다.
선택 사항: 시간 범위 목록에서 그래프의 시간 범위를 선택합니다.
- 사전 정의된 기간을 선택합니다.
시간 범위 목록에서 사용자 지정 시간 범위를 클릭하여 사용자 지정 시간 범위를 설정합니다.
- 시작 및 종료 날짜 및 시간을 입력하거나 선택합니다.
- 저장을 클릭하여 사용자 지정 시간 범위를 저장합니다.
- 선택 사항: 새로 고침 간격을 선택합니다.
- 대시보드 내에서 각각의 그래프로 마우스를 이동하여 특정 항목에 대한 세부 정보를 표시합니다.
4.2. 개발자로 메트릭 액세스 링크 복사링크가 클립보드에 복사되었습니다!
메트릭에 액세스하여 클러스터 워크로드의 성능을 모니터링할 수 있습니다.
4.2.1. OpenShift Dedicated 웹 콘솔을 사용하여 사용자 정의 프로젝트에 대한 메트릭 쿼리 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated 메트릭 쿼리 브라우저를 사용하여 사용자 정의 워크로드를 모니터링합니다. 쿼리 브라우저는 Prometheus Query Language(PromQL) 쿼리를 사용하여 플롯에 표시되는 지표를 검사합니다.
개발자는 메트릭을 쿼리할 때 프로젝트 이름을 지정해야 합니다. 선택한 프로젝트의 메트릭을 확인하는 데 필요한 권한이 있어야 합니다.
개발자는 OpenShift Dedicated 모니터링과 함께 제공되는 타사 UI에 액세스할 수 없습니다.
사전 요구 사항
- 개발자로 또는 메트릭을 확인하는 프로젝트에 대한 보기 권한이 있는 사용자로 클러스터에 액세스할 수 있습니다.
- 사용자 정의 프로젝트에 대한 모니터링을 활성화했습니다.
- 사용자 정의 프로젝트에 서비스를 배포했습니다.
-
서비스에서 모니터링 방법을 정의하는 데 사용할
ServiceMonitorCRD(사용자 정의 리소스 정의(Custom Resource Definition))가 생성되었습니다.
프로세스
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 메트릭 을 클릭합니다.
하나 이상의 쿼리를 추가하려면 다음 작업을 수행합니다.
Expand 옵션 설명 기존 쿼리를 선택합니다.
쿼리 선택 드롭다운 목록에서 기존 쿼리를 선택합니다.
사용자 지정 쿼리를 생성합니다.
표현식 필드에 PromQL(Prometheus Query Language) 쿼리를 추가합니다.
PromQL 표현식을 입력하면 자동 완성 제안이 드롭다운 목록에 표시됩니다. 이러한 제안에는 함수, 메트릭, 라벨 및 시간 토큰이 포함됩니다. 키보드 화살표를 사용하여 제안된 항목 중 하나를 선택한 다음 Enter를 눌러 표현식에 항목을 추가합니다. 해당 항목에 대한 간략한 설명을 보려면 제안된 항목 위에 마우스 포인터를 이동합니다.
여러 쿼리를 추가합니다.
쿼리 추가를 클릭합니다.
기존 쿼리를 복제합니다.
쿼리 옆에 있는 옵션 메뉴
를 클릭한 다음 쿼리 중복 을 선택합니다.
쿼리가 실행되지 않도록 비활성화합니다.
쿼리 옆에 있는 옵션 메뉴
를 클릭하고 쿼리 비활성화 를 선택합니다.
생성한 쿼리를 실행하려면 쿼리 실행을 클릭합니다. 쿼리의 메트릭은 플롯에 시각화됩니다. 쿼리가 유효하지 않으면 UI에 오류 메시지가 표시됩니다.
참고- 시계열 그래프를 그릴 때 대량의 데이터를 처리하는 쿼리는 시간 초과되거나 브라우저에 과부하가 걸릴 수 있습니다. 이를 방지하려면 그래프 숨기기 를 클릭하고 메트릭 테이블만 사용하여 쿼리를 조정합니다. 그런 다음 실행 가능한 쿼리를 검색한 후 플롯을 활성화하여 그래프를 그립니다.
- 기본적으로 쿼리 테이블은 모든 메트릭과 해당 현재 값을 나열하는 확장된 보기를 표시합니다. 쿼리의 확장된 보기를 최소화하려면 ˅ 아래쪽 화살표를 클릭하세요.
- 선택 사항: 페이지 URL을 저장하여 나중에 이 쿼리 세트를 다시 사용합니다.
시각화된 메트릭을 살펴봅니다. 처음에 활성화된 모든 쿼리의 모든 메트릭이 플롯에 표시됩니다. 다음 작업을 수행하여 표시되는 메트릭을 선택합니다.
Expand 옵션 설명 쿼리에서 모든 메트릭을 숨깁니다.
쿼리의 옵션 메뉴
를 클릭하고 모든 시리즈 숨기기 를 클릭합니다.
특정 메트릭을 숨깁니다.
쿼리 테이블로 이동하여 메트릭 이름 옆에 있는 색상이 지정된 사각형을 클릭합니다.
플롯으로 확대하고 시간 범위를 변경합니다.
다음 작업 중 하나를 수행합니다.
- 수평으로 플롯을 클릭하고 드래그하여 시간 범위를 시각적으로 선택합니다.
- 메뉴를 사용하여 시간 범위를 선택합니다.
시간 범위를 재설정합니다.
확대/축소 재설정 을 클릭합니다.
특정 시점에서 모든 쿼리에 대한 출력을 표시합니다.
관심 있는 시점에서 플롯 위로 마우스를 놓습니다. 쿼리 출력이 팝업 상자에 나타납니다.
플롯을 숨깁니다.
그래프 숨기기를 클릭합니다.
4.2.2. 개발자로 모니터링 대시보드 검토 링크 복사링크가 클립보드에 복사되었습니다!
개발자는 권한이 있는 프로젝트와 관련된 대시보드를 볼 수 있습니다.
OpenShift Dedicated 4.19부터 웹 콘솔의 관점에 통합됩니다. Developer 모드는 기본적으로 더 이상 활성화되지 않습니다.
모든 사용자는 모든 OpenShift Dedicated 웹 콘솔 기능과 상호 작용할 수 있습니다. 그러나 클러스터 소유자가 아닌 경우 클러스터 소유자의 특정 기능에 액세스할 수 있는 권한을 요청해야 할 수 있습니다.
여전히 개발자 화면을 활성화할 수 있습니다. 웹 콘솔의 시작 창에서 콘솔 둘러보기, 클러스터 설정, 개발자 화면 활성화에 대한 빠른 시작 정보를 찾고, 링크를 따라 새 기능 및 기능을 탐색할 수 있습니다.
사전 요구 사항
- 개발자로 또는 사용자로 클러스터에 액세스할 수 있습니다.
- 대시보드를 보고 있는 프로젝트에 대한 보기 권한이 있습니다.
- 클러스터 관리자가 웹 콘솔에서 개발자 화면을 활성화했습니다.
프로세스
- OpenShift Dedicated 웹 콘솔의 개발자 화면에서 모니터링 을 클릭하고 대시보드 탭으로 이동합니다.
- 프로젝트: 드롭다운 목록에서 프로젝트를 선택합니다.
- 대시보드 드롭다운 목록에서 대시보드 를 선택하여 필터링된 지표를 확인합니다.
선택 사항: 시간 범위 목록에서 그래프의 시간 범위를 선택합니다.
- 사전 정의된 기간을 선택합니다.
시간 범위 목록에서 사용자 지정 시간 범위를 클릭하여 사용자 지정 시간 범위를 설정합니다.
- 시작 및 종료 날짜 및 시간을 입력하거나 선택합니다.
- 저장을 클릭하여 사용자 지정 시간 범위를 저장합니다.
- 선택 사항: 새로 고침 간격을 선택합니다.
- 대시보드 내에서 각각의 그래프로 마우스를 이동하여 특정 항목에 대한 세부 정보를 표시합니다.
4.3. CLI를 사용하여 모니터링 API에 액세스 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated에서는 CLI(명령줄 인터페이스)에서 일부 모니터링 구성 요소에 대한 웹 서비스 API에 액세스할 수 있습니다.
특정 상황에서 API 끝점에 액세스하면 특히 끝점을 사용하여 대량의 메트릭 데이터를 검색, 전송 또는 쿼리하는 경우 클러스터의 성능과 확장성이 저하될 수 있습니다.
이러한 문제를 방지하려면 다음 권장 사항을 고려하십시오.
- 끝점을 자주 쿼리하지 마십시오. 쿼리를 30초마다 최대 1개로 제한합니다.
-
Prometheus의
/federate엔드포인트를 통해 모든 지표 데이터를 검색하지 마십시오. 제한된 집계 데이터 세트를 검색하려는 경우에만 끝점을 쿼리합니다. 예를 들어 각 요청에 대해 1,000개 미만의 샘플을 검색하면 성능 저하의 위험을 최소화할 수 있습니다.
4.3.1. 모니터링 웹 서비스 API 액세스 정보 링크 복사링크가 클립보드에 복사되었습니다!
명령줄을 사용하여 모니터링 스택과 상호 작용하려면 Prometheus, Alertmanager, Thanos Ruler, Thanos Querier의 웹 서비스 API 끝점에 액세스할 수 있습니다. 직접 API 액세스에는 전달자 토큰 인증 및 올바른 네임스페이스 권한이 필요합니다.
Thanos Ruler 및 Thanos Querier 서비스 API에 액세스하려면 요청 계정에 네임스페이스 리소스에 대한 권한 get이 있어야 하며, 이는 계정에 cluster-monitoring-view 클러스터 역할을 부여하여 수행할 수 있습니다.
모니터링 구성 요소에 대한 웹 서비스 API 끝점에 액세스하는 경우 다음 제한 사항을 유의하십시오.
- 전달자 토큰 인증을 사용하여 API 끝점에 액세스할 수 있습니다.
-
경로의
/api경로의 끝점에만 액세스할 수 있습니다. 웹 브라우저에서 API 끝점에 액세스하려고 하면 애플리케이션을사용할 수 없는오류가 발생합니다. 웹 브라우저에서 모니터링 기능에 액세스하려면 OpenShift Dedicated 웹 콘솔을 사용하여 모니터링 대시보드를 검토합니다.
4.3.2. 모니터링 웹 서비스 API 액세스 링크 복사링크가 클립보드에 복사되었습니다!
다음 예제에서는 코어 플랫폼 모니터링에 사용된 Alertmanager 서비스의 서비스 API 수신자를 쿼리하는 방법을 보여줍니다. 유사한 방법을 사용하여 코어 플랫폼 Prometheus의 prometheus-k8s 서비스와 Thanos Ruler의 thanos-ruler 서비스에 액세스할 수 있습니다.
사전 요구 사항
-
openshift-monitoring네임스페이스에서monitoring-alertmanager-edit역할에 바인딩된 계정에 로그인되어 있습니다. Alertmanager API 경로를 가져올 수 있는 권한이 있는 계정에 로그인되어 있습니다.
참고계정에 Alertmanager API 경로를 가져올 수 있는 권한이 없는 경우 클러스터 관리자가 경로에 대한 URL을 제공할 수 있습니다.
프로세스
다음 명령을 실행하여 인증 토큰을 추출합니다.
$ TOKEN=$(oc whoami -t)다음 명령을 실행하여
alertmanager-mainAPI 경로 URL을 추출합니다.$ HOST=$(oc -n openshift-monitoring get route alertmanager-main -ojsonpath='{.status.ingress[].host}')다음 명령을 실행하여 Alertmanager의 서비스 API 수신자를 쿼리합니다.
$ curl -H "Authorization: Bearer $TOKEN" -k "https://$HOST/api/v2/receivers"
4.3.3. Prometheus의 페더레이션 엔드포인트를 사용하여 메트릭 쿼리 링크 복사링크가 클립보드에 복사되었습니다!
Prometheus의 페더레이션 엔드포인트를 사용하여 클러스터 외부의 네트워크 위치에서 플랫폼 및 사용자 정의 지표를 스크랩할 수 있습니다. 이렇게 하려면 OpenShift Dedicated 경로를 통해 클러스터의 Prometheus /federate 엔드포인트에 액세스합니다.
메트릭 데이터 검색 지연은 페더레이션을 사용할 때 발생합니다. 이 지연은 스크랩된 메트릭의 정확성 및 타임라인에 영향을 미칠 수 있습니다.
페더레이션 엔드포인트를 사용하면 특히 페더레이션 엔드포인트를 사용하여 대량의 메트릭 데이터를 검색하는 경우 클러스터의 성능과 확장성이 저하될 수 있습니다. 이러한 문제를 방지하려면 다음 권장 사항을 따르십시오.
- Prometheus의 페더레이션 엔드포인트를 통해 모든 메트릭 데이터를 검색하지 마십시오. 제한된 집계 데이터 세트를 검색하려는 경우에만 쿼리합니다. 예를 들어 각 요청에 대해 1,000개 미만의 샘플을 검색하면 성능 저하의 위험을 최소화할 수 있습니다.
- Prometheus의 페더레이션 엔드포인트를 자주 쿼리하지 마십시오. 쿼리를 30초마다 최대 1개로 제한합니다.
클러스터 외부에서 대량의 데이터를 전달해야 하는 경우 대신 원격 쓰기를 사용합니다. 자세한 내용은 원격 쓰기 스토리지 구성 섹션을 참조하십시오.
사전 요구 사항
-
OpenShift CLI(
oc)가 설치되어 있습니다. cluster-monitoring-view클러스터 역할의 사용자로 클러스터에 액세스하거나네임스페이스리소스에 대한get권한을 사용하여 전달자 토큰을 가져올 수 있습니다.참고전달자 토큰 인증을 사용하여 Prometheus 페더 엔드포인트에 액세스할 수 있습니다.
Prometheus 페더레이션 경로를 가져올 수 있는 권한이 있는 계정에 로그인되어 있습니다.
참고계정에 Prometheus 페더레이션 경로를 가져올 수 있는 권한이 없는 경우 클러스터 관리자가 경로에 대한 URL을 제공할 수 있습니다.
프로세스
다음 명령을 실행하여 전달자 토큰을 검색합니다.
$ TOKEN=$(oc whoami -t)다음 명령을 실행하여 Prometheus 페더레이션 경로 URL을 가져옵니다.
$ HOST=$(oc -n openshift-monitoring get route prometheus-k8s-federate -ojsonpath='{.status.ingress[].host}')/federate경로에서 메트릭을 쿼리합니다. 다음 예제 명령은 메트릭을 쿼리합니다.$ curl -G -k -H "Authorization: Bearer $TOKEN" https://$HOST/federate --data-urlencode 'match[]=up'출력 예
# TYPE up untyped up{apiserver="kube-apiserver",endpoint="https",instance="10.0.143.148:6443",job="apiserver",namespace="default",service="kubernetes",prometheus="openshift-monitoring/k8s",prometheus_replica="prometheus-k8s-0"} 1 1657035322214 up{apiserver="kube-apiserver",endpoint="https",instance="10.0.148.166:6443",job="apiserver",namespace="default",service="kubernetes",prometheus="openshift-monitoring/k8s",prometheus_replica="prometheus-k8s-0"} 1 1657035338597 up{apiserver="kube-apiserver",endpoint="https",instance="10.0.173.16:6443",job="apiserver",namespace="default",service="kubernetes",prometheus="openshift-monitoring/k8s",prometheus_replica="prometheus-k8s-0"} 1 1657035343834 ...
4.3.4. 사용자 지정 애플리케이션을 위해 클러스터 외부에서 메트릭에 액세스 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 프로젝트를 사용하여 자체 서비스를 모니터링할 때 클러스터 외부에서 Prometheus 지표를 쿼리할 수 있습니다. thanos-querier 경로를 사용하여 클러스터 외부에서 이 데이터에 액세스합니다.
이 액세스는 인증에 Bearer 토큰만 사용할 수 있습니다.
사전 요구 사항
- "사용자 정의 프로젝트에 대한 모니터링 활성화" 절차에 따라 자체 서비스를 배포했습니다.
-
Thanos Querier API에 액세스할 수 있는 권한을 제공하는
cluster-monitoring-view클러스터 역할을 사용하여 계정에 로그인되어 있습니다. Thanos Querier API 경로를 가져올 수 있는 권한이 있는 계정에 로그인되어 있습니다.
참고Thanos Querier API 경로를 가져올 수 있는 권한이 계정에 없는 경우 클러스터 관리자가 경로에 URL을 제공할 수 있습니다.
프로세스
다음 명령을 실행하여 Prometheus에 연결할 인증 토큰을 추출합니다.
$ TOKEN=$(oc whoami -t)다음 명령을 실행하여
thanos-querierAPI 경로 URL을 추출합니다.$ HOST=$(oc -n openshift-monitoring get route thanos-querier -ojsonpath='{.status.ingress[].host}')다음 명령을 사용하여 네임스페이스를 서비스가 실행 중인 네임스페이스로 설정합니다.
$ NAMESPACE=ns1다음 명령을 실행하여 명령줄에서 자체 서비스의 메트릭을 쿼리합니다.
$ curl -H "Authorization: Bearer $TOKEN" -k "https://$HOST/api/v1/query?" --data-urlencode "query=up{namespace='$NAMESPACE'}"출력에는 Prometheus가 스크랩하는 각 애플리케이션 Pod의 상태가 표시됩니다.
포맷된 예제 출력
{ "status": "success", "data": { "resultType": "vector", "result": [ { "metric": { "__name__": "up", "endpoint": "web", "instance": "10.129.0.46:8080", "job": "prometheus-example-app", "namespace": "ns1", "pod": "prometheus-example-app-68d47c4fb6-jztp2", "service": "prometheus-example-app" }, "value": [ 1591881154.748, "1" ] } ], } }참고-
포맷된 예제 출력에서는
jq와 같은 필터링 툴을 사용하여 형식이 지정된 JSON을 제공합니다.jq사용에 대한 자세한 내용은 jq Manual (jq 문서)을 참조하세요. - 이 명령은 Thanos Querier 서비스의 즉각적인 쿼리 끝점을 요청하여 한 번에 선택기를 평가합니다.
-
포맷된 예제 출력에서는
4.3.5. Cluster Monitoring Operator에 대한 리소스 참조 링크 복사링크가 클립보드에 복사되었습니다!
이 문서에서는 CCMO(Cluster Monitoring Operator)에서 배포 및 관리하는 다음 리소스에 대해 설명합니다.
메트릭 데이터를 검색, 전송 또는 쿼리하도록 API 끝점 연결을 구성하려면 이 정보를 사용합니다.
특정 상황에서 끝점 액세스는 특히 끝점을 사용하여 대량의 메트릭 데이터를 검색, 전송 또는 쿼리하는 경우 클러스터의 성능과 확장성을 저하시킬 수 있습니다.
이러한 문제를 방지하려면 다음 권장 사항을 따르십시오.
- 끝점을 자주 쿼리하지 마십시오. 쿼리를 30초마다 최대 1개로 제한합니다.
-
/federate엔드포인트를 통해 모든 메트릭 데이터를 검색하지 마십시오. 제한된 집계 데이터 세트를 검색하려는 경우에만 쿼리합니다. 예를 들어 각 요청에 대해 1,000개 미만의 샘플을 검색하면 성능 저하의 위험을 최소화할 수 있습니다.
4.3.5.1. CMO 경로 리소스 링크 복사링크가 클립보드에 복사되었습니다!
4.3.5.1.1. openshift-monitoring/alertmanager-main 링크 복사링크가 클립보드에 복사되었습니다!
라우터를 통해 alertmanager-main 서비스의 /api 엔드포인트를 노출합니다.
4.3.5.1.2. openshift-monitoring/prometheus-k8s 링크 복사링크가 클립보드에 복사되었습니다!
라우터를 통해 prometheus-k8s 서비스의 /api 끝점을 노출합니다.
4.3.5.1.3. openshift-monitoring/prometheus-k8s-federate 링크 복사링크가 클립보드에 복사되었습니다!
라우터를 통해 prometheus-k8s 서비스의 /federate 엔드포인트를 노출합니다.
4.3.5.1.4. openshift-user-workload-monitoring/federate 링크 복사링크가 클립보드에 복사되었습니다!
라우터를 통해 prometheus-user-workload 서비스의 /federate 엔드포인트를 노출합니다.
4.3.5.1.5. openshift-monitoring/thanos-querier 링크 복사링크가 클립보드에 복사되었습니다!
라우터를 통해 thanos-querier 서비스의 /api 엔드포인트를 노출합니다.
4.3.5.1.6. openshift-user-workload-monitoring/thanos-ruler 링크 복사링크가 클립보드에 복사되었습니다!
라우터를 통해 thanos-ruler 서비스의 /api 엔드포인트를 노출합니다.
4.3.5.2. CMO 서비스 리소스 링크 복사링크가 클립보드에 복사되었습니다!
4.3.5.2.1. openshift-monitoring/prometheus-operator-admission-webhook 링크 복사링크가 클립보드에 복사되었습니다!
포트 8443에서 PrometheusRules 및 AlertmanagerConfig 사용자 정의 리소스를 검증하는 승인 Webhook 서비스를 노출합니다.
4.3.5.2.2. openshift-user-workload-monitoring/alertmanager-user-workload 링크 복사링크가 클립보드에 복사되었습니다!
다음 포트의 클러스터에 사용자 정의 Alertmanager 웹 서버를 노출합니다.
-
포트 9095는 Alertmanager 엔드 포인트에 대한 액세스를 제공합니다. 액세스 권한을 부여하려면 사용자를
openshift-user-workload-monitoring프로젝트의monitoring-alertmanager-api-reader역할(읽기 전용 작업용) 또는monitoring-alertmanager-api-writer역할에 바인딩해야 합니다. -
포트 9092는 지정된 프로젝트로 제한된 Alertmanager 끝점에 대한 액세스를 제공합니다. 액세스 권한을 부여하려면 사용자를
monitoring-rules-edit클러스터 역할 또는 프로젝트의monitoring-edit클러스터 역할에 바인딩해야 합니다. -
포트 9097은
/metrics엔드포인트에만 액세스할 수 있습니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다.
4.3.5.2.3. openshift-monitoring/alertmanager-main 링크 복사링크가 클립보드에 복사되었습니다!
다음 포트에서 클러스터 내에 Alertmanager 웹 서버를 노출합니다.
포트 9094는 모든 Alertmanager 엔드 포인트에 대한 액세스를 제공합니다. 액세스 권한을 부여하려면 사용자를
openshift-monitoring프로젝트의monitoring-alertmanager-view역할(읽기 전용 작업용) 또는monitoring-alertmanager-edit역할에 바인딩해야 합니다.- monitoring-alertmanager-view 권한의 예
다음 예제에서는
monitoring-alertmanager-view역할에서 부여하는 권한을 실행합니다. 바인딩 명령은 필요한 권한이 있는 사용자가 실행해야 합니다.테스트 네임스페이스 및 서비스 계정을 생성합니다.
$ oc create namespace test-alertmanager-web-monitoring-alertmanager-view$ oc create serviceaccount am-client --namespace=test-alertmanager-web-monitoring-alertmanager-view서비스 계정에 역할을 바인딩합니다. 이 예제의 바인딩은 서비스 계정에 적용되지만 모든 사용자에게 적용할 수도 있습니다.
$ oc create rolebinding test-alertmanager-web-monitoring-alertmanager-view \ --namespace=openshift-monitoring \ --role=monitoring-alertmanager-view \ --serviceaccount=test-alertmanager-web-monitoring-alertmanager-view:am-client엔드포인트에 액세스하는 토큰을 생성합니다.
$ TOKEN=$(oc create token am-client --namespace=test-alertmanager-web-monitoring-alertmanager-view)Alertmanager 끝점에 외부에서 액세스합니다.
$ ROUTE=$(oc get route alertmanager-main --namespace=openshift-monitoring -ojsonpath={.spec.host})$ curl -k -H "Authorization: Bearer $TOKEN" "https://$ROUTE/api/v2/alerts?filter=alertname=Watchdog"클러스터 내에서 Alertmanager 끝점에 액세스합니다.
$ curl -k -H "Authorization: Bearer $TOKEN" "https://alertmanager-main.openshift-monitoring:9094/api/v2/alerts?filter=alertname=Watchdog"
- monitoring-alertmanager-edit 권한의 예
다음 예제에서는
monitoring-alertmanager-edit역할에서 부여하는 권한을 실행합니다. 바인딩 명령은 필요한 권한이 있는 사용자가 실행해야 합니다.테스트 네임스페이스 및 서비스 계정을 생성합니다.
$ oc create namespace test-alertmanager-web-monitoring-alertmanager-edit$ oc create serviceaccount am-client --namespace=test-alertmanager-web-monitoring-alertmanager-edit서비스 계정에 역할을 바인딩합니다. 이 예제의 바인딩은 서비스 계정에 적용되지만 모든 사용자에게 적용할 수도 있습니다.
$ oc create rolebinding test-alertmanager-web-monitoring-alertmanager-edit \ --namespace=openshift-monitoring \ --role=monitoring-alertmanager-edit \ --serviceaccount=test-alertmanager-web-monitoring-alertmanager-edit:am-client엔드포인트에 액세스하는 토큰을 생성합니다.
$ TOKEN=$(oc create token am-client --namespace=test-alertmanager-web-monitoring-alertmanager-edit)Alertmanager 끝점에 외부에서 액세스합니다.
$ ROUTE=$(oc get route alertmanager-main --namespace=openshift-monitoring -ojsonpath={.spec.host})$ curl -k -X POST "https://$ROUTE/api/v2/silences" \ -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ -d '{ "matchers": [ { "name": "alertname", "value": "MyTestAlert1", "isRegex": false } ], "startsAt": "2044-01-01T00:00:00Z", "endsAt": "2044-01-01T00:00:01Z", "createdBy": "test-alertmanager-web-monitoring-alertmanager-edit/am-client", "comment": "Silence test" }'클러스터 내에서 Alertmanager 끝점에 액세스합니다.
$ curl -k -X POST "https://alertmanager-main.openshift-monitoring:9094/api/v2/silences" \ -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ -d '{ "matchers": [ { "name": "alertname", "value": "MyTestAlert2", "isRegex": false } ], "startsAt": "2044-01-01T00:00:00Z", "endsAt": "2044-01-01T00:00:01Z", "createdBy": "test-alertmanager-web-monitoring-alertmanager-edit/am-client", "comment": "Silence test" }'
포트 9092는 지정된 프로젝트로 제한된 Alertmanager 끝점에 대한 액세스를 제공합니다. 액세스 권한을 부여하려면 사용자를
monitoring-rules-edit클러스터 역할 또는 프로젝트의monitoring-edit클러스터 역할에 바인딩해야 합니다.- monitoring-rules-edit 권한 예
다음 예제에서는
monitoring-rules-edit클러스터 역할에서 부여하는 권한을 실행합니다. 바인딩 명령은 필요한 권한이 있는 사용자가 실행해야 합니다.테스트 네임스페이스 및 서비스 계정을 생성합니다.
$ oc create namespace test-alertmanager-tenancy-monitoring-rules-edit$ oc create serviceaccount am-client --namespace=test-alertmanager-tenancy-monitoring-rules-edit서비스 계정에 역할을 바인딩합니다. 이 예제의 바인딩은 서비스 계정에 적용되지만 모든 사용자에게 적용할 수도 있습니다.
$ oc create rolebinding test-alertmanager-tenancy-monitoring-rules-edit \ --namespace=test-alertmanager-tenancy-monitoring-rules-edit \ --clusterrole=monitoring-rules-edit \ --serviceaccount=test-alertmanager-tenancy-monitoring-rules-edit:am-client엔드포인트에 액세스하는 토큰을 생성합니다.
$ TOKEN=$(oc create token am-client --namespace=test-alertmanager-tenancy-monitoring-rules-edit)클러스터 내에서 Alertmanager 끝점에 액세스합니다. 포트는 기본적으로 외부에 노출되지 않습니다.
$ curl -k -f -H "Authorization: Bearer $TOKEN" "https://alertmanager-main.openshift-monitoring:9092/api/v2/alerts?namespace=test-alertmanager-tenancy-monitoring-rules-edit"$ curl -k -X POST -f "https://alertmanager-main.openshift-monitoring:9092/api/v2/silences?namespace=test-alertmanager-tenancy-monitoring-rules-edit" \ -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ -d '{ "matchers": [ { "name": "alertname", "value": "MyTestAlert", "isRegex": false } ], "startsAt": "2044-01-01T00:00:00Z", "endsAt": "2044-01-01T00:00:01Z", "createdBy": "test-alertmanager-tenancy-monitoring-rules-edit/am-client", "comment": "Silence test" }'
- monitoring-edit 권한 예
다음 예제에서는
monitoring-edit클러스터 역할에서 부여하는 권한을 실행합니다. 바인딩 명령은 필요한 권한이 있는 사용자가 실행해야 합니다.테스트 네임스페이스 및 서비스 계정을 생성합니다.
$ oc create namespace test-alertmanager-tenancy-monitoring-edit$ oc create serviceaccount am-client --namespace=test-alertmanager-tenancy-monitoring-edit서비스 계정에 역할을 바인딩합니다. 이 예제의 바인딩은 서비스 계정에 적용되지만 모든 사용자에게 적용할 수도 있습니다.
$ oc create rolebinding test-alertmanager-tenancy-monitoring-edit \ --namespace=test-alertmanager-tenancy-monitoring-edit \ --clusterrole=monitoring-edit \ --serviceaccount=test-alertmanager-tenancy-monitoring-edit:am-client엔드포인트에 액세스하는 토큰을 생성합니다.
$ TOKEN=$(oc create token am-client --namespace=test-alertmanager-tenancy-monitoring-edit)클러스터 내에서 Alertmanager 끝점에 액세스합니다. 포트는 기본적으로 외부에 노출되지 않습니다.
$ curl -k -f -H "Authorization: Bearer $TOKEN" "https://alertmanager-main.openshift-monitoring:9092/api/v2/alerts?namespace=test-alertmanager-tenancy-monitoring-edit"$ curl -k -X POST -f "https://alertmanager-main.openshift-monitoring:9092/api/v2/silences?namespace=test-alertmanager-tenancy-monitoring-edit" \ -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ -d '{ "matchers": [ { "name": "alertname", "value": "MyTestAlert", "isRegex": false } ], "startsAt": "2044-01-01T00:00:00Z", "endsAt": "2044-01-01T00:00:01Z", "createdBy": "test-alertmanager-tenancy-monitoring-edit/am-client", "comment": "Silence test" }'
-
포트 9097은
/metrics엔드포인트에만 액세스할 수 있습니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다.
4.3.5.2.4. openshift-monitoring/kube-state-metrics 링크 복사링크가 클립보드에 복사되었습니다!
다음 포트의 클러스터 내에 kube-state-metrics /metrics 끝점을 노출합니다.
- 포트 8443은 Kubernetes 리소스 메트릭에 대한 액세스를 제공합니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다.
- 포트 9443은 내부 kube-state-metrics 메트릭에 대한 액세스를 제공합니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다.
4.3.5.2.5. openshift-monitoring/metrics-server 링크 복사링크가 클립보드에 복사되었습니다!
포트 443에 metrics-server 웹 서버를 노출합니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다.
4.3.5.2.6. openshift-monitoring/monitoring-plugin 링크 복사링크가 클립보드에 복사되었습니다!
포트 9443에 모니터링 플러그인 서비스를 노출합니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다.
4.3.5.2.7. openshift-monitoring/node-exporter 링크 복사링크가 클립보드에 복사되었습니다!
포트 9100에 /metrics 엔드포인트를 노출합니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다.
4.3.5.2.8. openshift-monitoring/openshift-state-metrics 링크 복사링크가 클립보드에 복사되었습니다!
다음 포트의 클러스터 내에 openshift-state-metrics /metrics 끝점을 노출합니다.
- 포트 8443은 OpenShift 리소스 메트릭에 대한 액세스를 제공합니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다.
-
포트 9443은 내부
openshift-state-metrics지표에 대한 액세스를 제공합니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다.
4.3.5.2.9. openshift-monitoring/prometheus-k8s 링크 복사링크가 클립보드에 복사되었습니다!
다음 포트의 클러스터 내에 Prometheus 웹 서버를 노출합니다.
포트 9091은 모든 Prometheus 끝점에 대한 액세스를 제공합니다. 액세스 권한을 부여하려면 사용자를
openshift-monitoring프로젝트에서cluster-monitoring-view클러스터 역할 또는cluster-monitoring-metrics-api클러스터 역할에 바인딩해야 합니다.- cluster-monitoring-view 권한의 예
다음 예제에서는 cluster
-monitoring-view 클러스터역할에서 부여하는 권한을 실행합니다. 바인딩 명령은 필요한 권한이 있는 사용자가 실행해야 합니다.테스트 네임스페이스 및 서비스 계정을 생성합니다.
$ oc create namespace test-prometheus-web-cluster-monitoring-view$ oc create serviceaccount prom-client --namespace=test-prometheus-web-cluster-monitoring-view서비스 계정에 역할을 바인딩합니다. 이 예제의 바인딩은 서비스 계정에 적용되지만 모든 사용자에게 적용할 수도 있습니다.
$ oc create rolebinding test-prometheus-web-cluster-monitoring-view \ --namespace=openshift-monitoring \ --clusterrole=cluster-monitoring-view \ --serviceaccount=test-prometheus-web-cluster-monitoring-view:prom-client엔드포인트에 액세스하는 토큰을 생성합니다.
$ TOKEN=$(oc create token prom-client --namespace=test-prometheus-web-cluster-monitoring-view)Prometheus 끝점에 외부에서 액세스합니다.
$ ROUTE=$(oc get route prometheus-k8s --namespace=openshift-monitoring -ojsonpath={.spec.host})$ curl -k -H "Authorization: Bearer $TOKEN" "https://$ROUTE/api/v1/query?query=up"클러스터 내에서 Prometheus 끝점에 액세스합니다.
$ curl -k -H "Authorization: Bearer $TOKEN" "https://prometheus-k8s.openshift-monitoring:9091/api/v1/query?query=up"
- cluster-monitoring-metrics-api 권한의 예
다음 예제에서는
cluster-monitoring-metrics-api역할에서 부여하는 권한을 실행합니다. 바인딩 명령은 필요한 권한이 있는 사용자가 실행해야 합니다.테스트 네임스페이스 및 서비스 계정을 생성합니다.
$ oc create namespace test-prometheus-web-cluster-monitoring-metrics-api$ oc create serviceaccount prom-client --namespace=test-prometheus-web-cluster-monitoring-metrics-api서비스 계정에 역할을 바인딩합니다. 이 예제의 바인딩은 서비스 계정에 적용되지만 모든 사용자에게 적용할 수도 있습니다.
$ oc create rolebinding test-prometheus-web-cluster-monitoring-metrics-api \ --namespace=openshift-monitoring \ --role=cluster-monitoring-metrics-api \ --serviceaccount=test-prometheus-web-cluster-monitoring-metrics-api:prom-client엔드포인트에 액세스하는 토큰을 생성합니다.
$ TOKEN=$(oc create token prom-client --namespace=test-prometheus-web-cluster-monitoring-metrics-api)Prometheus 끝점에 외부에서 액세스합니다.
$ ROUTE=$(oc get route prometheus-k8s --namespace=openshift-monitoring -ojsonpath={.spec.host})$ curl -k -H "Authorization: Bearer $TOKEN" "https://$ROUTE/api/v1/query?query=up"클러스터 내에서 Prometheus 끝점에 액세스합니다.
$ curl -k -H "Authorization: Bearer $TOKEN" "https://prometheus-k8s.openshift-monitoring:9091/api/v1/query?query=up"
-
포트 9092는
/metrics및/federate엔드포인트에만 액세스할 수 있습니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다.
4.3.5.2.10. openshift-user-workload-monitoring/prometheus-operator 링크 복사링크가 클립보드에 복사되었습니다!
포트 8443에 /metrics 엔드포인트를 노출합니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다.
4.3.5.2.11. openshift-monitoring/prometheus-operator 링크 복사링크가 클립보드에 복사되었습니다!
포트 8443에 /metrics 엔드포인트를 노출합니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다.
4.3.5.2.12. openshift-user-workload-monitoring/prometheus-user-workload 링크 복사링크가 클립보드에 복사되었습니다!
다음 포트의 클러스터 내에 Prometheus 웹 서버를 노출합니다.
-
포트 9091은
/metrics엔드포인트에만 액세스할 수 있습니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다. -
포트 9092는
/federate엔드포인트에만 액세스할 수 있습니다. 액세스 권한을 부여하려면 사용자를cluster-monitoring-view클러스터 역할에 바인딩해야 합니다.
또한 Thanos 사이드카 웹 서버의 /metrics 엔드포인트를 포트 10902에 노출합니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다.
4.3.5.2.13. openshift-monitoring/telemeter-client 링크 복사링크가 클립보드에 복사되었습니다!
포트 8443에 /metrics 엔드포인트를 노출합니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다.
4.3.5.2.14. openshift-monitoring/thanos-querier 링크 복사링크가 클립보드에 복사되었습니다!
다음 포트에서 Thanos Querier 웹 서버를 클러스터에 노출합니다.
포트 9091은 모든 Thanos Querier 엔드포인트에 대한 액세스를 제공합니다. 액세스 권한을 부여하려면 사용자를
openshift-monitoring프로젝트에서cluster-monitoring-view클러스터 역할 또는cluster-monitoring-metrics-api클러스터 역할에 바인딩해야 합니다.- cluster-monitoring-view 권한의 예
다음 예제에서는 cluster
-monitoring-view 클러스터역할에서 부여하는 권한을 실행합니다. 바인딩 명령은 필요한 권한이 있는 사용자가 실행해야 합니다.테스트 네임스페이스 및 서비스 계정을 생성합니다.
$ oc create namespace test-thanos-querier-web-cluster-monitoring-view$ oc create serviceaccount thanos-client --namespace=test-thanos-querier-web-cluster-monitoring-view서비스 계정에 역할을 바인딩합니다. 이 예제의 바인딩은 서비스 계정에 적용되지만 모든 사용자에게 적용할 수도 있습니다.
$ oc create rolebinding test-thanos-querier-web-cluster-monitoring-view \ --namespace=openshift-monitoring \ --clusterrole=cluster-monitoring-view \ --serviceaccount=test-thanos-querier-web-cluster-monitoring-view:thanos-client엔드포인트에 액세스하는 토큰을 생성합니다.
$ TOKEN=$(oc create token thanos-client --namespace=test-thanos-querier-web-cluster-monitoring-view)Thanos Querier 엔드포인트에 외부에서 액세스합니다.
$ ROUTE=$(oc get route thanos-querier --namespace=openshift-monitoring -ojsonpath={.spec.host})$ curl -k -H "Authorization: Bearer $TOKEN" "https://$ROUTE/api/v1/query?query=up"클러스터 내에서 Thanos Querier 엔드포인트에 액세스합니다.
$ curl -k -H "Authorization: Bearer $TOKEN" "https://thanos-querier.openshift-monitoring:9091/api/v1/query?query=up"
- cluster-monitoring-metrics-api 권한의 예
다음 예제에서는
cluster-monitoring-metrics-api역할에서 부여하는 권한을 실행합니다. 바인딩 명령은 필요한 권한이 있는 사용자가 실행해야 합니다.테스트 네임스페이스 및 서비스 계정을 생성합니다.
$ oc create namespace test-thanos-querier-web-cluster-monitoring-metrics-api$ oc create serviceaccount thanos-client --namespace=test-thanos-querier-web-cluster-monitoring-metrics-api서비스 계정에 역할을 바인딩합니다. 이 예제의 바인딩은 서비스 계정에 적용되지만 모든 사용자에게 적용할 수도 있습니다.
$ oc create rolebinding test-thanos-querier-web-cluster-monitoring-metrics-api \ --namespace=openshift-monitoring \ --role=cluster-monitoring-metrics-api \ --serviceaccount=test-thanos-querier-web-cluster-monitoring-metrics-api:thanos-client엔드포인트에 액세스하는 토큰을 생성합니다.
$ TOKEN=$(oc create token thanos-client --namespace=test-thanos-querier-web-cluster-monitoring-metrics-api)Thanos Querier 엔드포인트에 외부에서 액세스합니다.
$ ROUTE=$(oc get route thanos-querier --namespace=openshift-monitoring -ojsonpath={.spec.host})$ curl -k -H "Authorization: Bearer $TOKEN" "https://$ROUTE/api/v1/query?query=up"클러스터 내에서 Thanos Querier 엔드포인트에 액세스합니다.
$ curl -k -H "Authorization: Bearer $TOKEN" "https://thanos-querier.openshift-monitoring:9091/api/v1/query?query=up"
포트 9092는 지정된 프로젝트로 제한된
/api/v1/query,/api/v1/query_range/,/api/v1/labels,/api/v1/label/*/values,/api/v1/series엔드포인트에 대한 액세스를 제공합니다. 액세스 권한을 부여하려면 사용자가 프로젝트의view클러스터 역할에 바인딩해야 합니다.- 보기 권한 예
다음 예제에는
view클러스터 역할에서 부여하는 실행 권한이 있습니다. 바인딩 명령은 필요한 권한이 있는 사용자가 실행해야 합니다.테스트 네임스페이스 및 서비스 계정을 생성합니다.
$ oc create namespace test-thanos-querier-tenancy-view$ oc create serviceaccount thanos-client --namespace=test-thanos-querier-tenancy-view서비스 계정에 역할을 바인딩합니다. 이 예제의 바인딩은 서비스 계정에 적용되지만 모든 사용자에게 적용할 수도 있습니다.
$ oc create rolebinding test-thanos-querier-tenancy-view \ --namespace=test-thanos-querier-tenancy-view \ --clusterrole=view \ --serviceaccount=test-thanos-querier-tenancy-view:thanos-client엔드포인트에 액세스하는 토큰을 생성합니다.
$ TOKEN=$(oc create token thanos-client --namespace=test-thanos-querier-tenancy-view)클러스터 내에서 Thanos Querier 엔드포인트에 액세스합니다. 포트는 기본적으로 외부에 노출되지 않습니다.
$ curl -k -f -H "Authorization: Bearer $TOKEN" "https://thanos-querier.openshift-monitoring:9092/api/v1/query?query=up&namespace=test-thanos-querier-tenancy-view"
포트 9093은 지정된 프로젝트로 제한된
/api/v1/alerts,/api/v1/rules엔드포인트에 대한 액세스를 제공합니다. 액세스 권한을 부여하려면 사용자를monitoring-rules-edit,monitoring-edit또는monitoring-rules-view클러스터 역할에 바인딩해야 합니다.- monitoring-rules-edit 권한 예
다음 예제에서는
monitoring-rules-edit클러스터 역할에서 부여하는 권한을 실행합니다. 바인딩 명령은 필요한 권한이 있는 사용자가 실행해야 합니다.테스트 네임스페이스 및 서비스 계정을 생성합니다.
$ oc create namespace test-thanos-querier-tenancy-rules-monitoring-rules-edit$ oc create serviceaccount thanos-client --namespace=test-thanos-querier-tenancy-rules-monitoring-rules-edit서비스 계정에 역할을 바인딩합니다. 이 예제의 바인딩은 서비스 계정에 적용되지만 모든 사용자에게 적용할 수도 있습니다.
$ oc create rolebinding test-thanos-querier-tenancy-rules-monitoring-rules-edit \ --namespace=test-thanos-querier-tenancy-rules-monitoring-rules-edit \ --clusterrole=monitoring-rules-edit \ --serviceaccount=test-thanos-querier-tenancy-rules-monitoring-rules-edit:thanos-client엔드포인트에 액세스하는 토큰을 생성합니다.
$ TOKEN=$(oc create token thanos-client --namespace=test-thanos-querier-tenancy-rules-monitoring-rules-edit)클러스터 내에서 Thanos Querier 엔드포인트에 액세스합니다. 포트는 기본적으로 외부에 노출되지 않습니다.
$ curl -k -f -H "Authorization: Bearer $TOKEN" "https://thanos-querier.openshift-monitoring:9093/api/v1/rules?namespace=test-thanos-querier-tenancy-rules-monitoring-rules-edit"$ curl -k -f -H "Authorization: Bearer $TOKEN" "https://thanos-querier.openshift-monitoring:9093/api/v1/alerts?namespace=test-thanos-querier-tenancy-rules-monitoring-rules-edit"
- monitoring-edit 권한 예
다음 예제에서는
monitoring-edit클러스터 역할에서 부여하는 권한을 실행합니다. 바인딩 명령은 필요한 권한이 있는 사용자가 실행해야 합니다.테스트 네임스페이스 및 서비스 계정을 생성합니다.
$ oc create namespace test-thanos-querier-tenancy-rules-monitoring-edit$ oc create serviceaccount thanos-client --namespace=test-thanos-querier-tenancy-rules-monitoring-edit서비스 계정에 역할을 바인딩합니다. 이 예제의 바인딩은 서비스 계정에 적용되지만 모든 사용자에게 적용할 수도 있습니다.
$ oc create rolebinding test-thanos-querier-tenancy-rules-monitoring-edit \ --namespace=test-thanos-querier-tenancy-rules-monitoring-edit \ --clusterrole=monitoring-edit \ --serviceaccount=test-thanos-querier-tenancy-rules-monitoring-edit:thanos-client엔드포인트에 액세스하는 토큰을 생성합니다.
$ TOKEN=$(oc create token thanos-client --namespace=test-thanos-querier-tenancy-rules-monitoring-edit)클러스터 내에서 Thanos Querier 엔드포인트에 액세스합니다. 포트는 기본적으로 외부에 노출되지 않습니다.
$ curl -k -f -H "Authorization: Bearer $TOKEN" "https://thanos-querier.openshift-monitoring:9093/api/v1/rules?namespace=test-thanos-querier-tenancy-rules-monitoring-edit"$ curl -k -f -H "Authorization: Bearer $TOKEN" "https://thanos-querier.openshift-monitoring:9093/api/v1/alerts?namespace=test-thanos-querier-tenancy-rules-monitoring-edit"
- monitoring-rules-view 권한 예
다음 예제에서는
monitoring-rules-view클러스터 역할에서 부여하는 권한을 실행합니다. 바인딩 명령은 필요한 권한이 있는 사용자가 실행해야 합니다.테스트 네임스페이스 및 서비스 계정을 생성합니다.
$ oc create namespace test-thanos-querier-tenancy-rules-monitoring-rules-view$ oc create serviceaccount thanos-client --namespace=test-thanos-querier-tenancy-rules-monitoring-rules-view서비스 계정에 역할을 바인딩합니다. 이 예제의 바인딩은 서비스 계정에 적용되지만 모든 사용자에게 적용할 수도 있습니다.
$ oc create rolebinding test-thanos-querier-tenancy-rules-monitoring-rules-view \ --namespace=test-thanos-querier-tenancy-rules-monitoring-rules-view \ --clusterrole=monitoring-rules-view \ --serviceaccount=test-thanos-querier-tenancy-rules-monitoring-rules-view:thanos-client엔드포인트에 액세스하는 토큰을 생성합니다.
$ TOKEN=$(oc create token thanos-client --namespace=test-thanos-querier-tenancy-rules-monitoring-rules-view)클러스터 내에서 Thanos Querier 엔드포인트에 액세스합니다. 포트는 기본적으로 외부에 노출되지 않습니다.
$ curl -k -f -H "Authorization: Bearer $TOKEN" "https://thanos-querier.openshift-monitoring:9093/api/v1/rules?namespace=test-thanos-querier-tenancy-rules-monitoring-rules-view"$ curl -k -f -H "Authorization: Bearer $TOKEN" "https://thanos-querier.openshift-monitoring:9093/api/v1/alerts?namespace=test-thanos-querier-tenancy-rules-monitoring-rules-view"
-
포트 9094는
/metrics엔드포인트에만 액세스할 수 있습니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다.
4.3.5.2.15. openshift-user-workload-monitoring/thanos-ruler 링크 복사링크가 클립보드에 복사되었습니다!
다음 포트의 클러스터에 Thanos Ruler 웹 서버를 노출합니다.
-
포트 9091은 모든 Thanos Ruler 엔드포인트에 대한 액세스를 제공합니다. 액세스 권한을 부여하려면 사용자를
cluster-monitoring-view클러스터 역할에 바인딩해야 합니다. -
포트 9092는
/metrics엔드포인트에만 액세스할 수 있습니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다.
또한 gRPC 끝점을 포트 10901에 노출합니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다.
4.3.5.2.16. openshift-monitoring/cluster-monitoring-operator 링크 복사링크가 클립보드에 복사되었습니다!
포트 8443에 /metrics 및 /validate-webhook 끝점을 노출합니다. 이 포트는 내부용으로 사용되며 다른 사용은 보장되지 않습니다.
5장. 경고 관리 링크 복사링크가 클립보드에 복사되었습니다!
5.1. 관리자로 경고 관리 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated에서 경고 UI를 사용하면 경고, 음소거, 경고 규칙을 관리할 수 있습니다.
OpenShift Dedicated 4.19부터 웹 콘솔의 관점에 통합됩니다. Developer 모드는 기본적으로 더 이상 활성화되지 않습니다.
모든 사용자는 모든 OpenShift Dedicated 웹 콘솔 기능과 상호 작용할 수 있습니다. 그러나 클러스터 소유자가 아닌 경우 클러스터 소유자의 특정 기능에 액세스할 수 있는 권한을 요청해야 할 수 있습니다.
여전히 개발자 화면을 활성화할 수 있습니다. 웹 콘솔의 시작 창에서 콘솔 둘러보기, 클러스터 설정, 개발자 화면 활성화에 대한 빠른 시작 정보를 찾고, 링크를 따라 새 기능 및 기능을 탐색할 수 있습니다.
경고 UI에서 사용할 수 있는 경고, 음소거, 경고 규칙은 액세스할 수 있는 프로젝트와 관련이 있습니다. 예를 들어 관리자로 로그인한 경우 모든 경고, 음소거, 경고 규칙에 액세스할 수 있습니다.
5.1.1. 경고 UI에 액세스 링크 복사링크가 클립보드에 복사되었습니다!
경고 UI는 OpenShift Dedicated 웹 콘솔에서 액세스할 수 있습니다.
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 경고 로 이동합니다. 여기에서 알림 UI의 세 가지 주요 페이지는 알림 , 무음 설정 , 알림 규칙 페이지입니다.
5.1.2. 경고, 음소거 및 경고 규칙에 대한 정보 받기 링크 복사링크가 클립보드에 복사되었습니다!
경고 UI는 경고 및 관리 경고 규칙과 음소거에 대한 자세한 정보를 제공합니다.
사전 요구 사항
- 경고를 보고 있는 프로젝트에 대한 보기 권한이 있는 사용자로 클러스터에 액세스할 수 있습니다.
프로세스
경고에 대한 정보를 얻으려면 다음을 수행합니다.
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 경고 → 경고 페이지로 이동합니다.
- 선택 사항: 검색 목록의 이름 필드를 사용하여 이름 별로 경고를 검색합니다.
- 선택 사항: 필터 목록에서 필터를 선택하여 상태, 심각도 및 소스별로 경고를 필터링합니다.
- 선택 사항: 이름, 심각도, 상태 및 소스 열 헤더 중 하나 이상을 클릭하여 경고를 정렬합니다.
경고 세부 정보 페이지를 보려면 경고 이름을 클릭합니다. 페이지에는 경고 시계열 데이터를 설명하는 그래프가 포함되어 있습니다. 또한 경고에 대한 다음 정보를 제공합니다.
- 경고에 대한 설명
- 경고와 관련된 메시지
- 페이지가 존재하는 경우 경고에 대한 GitHub의 runbook 페이지에 대한 링크
- 경고에 연결된 라벨
- 관리 경고 규칙에 대한 링크
- 존재하는 경우 경고에 대한 음소거
음소거에 대한 정보를 얻으려면 다음을 수행합니다.
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 경고 → 음소거 페이지로 이동합니다.
- 선택 사항: 이름으로 검색 필드를 사용하여 이름으로 음소거를 필터링합니다.
- 선택 사항: 필터 목록에서 필터를 선택하여 상태별로 음소거를 필터링합니다. 기본적으로 활성 및 보류 중 필터가 적용됩니다.
- 선택 사항: 이름, 경고 실행,상태 및 Creator 열 헤더 중 하나 이상을 클릭하여음소거 를 정렬합니다.
음소거의 이름을 선택하여 음소거 세부 정보 페이지를 확인합니다. 페이지에는 다음과 같은 세부 정보가 포함됩니다.
- 경고 사양
- 시작 시간
- 종료 시간
- 음소거 상태
- 실행 경고 수 및 목록
경고 규칙에 대한 정보를 얻으려면 다음을 수행합니다.
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 경고 → 경고 규칙 페이지로 이동합니다.
- 선택 사항: 필터 목록에서 필터를 선택하여 상태, 심각도 및 소스로 경고 규칙을 필터링합니다.
- 선택 사항: 이름,심각도, 경고 상태 및 소스 열 헤더 중 하나 이상을 클릭하여 경고 규칙을 정렬합니다.
경고 규칙 세부 정보 페이지를 보려면 경고 규칙 의 이름을 선택합니다. 페이지는 경고 규칙에 대한 다음 세부 정보를 제공합니다.
- 경고 규칙 이름, 심각도 및 설명.
- 경고를 실행하기 위한 조건을 정의하는 표현식입니다.
- 경고가 실행되기 위한 조건이 true여야 하는 시간입니다.
- 경고 규칙에 의해 관리되는 각 경고에 대한 그래프로, 경고가 실행되는 값을 표시합니다.
- 경고 규칙에 의해 관리되는 모든 경고의 테이블입니다.
5.1.3. 음소거 관리 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated 웹 콘솔에서 경고에 대한 음소거를 생성할 수 있습니다. 음소거를 생성한 후 이를 보고 편집하고 만료할 수 있습니다. 경고가 실행될 때 음소거된 경고에 대한 알림도 수신하지 않습니다.
음소거를 생성하면 Alertmanager Pod에 복제됩니다. 그러나 Alertmanager에 대한 영구 스토리지를 구성하지 않으면 음소거가 손실될 수 있습니다. 예를 들어 모든 Alertmanager Pod가 동시에 다시 시작되면 이러한 상황이 발생할 수 있습니다.
5.1.3.1. 음소거 경고 링크 복사링크가 클립보드에 복사되었습니다!
특정 경고를 음소거하거나 사용자가 정의한 사양과 일치하는 경고를 음소거할 수 있습니다.
사전 요구 사항
-
클러스터 관리자인 경우
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. 관리자가 아닌 사용자인 경우 다음 사용자 역할이 있는 사용자로 클러스터에 액세스할 수 있습니다.
-
Alertmanager에 액세스할 수 있는
cluster-monitoring-view클러스터 역할입니다. -
경고를 생성하고 음소거할 수 있는
monitoring-alertmanager-edit역할입니다.
-
Alertmanager에 액세스할 수 있는
프로세스
특정 경고를 음소거하려면 다음을 수행합니다.
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 경고 → 경고로 이동합니다.
-
음소거할 경고의 경우
를 클릭하고 음소거 경고를 선택하여 선택한 경고에 대한 기본 구성으로 음소거 경고 페이지를 엽니다.
선택 사항: 음소거의 기본 구성 세부 정보를 변경합니다.
참고음소거를 저장하기 전에 코멘트를 추가해야 합니다.
- 음소거를 저장하려면 음소거 를 클릭합니다.
일련의 경고를 음소거하려면 다음을 수행합니다.
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 경고 → 음소거 로 이동합니다.
- 음소거 생성을 클릭합니다.
음소거 생성 페이지에서 경고의 일정, 기간 및 레이블 세부 정보를 설정합니다.
참고음소거를 저장하기 전에 코멘트를 추가해야 합니다.
- 입력한 라벨과 일치하는 경고에 대한 음소거를 생성하려면 음소거 를 클릭합니다.
5.1.3.2. 음소거 편집 링크 복사링크가 클립보드에 복사되었습니다!
음소거를 편집하여 기존 음소거가 만료되고 변경된 구성으로 새 음소거를 생성할 수 있습니다.
사전 요구 사항
-
클러스터 관리자인 경우
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. 관리자가 아닌 사용자인 경우 다음 사용자 역할이 있는 사용자로 클러스터에 액세스할 수 있습니다.
-
Alertmanager에 액세스할 수 있는
cluster-monitoring-view클러스터 역할입니다. -
경고를 생성하고 음소거할 수 있는
monitoring-alertmanager-edit역할입니다.
-
Alertmanager에 액세스할 수 있는
프로세스
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 경고 → 음소거 로 이동합니다.
수정하려는 음소거의 경우
를 클릭하고 음소거 편집을 선택합니다.
또는 작업을 클릭하고 음소거 의 음소거 세부 정보 페이지에서 음소거 편집을 선택할 수 있습니다.
- 음소거 편집 페이지에서 변경 후 음소거 를 클릭합니다. 이렇게 하면 기존 음소거가 만료되고 업데이트된 구성으로 생성됩니다.
5.1.3.3. 음소거 만료 링크 복사링크가 클립보드에 복사되었습니다!
단일 음소거 또는 여러 음소거를 만료할 수 있습니다. 음소거를 만료하면 영구적으로 비활성화됩니다.
만료된 경고를 삭제할 수 없습니다. 120시간 이상 경과한 음소거는 가비지 수집됩니다.
사전 요구 사항
-
클러스터 관리자인 경우
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. 관리자가 아닌 사용자인 경우 다음 사용자 역할이 있는 사용자로 클러스터에 액세스할 수 있습니다.
-
Alertmanager에 액세스할 수 있는
cluster-monitoring-view클러스터 역할입니다. -
경고를 생성하고 음소거할 수 있는
monitoring-alertmanager-edit역할입니다.
-
Alertmanager에 액세스할 수 있는
프로세스
- 모니터링 → 경고 → 음소거 로 이동합니다.
- 만료하려는 음소거 또는 음소거의 경우 해당 행의 확인란을 선택합니다.
Expire 1 음소거 를 클릭하여 선택한 단일 음소거를 만료하거나 < n > 음소거 를 만료하여 선택한 여러 음소거를 만료합니다. 여기서 < n >은 선택한 음소거 수입니다.
또는 단일 음소거를 만료하려면 작업을 클릭하고 음소거에 대한 음소거 세부 정보 페이지에서 음소거 만료를 선택할 수 있습니다.
5.1.4. 사용자 정의 프로젝트에 대한 경고 규칙 관리 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated에서는 사용자 정의 프로젝트에 대한 경고 규칙을 생성, 보기, 편집 및 제거할 수 있습니다. 이러한 경고 규칙은 선택한 메트릭의 값에 따라 경고를 트리거합니다.
5.1.4.1. 사용자 정의 프로젝트에 대한 경고 규칙 생성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 프로젝트에 대한 경고 규칙을 생성할 수 있습니다. 이러한 경고 규칙은 선택한 메트릭의 값에 따라 경고를 트리거합니다.
사용자가 경고의 영향 및 원인을 이해할 수 있도록 하려면 경고 규칙에 경고 메시지 및 심각도 값이 포함되어 있어야 합니다.
사전 요구 사항
- 사용자 정의 프로젝트에 대한 모니터링을 활성화했습니다.
-
클러스터 관리자로 로그인하거나 경고 규칙을 생성하려는 프로젝트에 대한
monitoring-rules-edit클러스터 역할이 있는 사용자로 로그인했습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
-
경고 규칙에 사용할 YAML 파일을 생성합니다. 이 예에서는
example-app-alerting-rule.yaml이라고 합니다. YAML 파일에 경고 규칙 구성을 추가합니다. 다음 예제에서는
example-alert라는 새 경고 규칙을 생성합니다. 경고 규칙은 샘플 서비스에서 노출된version메트릭이0이 되면 경고를 실행합니다.apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: name: example-alert namespace: ns1 spec: groups: - name: example rules: - alert: VersionAlert1 for: 1m2 expr: version{job="prometheus-example-app"} == 03 labels: severity: warning4 annotations: message: This is an example alert.5 구성 파일을 리클러스터에 적용합니다.
$ oc apply -f example-app-alerting-rule.yaml
5.1.4.2. 사용자 정의 프로젝트에 대한 프로젝트 간 경고 규칙 생성 링크 복사링크가 클립보드에 복사되었습니다!
user-workload-monitoring-config 구성 맵에서 프로젝트를 구성하여 origin 프로젝트에 바인딩되지 않은 경고 규칙을 생성할 수 있습니다. 그러면 이러한 프로젝트에서 생성된 PrometheusRule 오브젝트가 모든 프로젝트에 적용됩니다.
따라서 각 사용자 프로젝트에 개별 PrometheusRule 오브젝트가 없는 대신 여러 사용자 정의 프로젝트에 적용되는 일반 경고 규칙이 있을 수 있습니다. PrometheusRule 오브젝트에서 PromQL 쿼리를 사용하여 경고 규칙에서 포함되거나 제외되는 프로젝트를 필터링할 수 있습니다.
사전 요구 사항
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다.참고관리자가 아닌 사용자인 경우 경고 규칙을 생성하려는 프로젝트에 대한
monitoring-rules-edit클러스터 역할이 있는 경우에도 프로젝트 간 경고 규칙을 생성할 수 있습니다. 그러나 클러스터 관리자만 수행할 수 있는namespacesWithoutLabelEnforcement속성의user-workload-monitoring-config구성 맵에 해당 프로젝트를 구성해야 합니다.-
user-workload-monitoring-configConfigMap오브젝트가 있습니다. 이 오브젝트는 클러스터가 생성될 때 기본적으로 생성됩니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
openshift-user-workload-monitoring프로젝트에서user-workload-monitoring-config구성 맵을 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config특정 프로젝트에 바인딩되지 않은 경고 규칙을 생성하려는 프로젝트를 구성합니다.
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | namespacesWithoutLabelEnforcement: [ <namespace1>, <namespace2> ]1 # ...- 1
- 프로젝트 간 경고 규칙을 생성할 하나 이상의 프로젝트를 지정합니다. 사용자 정의 모니터링에 대한 Prometheus 및 Thanos Ruler는 이러한 프로젝트에서 생성된
PrometheusRule오브젝트에namespace레이블을 적용하지 않으므로 모든 프로젝트에PrometheusRule오브젝트를 적용할 수 있습니다.
-
경고 규칙에 사용할 YAML 파일을 생성합니다. 이 예제에서는
example-cross-project-alerting-rule.yaml이라고 합니다. YAML 파일에 경고 규칙 구성을 추가합니다. 다음 예제에서는
example-security라는 새 프로젝트 간 경고 규칙을 생성합니다. 경고 규칙은 사용자 프로젝트에서 restricted Pod 보안 정책을 적용하지 않으면 실행됩니다.프로젝트 간 경고 규칙의 예
apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: name: example-security namespace: ns11 spec: groups: - name: pod-security-policy rules: - alert: "ProjectNotEnforcingRestrictedPolicy"2 for: 5m3 expr: kube_namespace_labels{namespace!~"(openshift|kube).*|default",label_pod_security_kubernetes_io_enforce!="restricted"}4 annotations: message: "Restricted policy not enforced. Project {{ $labels.namespace }} does not enforce the restricted pod security policy."5 labels: severity: warning6 - 1
namespacesWithoutLabelEnforcement필드에 정의된 프로젝트를 지정해야 합니다.- 2
- 생성할 경고 규칙의 이름입니다.
- 3
- 경고가 실행되기 전에 조건이 true여야 하는 기간입니다.
- 4
- 새 규칙을 정의하는 PromQL 쿼리 표현식입니다.
네임스페이스라벨에서 레이블 일치자를 사용하여 경고 규칙에서 포함되거나 제외되는 프로젝트를 필터링할 수 있습니다. - 5
- 경고와 연결된 메시지입니다.
- 6
- 경고 규칙이 경고에 할당하는 심각도입니다.중요
namespacesWithoutLabelEnforcement필드에 지정한 프로젝트 중 하나에만 특정 프로젝트 간 경고 규칙을 생성해야 합니다. 여러 프로젝트에서 동일한 프로젝트 간 경고 규칙을 생성하면 경고가 반복됩니다.
구성 파일을 리클러스터에 적용합니다.
$ oc apply -f example-cross-project-alerting-rule.yaml
5.1.4.3. 단일 보기에서 모든 프로젝트의 경고 규칙 나열 링크 복사링크가 클립보드에 복사되었습니다!
전용 관리자는 코어 OpenShift Dedicated 및 사용자 정의 프로젝트에 대한 경고 규칙을 단일 보기에서 함께 나열할 수 있습니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 경고 → 경고 규칙으로 이동합니다.
필터 드롭다운 메뉴에서 플랫폼 및 사용자 소스를 선택합니다.
참고플랫폼 소스가 기본적으로 선택됩니다.
5.1.4.4. 사용자 정의 프로젝트에 대한 경고 규칙 제거 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 프로젝트에 대한 경고 규칙을 제거할 수 있습니다.
사전 요구 사항
- 사용자 정의 프로젝트에 대한 모니터링을 활성화했습니다.
-
클러스터 관리자로 로그인하거나 경고 규칙을 생성하려는 프로젝트에 대한
monitoring-rules-edit클러스터 역할이 있는 사용자로 로그인했습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
<
namespace>에서 규칙 <alerting_rule>을 제거하려면 다음을 실행합니다.$ oc -n <namespace> delete prometheusrule <alerting_rule>
5.1.4.5. 사용자 정의 프로젝트에 대한 프로젝트 간 경고 규칙 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 프로젝트에 대한 프로젝트 간 경고 규칙 생성은 기본적으로 활성화되어 있습니다. 클러스터 관리자는 다음과 같은 이유로 cluster-monitoring-config 구성 맵의 기능을 비활성화할 수 있습니다.
- 사용자 정의 모니터링이 클러스터 모니터링 스택을 과부하하지 않도록 하려면 다음을 수행합니다.
- 문제 발생 규칙을 식별하지 않고도 버그 경보 규칙이 클러스터에 적용되지 않도록 하려면 다음을 수행하십시오.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
openshift-monitoring프로젝트에서cluster-monitoring-config구성 맵을 편집합니다.$ oc -n openshift-monitoring edit configmap cluster-monitoring-configcluster-monitoring-config구성 맵에서data/config.yaml/userWorkload아래의rulesWithoutLabelEnforcementAllowed값을false로 설정하여 프로젝트 간 경고 규칙을 생성하는 옵션을 비활성화합니다.kind: ConfigMap apiVersion: v1 metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | userWorkload: rulesWithoutLabelEnforcementAllowed: false # ...- 파일을 저장하여 변경 사항을 적용합니다.
5.2. 개발자로 경고 관리 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated에서 경고 UI를 사용하면 경고, 음소거, 경고 규칙을 관리할 수 있습니다.
OpenShift Dedicated 4.19부터 웹 콘솔의 관점에 통합됩니다. Developer 모드는 기본적으로 더 이상 활성화되지 않습니다.
모든 사용자는 모든 OpenShift Dedicated 웹 콘솔 기능과 상호 작용할 수 있습니다. 그러나 클러스터 소유자가 아닌 경우 클러스터 소유자의 특정 기능에 액세스할 수 있는 권한을 요청해야 할 수 있습니다.
여전히 개발자 화면을 활성화할 수 있습니다. 웹 콘솔의 시작 창에서 콘솔 둘러보기, 클러스터 설정, 개발자 화면 활성화에 대한 빠른 시작 정보를 찾고, 링크를 따라 새 기능 및 기능을 탐색할 수 있습니다.
경고 UI에서 사용할 수 있는 경고, 음소거, 경고 규칙은 액세스할 수 있는 프로젝트와 관련이 있습니다.
5.2.1. 경고 UI에 액세스 링크 복사링크가 클립보드에 복사되었습니다!
경고 UI는 OpenShift Dedicated 웹 콘솔에서 액세스할 수 있습니다.
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 경고 로 이동합니다. 여기에서 알림 UI의 세 가지 주요 페이지는 알림 , 무음 설정 , 알림 규칙 페이지입니다.
5.2.2. 경고, 음소거 및 경고 규칙에 대한 정보 받기 링크 복사링크가 클립보드에 복사되었습니다!
경고 UI는 경고 및 관리 경고 규칙과 음소거에 대한 자세한 정보를 제공합니다.
사전 요구 사항
- 경고를 보고 있는 프로젝트에 대한 보기 권한이 있는 사용자로 클러스터에 액세스할 수 있습니다.
프로세스
경고에 대한 정보를 얻으려면 다음을 수행합니다.
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 경고 → 경고 페이지로 이동합니다.
- 선택 사항: 검색 목록의 이름 필드를 사용하여 이름 별로 경고를 검색합니다.
- 선택 사항: 필터 목록에서 필터를 선택하여 상태, 심각도 및 소스별로 경고를 필터링합니다.
- 선택 사항: 이름, 심각도, 상태 및 소스 열 헤더 중 하나 이상을 클릭하여 경고를 정렬합니다.
경고 세부 정보 페이지를 보려면 경고 이름을 클릭합니다. 페이지에는 경고 시계열 데이터를 설명하는 그래프가 포함되어 있습니다. 또한 경고에 대한 다음 정보를 제공합니다.
- 경고에 대한 설명
- 경고와 관련된 메시지
- 페이지가 존재하는 경우 경고에 대한 GitHub의 runbook 페이지에 대한 링크
- 경고에 연결된 라벨
- 관리 경고 규칙에 대한 링크
- 존재하는 경우 경고에 대한 음소거
음소거에 대한 정보를 얻으려면 다음을 수행합니다.
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 경고 → 음소거 페이지로 이동합니다.
- 선택 사항: 이름으로 검색 필드를 사용하여 이름으로 음소거를 필터링합니다.
- 선택 사항: 필터 목록에서 필터를 선택하여 상태별로 음소거를 필터링합니다. 기본적으로 활성 및 보류 중 필터가 적용됩니다.
- 선택 사항: 이름, 경고 실행,상태 및 Creator 열 헤더 중 하나 이상을 클릭하여음소거 를 정렬합니다.
음소거의 이름을 선택하여 음소거 세부 정보 페이지를 확인합니다. 페이지에는 다음과 같은 세부 정보가 포함됩니다.
- 경고 사양
- 시작 시간
- 종료 시간
- 음소거 상태
- 실행 경고 수 및 목록
경고 규칙에 대한 정보를 얻으려면 다음을 수행합니다.
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 경고 → 경고 규칙 페이지로 이동합니다.
- 선택 사항: 필터 목록에서 필터를 선택하여 상태, 심각도 및 소스로 경고 규칙을 필터링합니다.
- 선택 사항: 이름,심각도, 경고 상태 및 소스 열 헤더 중 하나 이상을 클릭하여 경고 규칙을 정렬합니다.
경고 규칙 세부 정보 페이지를 보려면 경고 규칙 의 이름을 선택합니다. 페이지는 경고 규칙에 대한 다음 세부 정보를 제공합니다.
- 경고 규칙 이름, 심각도 및 설명.
- 경고를 실행하기 위한 조건을 정의하는 표현식입니다.
- 경고가 실행되기 위한 조건이 true여야 하는 시간입니다.
- 경고 규칙에 의해 관리되는 각 경고에 대한 그래프로, 경고가 실행되는 값을 표시합니다.
- 경고 규칙에 의해 관리되는 모든 경고의 테이블입니다.
5.2.3. 음소거 관리 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated 웹 콘솔에서 경고에 대한 음소거를 생성할 수 있습니다. 음소거를 생성한 후 이를 보고 편집하고 만료할 수 있습니다. 경고가 실행될 때 음소거된 경고에 대한 알림도 수신하지 않습니다.
음소거를 생성하면 Alertmanager Pod에 복제됩니다. 그러나 Alertmanager에 대한 영구 스토리지를 구성하지 않으면 음소거가 손실될 수 있습니다. 예를 들어 모든 Alertmanager Pod가 동시에 다시 시작되면 이러한 상황이 발생할 수 있습니다.
5.2.3.1. 음소거 경고 링크 복사링크가 클립보드에 복사되었습니다!
특정 경고를 음소거하거나 사용자가 정의한 사양과 일치하는 경고를 음소거할 수 있습니다.
사전 요구 사항
-
클러스터 관리자인 경우
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. 관리자가 아닌 사용자인 경우 다음 사용자 역할이 있는 사용자로 클러스터에 액세스할 수 있습니다.
-
Alertmanager에 액세스할 수 있는
cluster-monitoring-view클러스터 역할입니다. -
경고를 생성하고 음소거할 수 있는
monitoring-alertmanager-edit역할입니다.
-
Alertmanager에 액세스할 수 있는
프로세스
특정 경고를 음소거하려면 다음을 수행합니다.
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 경고 → 경고로 이동합니다.
-
음소거할 경고의 경우
를 클릭하고 음소거 경고를 선택하여 선택한 경고에 대한 기본 구성으로 음소거 경고 페이지를 엽니다.
선택 사항: 음소거의 기본 구성 세부 정보를 변경합니다.
참고음소거를 저장하기 전에 코멘트를 추가해야 합니다.
- 음소거를 저장하려면 음소거 를 클릭합니다.
일련의 경고를 음소거하려면 다음을 수행합니다.
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 경고 → 음소거 로 이동합니다.
- 음소거 생성을 클릭합니다.
음소거 생성 페이지에서 경고의 일정, 기간 및 레이블 세부 정보를 설정합니다.
참고음소거를 저장하기 전에 코멘트를 추가해야 합니다.
- 입력한 라벨과 일치하는 경고에 대한 음소거를 생성하려면 음소거 를 클릭합니다.
5.2.3.2. 음소거 편집 링크 복사링크가 클립보드에 복사되었습니다!
음소거를 편집하여 기존 음소거가 만료되고 변경된 구성으로 새 음소거를 생성할 수 있습니다.
사전 요구 사항
-
클러스터 관리자인 경우
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. 관리자가 아닌 사용자인 경우 다음 사용자 역할이 있는 사용자로 클러스터에 액세스할 수 있습니다.
-
Alertmanager에 액세스할 수 있는
cluster-monitoring-view클러스터 역할입니다. -
경고를 생성하고 음소거할 수 있는
monitoring-alertmanager-edit역할입니다.
-
Alertmanager에 액세스할 수 있는
프로세스
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 경고 → 음소거 로 이동합니다.
수정하려는 음소거의 경우
를 클릭하고 음소거 편집을 선택합니다.
또는 작업을 클릭하고 음소거 의 음소거 세부 정보 페이지에서 음소거 편집을 선택할 수 있습니다.
- 음소거 편집 페이지에서 변경 후 음소거 를 클릭합니다. 이렇게 하면 기존 음소거가 만료되고 업데이트된 구성으로 생성됩니다.
5.2.3.3. 음소거 만료 링크 복사링크가 클립보드에 복사되었습니다!
단일 음소거 또는 여러 음소거를 만료할 수 있습니다. 음소거를 만료하면 영구적으로 비활성화됩니다.
만료된 경고를 삭제할 수 없습니다. 120시간 이상 경과한 음소거는 가비지 수집됩니다.
사전 요구 사항
-
클러스터 관리자인 경우
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. 관리자가 아닌 사용자인 경우 다음 사용자 역할이 있는 사용자로 클러스터에 액세스할 수 있습니다.
-
Alertmanager에 액세스할 수 있는
cluster-monitoring-view클러스터 역할입니다. -
경고를 생성하고 음소거할 수 있는
monitoring-alertmanager-edit역할입니다.
-
Alertmanager에 액세스할 수 있는
프로세스
- 모니터링 → 경고 → 음소거 로 이동합니다.
- 만료하려는 음소거 또는 음소거의 경우 해당 행의 확인란을 선택합니다.
Expire 1 음소거 를 클릭하여 선택한 단일 음소거를 만료하거나 < n > 음소거 를 만료하여 선택한 여러 음소거를 만료합니다. 여기서 < n >은 선택한 음소거 수입니다.
또는 단일 음소거를 만료하려면 작업을 클릭하고 음소거에 대한 음소거 세부 정보 페이지에서 음소거 만료를 선택할 수 있습니다.
5.2.4. 사용자 정의 프로젝트에 대한 경고 규칙 관리 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated에서는 사용자 정의 프로젝트에 대한 경고 규칙을 생성, 보기, 편집 및 제거할 수 있습니다. 이러한 경고 규칙은 선택한 메트릭의 값에 따라 경고를 트리거합니다.
5.2.4.1. 사용자 정의 프로젝트에 대한 경고 규칙 생성 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 프로젝트에 대한 경고 규칙을 생성할 수 있습니다. 이러한 경고 규칙은 선택한 메트릭의 값에 따라 경고를 트리거합니다.
사용자가 경고의 영향 및 원인을 이해할 수 있도록 하려면 경고 규칙에 경고 메시지 및 심각도 값이 포함되어 있어야 합니다.
사전 요구 사항
- 사용자 정의 프로젝트에 대한 모니터링을 활성화했습니다.
-
클러스터 관리자로 로그인하거나 경고 규칙을 생성하려는 프로젝트에 대한
monitoring-rules-edit클러스터 역할이 있는 사용자로 로그인했습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
-
경고 규칙에 사용할 YAML 파일을 생성합니다. 이 예에서는
example-app-alerting-rule.yaml이라고 합니다. YAML 파일에 경고 규칙 구성을 추가합니다. 다음 예제에서는
example-alert라는 새 경고 규칙을 생성합니다. 경고 규칙은 샘플 서비스에서 노출된version메트릭이0이 되면 경고를 실행합니다.apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: name: example-alert namespace: ns1 spec: groups: - name: example rules: - alert: VersionAlert1 for: 1m2 expr: version{job="prometheus-example-app"} == 03 labels: severity: warning4 annotations: message: This is an example alert.5 구성 파일을 리클러스터에 적용합니다.
$ oc apply -f example-app-alerting-rule.yaml
5.2.4.2. 사용자 정의 프로젝트에 대한 프로젝트 간 경고 규칙 생성 링크 복사링크가 클립보드에 복사되었습니다!
user-workload-monitoring-config 구성 맵에서 프로젝트를 구성하여 origin 프로젝트에 바인딩되지 않은 경고 규칙을 생성할 수 있습니다. 그러면 이러한 프로젝트에서 생성된 PrometheusRule 오브젝트가 모든 프로젝트에 적용됩니다.
따라서 각 사용자 프로젝트에 개별 PrometheusRule 오브젝트가 없는 대신 여러 사용자 정의 프로젝트에 적용되는 일반 경고 규칙이 있을 수 있습니다. PrometheusRule 오브젝트에서 PromQL 쿼리를 사용하여 경고 규칙에서 포함되거나 제외되는 프로젝트를 필터링할 수 있습니다.
사전 요구 사항
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다.참고관리자가 아닌 사용자인 경우 경고 규칙을 생성하려는 프로젝트에 대한
monitoring-rules-edit클러스터 역할이 있는 경우에도 프로젝트 간 경고 규칙을 생성할 수 있습니다. 그러나 클러스터 관리자만 수행할 수 있는namespacesWithoutLabelEnforcement속성의user-workload-monitoring-config구성 맵에 해당 프로젝트를 구성해야 합니다.-
user-workload-monitoring-configConfigMap오브젝트가 있습니다. 이 오브젝트는 클러스터가 생성될 때 기본적으로 생성됩니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
openshift-user-workload-monitoring프로젝트에서user-workload-monitoring-config구성 맵을 편집합니다.$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config특정 프로젝트에 바인딩되지 않은 경고 규칙을 생성하려는 프로젝트를 구성합니다.
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | namespacesWithoutLabelEnforcement: [ <namespace1>, <namespace2> ]1 # ...- 1
- 프로젝트 간 경고 규칙을 생성할 하나 이상의 프로젝트를 지정합니다. 사용자 정의 모니터링에 대한 Prometheus 및 Thanos Ruler는 이러한 프로젝트에서 생성된
PrometheusRule오브젝트에namespace레이블을 적용하지 않으므로 모든 프로젝트에PrometheusRule오브젝트를 적용할 수 있습니다.
-
경고 규칙에 사용할 YAML 파일을 생성합니다. 이 예제에서는
example-cross-project-alerting-rule.yaml이라고 합니다. YAML 파일에 경고 규칙 구성을 추가합니다. 다음 예제에서는
example-security라는 새 프로젝트 간 경고 규칙을 생성합니다. 경고 규칙은 사용자 프로젝트에서 restricted Pod 보안 정책을 적용하지 않으면 실행됩니다.프로젝트 간 경고 규칙의 예
apiVersion: monitoring.coreos.com/v1 kind: PrometheusRule metadata: name: example-security namespace: ns11 spec: groups: - name: pod-security-policy rules: - alert: "ProjectNotEnforcingRestrictedPolicy"2 for: 5m3 expr: kube_namespace_labels{namespace!~"(openshift|kube).*|default",label_pod_security_kubernetes_io_enforce!="restricted"}4 annotations: message: "Restricted policy not enforced. Project {{ $labels.namespace }} does not enforce the restricted pod security policy."5 labels: severity: warning6 - 1
namespacesWithoutLabelEnforcement필드에 정의된 프로젝트를 지정해야 합니다.- 2
- 생성할 경고 규칙의 이름입니다.
- 3
- 경고가 실행되기 전에 조건이 true여야 하는 기간입니다.
- 4
- 새 규칙을 정의하는 PromQL 쿼리 표현식입니다.
네임스페이스라벨에서 레이블 일치자를 사용하여 경고 규칙에서 포함되거나 제외되는 프로젝트를 필터링할 수 있습니다. - 5
- 경고와 연결된 메시지입니다.
- 6
- 경고 규칙이 경고에 할당하는 심각도입니다.중요
namespacesWithoutLabelEnforcement필드에 지정한 프로젝트 중 하나에만 특정 프로젝트 간 경고 규칙을 생성해야 합니다. 여러 프로젝트에서 동일한 프로젝트 간 경고 규칙을 생성하면 경고가 반복됩니다.
구성 파일을 리클러스터에 적용합니다.
$ oc apply -f example-cross-project-alerting-rule.yaml
5.2.4.3. 사용자 정의 프로젝트의 경고 규칙에 액세스 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 프로젝트에 대한 경고 규칙을 나열하려면 프로젝트의 monitoring-rules-view 클러스터 역할이 할당되어야 합니다.
사전 요구 사항
- 사용자 정의 프로젝트에 대한 모니터링을 활성화했습니다.
-
프로젝트에 대한
monitoring-rules-view클러스터 역할이 있는 사용자로 로그인했습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
<project>에서 경고 규칙을 나열하려면 다음을 수행합니다.$ oc -n <project> get prometheusrule경고 규칙의 구성을 나열하려면 다음을 실행합니다.
$ oc -n <project> get prometheusrule <rule> -o yaml
5.2.4.4. 사용자 정의 프로젝트에 대한 경고 규칙 제거 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 프로젝트에 대한 경고 규칙을 제거할 수 있습니다.
사전 요구 사항
- 사용자 정의 프로젝트에 대한 모니터링을 활성화했습니다.
-
클러스터 관리자로 로그인하거나 경고 규칙을 생성하려는 프로젝트에 대한
monitoring-rules-edit클러스터 역할이 있는 사용자로 로그인했습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
<
namespace>에서 규칙 <alerting_rule>을 제거하려면 다음을 실행합니다.$ oc -n <namespace> delete prometheusrule <alerting_rule>
6장. 모니터링 문제 조사 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 프로젝트 모니터링과 관련된 일반적인 문제에 대한 문제 해결 단계를 찾습니다.
6.1. 사용자 정의 프로젝트 메트릭을 사용할 수 없는 이유 확인 링크 복사링크가 클립보드에 복사되었습니다!
사용자 정의 프로젝트를 모니터링할 때 메트릭이 표시되지 않는 경우 다음 단계에 따라 문제를 해결합니다.
프로세스
지표 이름을 쿼리하고 프로젝트가 올바른지 확인합니다.
- 웹 콘솔의 개발자 화면에서 모니터링 을 클릭하고 Metrics 탭으로 이동합니다.
- Project: 목록에서 메트릭을 보려는 프로젝트를 선택합니다.
쿼리 선택 목록에서 기존 쿼리를 선택하거나 표현식 필드에 PromQL 쿼리를 추가하여 사용자 지정 쿼리를 실행합니다.
메트릭은 차트에 표시됩니다.
쿼리는 프로젝트별로 수행해야 합니다. 표시된 지표는 선택한 프로젝트와 관련이 있습니다.
메트릭을 원하는 Pod가 메트릭을 적극적으로 제공하고 있는지 확인합니다. Pod에 다음
oc exec명령을 실행하여 pod ,포트,/metrics를 대상으로 합니다.$ oc exec <sample_pod> -n <sample_namespace> -- curl <target_pod_IP>:<port>/metrics참고curl이 설치된 포드에서 명령을 실행해야 합니다.다음 예제 출력은 유효한 버전 지표가 있는 결과를 보여줍니다.
출력 예
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed # HELP version Version information about this binary-- --:--:-- --:--:-- 0 # TYPE version gauge version{version="v0.1.0"} 1 100 102 100 102 0 0 51000 0 --:--:-- --:--:-- --:--:-- 51000잘못된 출력은 해당 애플리케이션에 문제가 있음을 나타냅니다.
-
PodMonitorCRD를 사용하는 경우 일치하는 라벨을 사용하여PodMonitorCRD가 올바른 Pod를 가리키도록 구성되었는지 확인합니다. 자세한 내용은 Prometheus Operator 설명서를 참조하십시오. ServiceMonitorCRD를 사용하고 Pod의/metrics엔드포인트가 지표 데이터를 표시하는 경우 다음 단계를 수행하여 구성을 확인합니다.서비스가 올바른
/metrics엔드포인트를 가리키는지 확인합니다. 이 출력의 서비스레이블은 서비스 모니터레이블및 후속 단계에서 서비스에서 정의한/metrics엔드포인트와 일치해야 합니다.$ oc get service출력 예
apiVersion: v1 kind: Service metadata: labels: app: prometheus-example-app name: prometheus-example-app namespace: ns1 spec: ports: - port: 8080 protocol: TCP targetPort: 8080 name: web selector: app: prometheus-example-app type: ClusterIP다음과 같습니다.
kind- API 유형을 지정합니다. 이 예에서는 서비스 API를 보여줍니다.
metadata.labels- 이 서비스에 사용되는 레이블을 지정합니다.
serviceIP,port,/metrics엔드포인트를 쿼리하여 이전에 Pod에서 실행한curl명령에서 동일한 메트릭을 확인합니다.다음 명령을 실행하여 서비스 IP를 찾습니다.
$ oc get service -n <target_namespace>/metrics엔드포인트를 쿼리합니다.$ oc exec <sample_pod> -n <sample_namespace> -- curl <service_IP>:<port>/metrics유효한 메트릭은 다음 예제에서 반환됩니다.
출력 예
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 102 100 102 0 0 51000 0 --:--:-- --:--:-- --:--:-- 99k # HELP version Version information about this binary # TYPE version gauge version{version="v0.1.0"} 1
레이블 일치를 사용하여
ServiceMonitor오브젝트가 필요한 서비스를 가리키도록 구성되었는지 확인합니다. 이렇게 하려면 oc get 서비스 출력의Service오브젝트를출력에서oc get servicemonitorServiceMonitor오브젝트와 비교합니다. 메트릭을 표시하려면 라벨이 일치해야 합니다.예를 들어 이전 단계에서
Service오브젝트에app: prometheus-example-app레이블이 있고ServiceMonitor오브젝트에 동일한app: prometheus-example-appmatch 라벨이 있는 방법을 확인합니다.
- 구성이 유효하고 메트릭을 사용할 수 없는 경우 지원 팀에 문의하십시오.
6.2. Prometheus가 많은 디스크 공간을 소비하는 이유 확인 링크 복사링크가 클립보드에 복사되었습니다!
개발자는 라벨을 생성하여 키-값 쌍의 형식으로 메트릭의 속성을 정의할 수 있습니다. 잠재적인 키-값 쌍의 수는 속성에 사용 가능한 값의 수에 해당합니다. 무제한의 잠재적인 값이 있는 속성을 바인딩되지 않은 속성이라고 합니다. 예를 들어, customer_id 속성은 무제한 가능한 값이 있기 때문에 바인딩되지 않은 속성입니다.
할당된 모든 키-값 쌍에는 고유한 시계열이 있습니다. 라벨에 있는 바인딩되지 않은 많은 속성을 사용하면 생성되는 시계열 수가 기하급수적으로 증가할 수 있습니다. 이는 Prometheus 성능에 영향을 미칠 수 있으며 많은 디스크 공간을 소비할 수 있습니다.
Prometheus가 많은 디스크를 사용하는 경우 다음 조치를 사용할 수 있습니다.
- 가장 많은 시계열 데이터를 생성하는 라벨에 대한 자세한 내용은 Prometheus HTTP API를 사용하여 시계열 데이터베이스(TSDB) 상태를 확인합니다. 이렇게 하려면 클러스터 관리자 권한이 필요합니다.
- 수집 중인 스크랩 샘플 수를 확인합니다.
사용자 정의 메트릭에 할당되는 바인딩되지 않은 속성의 수를 줄임으로써 생성되는 고유의 시계열 수를 감소합니다.
참고사용 가능한 값의 제한된 집합에 바인딩되는 속성을 사용하면 가능한 키 - 값 쌍 조합의 수가 줄어듭니다.
- 사용자 정의 프로젝트에서 스크랩할 수 있는 샘플 수를 제한합니다. 여기에는 클러스터 관리자 권한이 필요합니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
- OpenShift Dedicated 웹 콘솔에서 모니터링 → 메트릭 으로 이동합니다.
Expression 필드에 PromQL(Prometheus Query Language) 쿼리를 입력합니다. 다음 예제 쿼리는 디스크 공간 소비가 증가할 수 있는 높은 카디널리티 메트릭을 식별하는 데 도움이 됩니다.
다음 쿼리를 실행하면 스크랩 샘플 수가 가장 많은 10개의 작업을 확인할 수 있습니다.
topk(10, max by(namespace, job) (topk by(namespace, job) (1, scrape_samples_post_metric_relabeling)))다음 쿼리를 실행하면 지난 시간에 가장 많은 시계열 데이터를 생성한 10개의 작업을 식별하여 시계열 churn을 정확하게 지정할 수 있습니다.
topk(10, sum by(namespace, job) (sum_over_time(scrape_series_added[1h])))
예상 스크랩 샘플 수보다 많은 메트릭에 할당된 바인딩되지 않은 라벨 값의 수를 조사합니다.
- 메트릭이 사용자 정의 프로젝트와 관련된 경우 워크로드에 할당된 메트릭의 키-값 쌍을 확인합니다. 이는 애플리케이션 수준에서 Prometheus 클라이언트 라이브러리를 통해 구현됩니다. 라벨에서 참조되는 바인딩되지 않은 속성의 수를 제한하십시오.
- 메트릭이 핵심 OpenShift Dedicated 프로젝트와 관련된 경우 Red Hat 고객 포털에서 Red Hat 지원 케이스를 생성합니다.
dedicated-admin으로 로그인할 때 다음 단계에 따라 Prometheus HTTP API를 사용하여 TSDB 상태를 확인합니다.다음 명령을 실행하여 Prometheus API 경로 URL을 가져옵니다.
$ HOST=$(oc -n openshift-monitoring get route prometheus-k8s -ojsonpath='{.status.ingress[].host}')다음 명령을 실행하여 인증 토큰을 추출합니다.
$ TOKEN=$(oc whoami -t)다음 명령을 실행하여 Prometheus의 TSDB 상태를 쿼리합니다.
$ curl -H "Authorization: Bearer $TOKEN" -k "https://$HOST/api/v1/status/tsdb"출력 예
"status": "success","data":{"headStats":{"numSeries":507473, "numLabelPairs":19832,"chunkCount":946298,"minTime":1712253600010, "maxTime":1712257935346},"seriesCountByMetricName": [{"name":"etcd_request_duration_seconds_bucket","value":51840}, {"name":"apiserver_request_sli_duration_seconds_bucket","value":47718}, ...
6.3. Prometheus에 대해 KubePersistentVolumeFillingUp 경고가 실행됨 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 Prometheus에 대해 KubePersistentVolumeFillingUp 경고가 트리거되는 문제를 해결할 수 있습니다.
openshift-monitoring 프로젝트의 prometheus-k8s-* Pod에서 클레임한 PV(영구 볼륨)가 남아 있는 총 공간이 3% 미만인 경우 발생합니다. 이로 인해 Prometheus가 비정상적으로 작동할 수 있습니다.
KubePersistentVolumeFillingUp 경고 두 가지가 있습니다.
-
critical alert: mounted PV의 총 공간이 3% 미만이면
severity="critical"라벨이 있는 경고가 트리거됩니다. -
경고 알림: 마운트된 PV의 총 공간이 15 % 미만이고 4 일 이내에 채울 것으로 예상되는 경우
severity="warning"라벨이 있는 경고가 트리거됩니다.
이 문제를 해결하려면 Prometheus TSDB(time-series database) 블록을 제거하여 PV에 더 많은 공간을 생성할 수 있습니다.
사전 요구 사항
-
dedicated-admin역할의 사용자로 클러스터에 액세스할 수 있습니다. -
OpenShift CLI(
oc)가 설치되어 있습니다.
프로세스
다음 명령을 실행하여 가장 오래된 것에서 최신으로 정렬된 모든 TSDB 블록의 크기를 나열합니다.
$ oc debug <prometheus_k8s_pod_name> -n openshift-monitoring \ -c prometheus --image=$(oc get po -n openshift-monitoring <prometheus_k8s_pod_name> \ -o jsonpath='{.spec.containers[?(@.name=="prometheus")].image}') \ -- sh -c 'cd /prometheus/;du -hs $(ls -dtr */ | grep -Eo "[0-9|A-Z]{26}")'&
lt;prometheus_k8s_pod_name>을KubePersistentVolumeFillingUp경고 설명에 언급된 Pod로 바꿉니다.출력 예
308M 01HVKMPKQWZYWS8WVDAYQHNMW6 52M 01HVK64DTDA81799TBR9QDECEZ 102M 01HVK64DS7TRZRWF2756KHST5X 140M 01HVJS59K11FBVAPVY57K88Z11 90M 01HVH2A5Z58SKT810EM6B9AT50 152M 01HV8ZDVQMX41MKCN84S32RRZ1 354M 01HV6Q2N26BK63G4RYTST71FBF 156M 01HV664H9J9Z1FTZD73RD1563E 216M 01HTHXB60A7F239HN7S2TENPNS 104M 01HTHMGRXGS0WXA3WATRXHR36B제거할 수 있는 블록 수와 블록을 확인한 다음 블록을 제거합니다. 다음 예제 명령은
prometheus-k8s-0Pod에서 가장 오래된 세 가지 Prometheus TSDB 블록을 제거합니다.$ oc debug prometheus-k8s-0 -n openshift-monitoring \ -c prometheus --image=$(oc get po -n openshift-monitoring prometheus-k8s-0 \ -o jsonpath='{.spec.containers[?(@.name=="prometheus")].image}') \ -- sh -c 'ls -latr /prometheus/ | egrep -o "[0-9|A-Z]{26}" | head -3 | \ while read BLOCK; do rm -r /prometheus/$BLOCK; done'마운트된 PV의 사용량을 확인하고 다음 명령을 실행하여 사용 가능한 공간이 충분한지 확인합니다.
$ oc debug <prometheus_k8s_pod_name> -n openshift-monitoring \ --image=$(oc get po -n openshift-monitoring <prometheus_k8s_pod_name> \ -o jsonpath='{.spec.containers[?(@.name=="prometheus")].image}') -- df -h /prometheus/&
lt;prometheus_k8s_pod_name>을KubePersistentVolumeFillingUp경고 설명에 언급된 Pod로 바꿉니다.다음 예제 출력에서는
prometheus-k8s-0Pod에서 클레임한 마운트된 PV가 남아 있는 공간의 63%를 보여줍니다.출력 예
Starting pod/prometheus-k8s-0-debug-j82w4 ... Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p4 40G 15G 40G 37% /prometheus Removing debug pod ...
7장. Cluster Monitoring Operator에 대한 구성 맵 참조 링크 복사링크가 클립보드에 복사되었습니다!
7.1. Cluster Monitoring Operator 구성 참조 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Dedicated 클러스터 모니터링의 일부는 구성할 수 있습니다. API는 다양한 구성 맵에 정의된 매개변수를 설정하여 액세스할 수 있습니다.
-
사용자 정의 프로젝트를 모니터링하는 모니터링 구성 요소를 구성하려면
openshift-user-workload-monitoring네임스페이스에서user-workload-monitoring-config라는ConfigMap오브젝트를 편집합니다. 이러한 구성은 UserWorkloadConfiguration 에 의해 정의됩니다.
구성 파일은 항상 구성 맵 데이터의 config.yaml 키 아래에 정의됩니다.
- 모니터링 스택의 모든 구성 매개변수가 노출되는 것은 아닙니다. 이 참조에 나열된 매개변수 및 필드만 구성에 지원됩니다. 지원되는 구성에 대한 자세한 내용은 모니터링 유지 관리 및 지원을 참조하십시오.
- 클러스터 모니터링 구성은 선택 사항입니다.
- 구성이 없거나 비어 있는 경우 기본값이 사용됩니다.
-
구성에 잘못된 YAML 데이터가 있거나 초기 검증을 우회하는 지원되지 않거나 중복된 필드가 포함된 경우 Cluster Monitoring Operator가 리소스 조정을 중지하고 Operator의 상태 조건에서
Degraded=True상태를 보고합니다.
7.2. AdditionalAlertmanagerConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.2.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
additional AlertmanagerConfig 리소스는 구성 요소가 추가 Alertmanager 인스턴스와 통신하는 방법에 대한 설정을 정의합니다.
7.2.2. 필수 항목 링크 복사링크가 클립보드에 복사되었습니다!
-
apiVersion
에 나타납니다. PrometheusK8sConfig,PrometheusRestrictedConfig,ThanosRulerConfig
| 속성 | 유형 | 설명 |
|---|---|---|
| apiVersion | string |
Alertmanager의 API 버전을 정의합니다. |
| bearerToken | *v1.SecretKeySelector | Alertmanager에 인증할 때 사용할 전달자 토큰이 포함된 시크릿 키 참조를 정의합니다. |
| pathPrefix | string | 내보내기 끝점 경로 앞에 추가할 경로 접두사를 정의합니다. |
| 스키마 | string |
Alertmanager 인스턴스와 통신할 때 사용할 URL 스키마를 정의합니다. 가능한 값은 |
| staticConfigs | []string |
< |
| timeout | *string | 경고를 보낼 때 사용되는 시간 초과 값을 정의합니다. |
| tlsConfig | Alertmanager 연결에 사용할 TLS 설정을 정의합니다. |
7.3. AlertmanagerMainConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.3.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
AlertmanagerMainConfig 리소스는 openshift-monitoring 네임스페이스에서 Alertmanager 구성 요소에 대한 설정을 정의합니다.
ClusterMonitoringConfiguration에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| enabled | *bool |
|
| enableUserAlertmanagerConfig | bool |
|
| logLevel | string |
Alertmanager의 로그 수준 설정을 정의합니다. 가능한 값은 |
| nodeSelector | map[string]string | Pod가 예약된 노드를 정의합니다. |
| resources | *v1.ResourceRequirements | Alertmanager 컨테이너에 대한 리소스 요청 및 제한을 정의합니다. |
| secrets | []string |
Alertmanager에 마운트할 시크릿 목록을 정의합니다. 보안은 Alertmanager 오브젝트와 동일한 네임스페이스 내에 있어야 합니다. 이는 |
| 허용 오차 | []v1.Toleration | Pod에 대한 허용 오차를 정의합니다. |
| topologySpreadConstraints | []v1.TopologySpreadConstraint | Pod의 토폴로지 분배 제약 조건을 정의합니다. |
| volumeClaimTemplate | *monv1.EmbeddedPersistentVolumeClaim | Alertmanager에 대한 영구 스토리지를 정의합니다. 이 설정을 사용하여 스토리지 클래스, 볼륨 크기, 이름을 포함한 영구 볼륨 클레임을 구성합니다. |
7.4. AlertmanagerUserWorkloadConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.4.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
AlertmanagerUserWorkloadConfig 리소스는 사용자 정의 프로젝트에 사용되는 Alertmanager 인스턴스의 설정을 정의합니다.
UserWorkloadConfiguration에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| enabled | bool |
|
| enableAlertmanagerConfig | bool |
|
| logLevel | string |
사용자 워크로드 모니터링에 대한 Alertmanager의 로그 수준 설정을 정의합니다. 가능한 값은 |
| resources | *v1.ResourceRequirements | Alertmanager 컨테이너에 대한 리소스 요청 및 제한을 정의합니다. |
| secrets | []string |
Alertmanager에 마운트할 시크릿 목록을 정의합니다. 보안은 Alertmanager 오브젝트와 동일한 네임스페이스 내에 있어야 합니다. 이는 |
| nodeSelector | map[string]string | Pod가 예약된 노드를 정의합니다. |
| 허용 오차 | []v1.Toleration | Pod에 대한 허용 오차를 정의합니다. |
| topologySpreadConstraints | []v1.TopologySpreadConstraint | Pod의 토폴로지 분배 제약 조건을 정의합니다. |
| volumeClaimTemplate | *monv1.EmbeddedPersistentVolumeClaim | Alertmanager에 대한 영구 스토리지를 정의합니다. 이 설정을 사용하여 스토리지 클래스, 볼륨 크기 및 이름을 포함한 영구 볼륨 클레임을 구성합니다. |
7.5. ClusterMonitoringConfiguration 링크 복사링크가 클립보드에 복사되었습니다!
7.5.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
ClusterMonitoringConfiguration 리소스는 openshift-monitoring 네임스페이스의 cluster-monitoring-config 구성 맵을 통해 기본 플랫폼 모니터링 스택을 사용자 지정하는 설정을 정의합니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| alertmanagerMain |
| |
| enableUserWorkload | *bool |
|
| userWorkload |
| |
| kubeStateMetrics |
| |
| metricsServer |
| |
| prometheusK8s |
| |
| prometheusOperator |
| |
| prometheusOperatorAdmissionWebhook |
| |
| openshiftStateMetrics |
| |
| telemeterClient |
| |
| thanosQuerier |
| |
| nodeExporter |
| |
| monitoringPlugin |
|
7.6. KubeStateMetricsConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.6.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
KubeStateMetricsConfig 리소스는 kube-state-metrics 에이전트의 설정을 정의합니다.
ClusterMonitoringConfiguration에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| nodeSelector | map[string]string | Pod가 예약된 노드를 정의합니다. |
| resources | *v1.ResourceRequirements |
|
| 허용 오차 | []v1.Toleration | Pod에 대한 허용 오차를 정의합니다. |
| topologySpreadConstraints | []v1.TopologySpreadConstraint | Pod의 토폴로지 분배 제약 조건을 정의합니다. |
7.7. MetricsServerConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.7.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
MetricsServerConfig 리소스는 Metrics 서버 구성 요소에 대한 설정을 정의합니다.
ClusterMonitoringConfiguration에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| audit | *Audit |
Metrics 서버 인스턴스에서 사용하는 감사 구성을 정의합니다. 가능한 프로필 값은 |
| nodeSelector | map[string]string | Pod가 예약된 노드를 정의합니다. |
| 허용 오차 | []v1.Toleration | Pod에 대한 허용 오차를 정의합니다. |
| 상세 정보 | uint8 |
Metrics Server에 대한 로그 메시지의 상세 수준을 정의합니다. 유효한 값은 양의 정수이며 10 이상의 값은 일반적으로 필요하지 않습니다. 기본값은 |
| resources | *v1.ResourceRequirements | Metrics 서버 컨테이너에 대한 리소스 요청 및 제한을 정의합니다. |
| topologySpreadConstraints | []v1.TopologySpreadConstraint | Pod의 토폴로지 분배 제약 조건을 정의합니다. |
7.8. MonitoringPluginConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.8.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
MonitoringPluginConfig 리소스는 openshift-monitoring 네임스페이스의 웹 콘솔 플러그인 구성 요소에 대한 설정을 정의합니다.
ClusterMonitoringConfiguration에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| nodeSelector | map[string]string | Pod가 예약된 노드를 정의합니다. |
| resources | *v1.ResourceRequirements |
|
| 허용 오차 | []v1.Toleration | Pod에 대한 허용 오차를 정의합니다. |
| topologySpreadConstraints | []v1.TopologySpreadConstraint | Pod의 토폴로지 분배 제약 조건을 정의합니다. |
7.9. NodeExporterCollectorBuddyInfoConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.9.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
NodeExporterCollectorBuddyInfoConfig 리소스는 node-exporter 에이전트의 buddyinfo 수집기의 온/오프 스위치로 작동합니다. 기본적으로 buddyinfo 수집기는 비활성화되어 있습니다.
NodeExporterCollectorConfig에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| enabled | bool |
|
7.10. NodeExporterCollectorConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.10.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
NodeExporterCollectorConfig 리소스는 node-exporter 에이전트의 개별 수집기에 대한 설정을 정의합니다.
NodeExporterConfig에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| cpufreq |
CPU 빈도 통계를 수집하는 | |
| tcpstat |
TCP 연결 통계를 수집하는 | |
| netdev |
네트워크 장치 통계를 수집하는 | |
| netclass |
네트워크 장치에 대한 정보를 수집하는 | |
| buddyinfo |
| |
| mountstats |
NFS 볼륨 I/O 활동에 대한 통계를 수집하는 | |
| ksmd |
커널 동일 페이지 병합 데몬에서 통계를 수집하는 | |
| 프로세스 |
시스템에서 실행 중인 | |
| systemd |
|
7.11. NodeExporterCollectorCpufreqConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.11.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
NodeExporterCollectorCpufreqConfig 리소스를 사용하여 node-exporter 에이전트의 cpufreq 수집기를 활성화하거나 비활성화합니다. 기본적으로 cpufreq 수집기는 비활성화되어 있습니다. 특정 상황에서 cpufreq 수집기를 활성화하면 코어 수가 많은 시스템의 CPU 사용량이 증가합니다. 이 컬렉터를 활성화하고 여러 코어가 있는 시스템이 있는 경우 시스템에 과도한 CPU 사용량이 있는지 모니터링합니다.
NodeExporterCollectorConfig에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| enabled | bool |
|
7.12. NodeExporterCollectorKSMDConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.12.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
NodeExporterCollectorKSMDConfig 리소스를 사용하여 node-exporter 에이전트의 ksmd 수집기를 활성화하거나 비활성화합니다. 기본적으로 ksmd 수집기는 비활성화되어 있습니다.
NodeExporterCollectorConfig에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| enabled | bool |
|
7.13. NodeExporterCollectorMountStatsConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.13.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
NodeExporterCollectorMountStatsConfig 리소스를 사용하여 node-exporter 에이전트의 mountstats 수집기를 활성화하거나 비활성화합니다. 기본적으로 mountstats 수집기는 비활성화되어 있습니다. 수집기를 활성화하면 다음 메트릭을 사용할 수 있게 됩니다. node_mountstats_nfs_read_bytes_total,node_mountstats_nfs_write_bytes_total, node_mountstats_nfs_operations_requests_total. 이러한 메트릭은 높은 카디널리티를 가질 수 있습니다. 이 수집기를 활성화하면 prometheus-k8s Pod에 대한 메모리 사용량 증가를 면밀히 모니터링합니다.
NodeExporterCollectorConfig에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| enabled | bool |
|
7.14. NodeExporterCollectorNetClassConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.14.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
NodeExporterCollectorNetClassConfig 리소스를 사용하여 node-exporter 에이전트의 netclass 수집기를 활성화하거나 비활성화합니다. 기본적으로 netclass 수집기는 활성화됩니다. 이 수집기를 비활성화하면 이러한 메트릭을 사용할 수 없게 됩니다. node_network_info,node_network_address_assign_type, node_network_carrier_changes_changes_total ,node_network_carrier _changes_changes_total , node_network_carrier_down_changes _changes_total ,, node_network_carrier_changes_total , node_network_carrier_changes_totalnode_network_carrier_changes_total node_network_device_id,node_network_dormant,,node_network_iface_ idnode_network_iface_link _link_mode , node_network_mtu_bytes ,node_network_iface_link_mode,node_network_mtu_bytes node_network_name_assign_type,node_network_net_dev_group,node_network_speed_bytes,node_network_transmit_queue_length, node_network_protocol_type.
NodeExporterCollectorConfig에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| enabled | bool |
|
| useNetlink | bool |
|
7.15. NodeExporterCollectorNetDevConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.15.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
NodeExporterCollectorNetDevConfig 리소스를 사용하여 node-exporter 에이전트의 netdev 수집기를 활성화하거나 비활성화합니다. 기본적으로 netdev 수집기가 활성화됩니다. 비활성화된 경우 이러한 메트릭을 사용할 수 없게 됩니다. node_network_receive_bytes_total,node_network_receive_compressed_total,node_network_receive_drop_total,node_network_receive_errs_total,node_network_receive_fifo_total,node_network_receive_frame_frame_total node_network_receive_multicast_total,node_network_receive_nohandler_total,node_network_receive_packets_total,node_network_transmit_bytes_total,node_network_transmit_carrier_total, node_network_transmit_colls_total,node_network_transmit_compressed_total,node_network_transmit_drop_total,node_network_transmit_fifo_total,node_network_transmit_fifo_total, node_network_transmit_packets_total.
NodeExporterCollectorConfig에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| enabled | bool |
|
7.16. NodeExporterCollectorProcessesConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.16.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
NodeExporterCollectorProcessesConfig 리소스를 사용하여 node-exporter 에이전트의 프로세스 수집기를 활성화하거나 비활성화합니다. 수집기가 활성화되면 다음 메트릭을 사용할 수 있습니다. node_processes_max_processes,node_processes_pids,node_processes_state,node_processes_threads,node_processes_threads_state. 메트릭 node_processes_state 및 node_processes_threads_state 는 프로세스 및 스레드 상태에 따라 각각 최대 5개의 시리즈를 가질 수 있습니다. 프로세스 또는 스레드의 가능한 상태는 D (UNINTERRUP Cryostat_SLEEP), R (RUNNING & RUNNABLE), S (INTERRUP Cryostat_SLEEP), T (STOPPED) 또는 Z (ZOMBIE)입니다. 기본적으로 프로세스 수집기는 비활성화되어 있습니다.
NodeExporterCollectorConfig에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| enabled | bool |
|
7.17. NodeExporterCollectorSystemdConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.17.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
NodeExporterCollectorSystemdConfig 리소스를 사용하여 node-exporter 에이전트의 systemd 수집기를 활성화하거나 비활성화합니다. 기본적으로 systemd 수집기는 비활성화되어 있습니다. 활성화하면 다음 메트릭을 사용할 수 있게 됩니다. node_systemd_system_running,node_systemd_units,node_systemd_version. 장치가 소켓을 사용하는 경우 다음과 같은 지표도 생성합니다. node_systemd_socket_accepted_connections_total,node_systemd_socket_current_connections,node_systemd_socket_refused_connections_total. units 매개 변수를 사용하여 systemd 수집기에서 포함할 systemd 장치를 선택할 수 있습니다. 선택한 단위는 각 systemd 장치의 상태를 표시하는 node_systemd_unit_state 지표를 생성하는 데 사용됩니다. 그러나 이 메트릭의 카디널리티가 높을 수 있습니다(노드당 단위당 최소 5회). 선택한 단위의 긴 목록으로 이 수집기를 활성화하면 과도한 메모리 사용량에 대해 prometheus-k8s 배포를 모니터링합니다. node_systemd_timer_last_trigger_seconds 메트릭은 units 매개변수 값을 logrotate.timer 로 구성한 경우에만 표시됩니다.
NodeExporterCollectorConfig에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| enabled | bool |
|
| units | []string |
|
7.18. NodeExporterCollectorTcpStatConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.18.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
NodeExporterCollectorTcpStatConfig 리소스는 node-exporter 에이전트의 tcpstat 수집기의 온/오프 스위치로 작동합니다. 기본적으로 tcpstat 수집기는 비활성화되어 있습니다.
NodeExporterCollectorConfig에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| enabled | bool |
|
7.19. NodeExporterConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.19.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
NodeExporterConfig 리소스는 node-exporter 에이전트의 설정을 정의합니다.
ClusterMonitoringConfiguration에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| 수집기 | 활성화되는 수집기와 추가 구성 매개 변수를 정의합니다. | |
| maxProcs | uint32 |
node-exporter 프로세스가 실행될 CPU의 대상 수입니다. 기본값은 |
| ignoredNetworkDevices | *[]string |
|
| resources | *v1.ResourceRequirements |
|
7.20. OpenShiftStateMetricsConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.20.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
OpenShiftStateMetricsConfig 리소스는 openshift-state-metrics 에이전트의 설정을 정의합니다.
ClusterMonitoringConfiguration에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| nodeSelector | map[string]string | Pod가 예약된 노드를 정의합니다. |
| resources | *v1.ResourceRequirements |
|
| 허용 오차 | []v1.Toleration | Pod에 대한 허용 오차를 정의합니다. |
| topologySpreadConstraints | []v1.TopologySpreadConstraint | Pod의 토폴로지 분배 제약 조건을 정의합니다. |
7.21. PrometheusK8sConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.21.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
PrometheusK8sConfig 리소스는 Prometheus 구성 요소에 대한 설정을 정의합니다.
ClusterMonitoringConfiguration에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| additionalAlertmanagerConfigs | Prometheus 구성 요소에서 경고를 수신하는 추가 Alertmanager 인스턴스를 구성합니다. 기본적으로 추가 Alertmanager 인스턴스가 구성되지 않습니다. | |
| enforcedBodySizeLimit | string |
Prometheus 스크랩 메트릭에 대해 본문 크기 제한을 적용합니다. 스크랩된 대상의 본문 응답이 제한보다 크면 스크랩이 실패합니다. 다음 값은 유효합니다. 제한을 지정하지 않는 빈 값, Prometheus 크기 형식(예: |
| externalLabels | ExternalLabels | 페더레이션, 원격 스토리지 및 Alertmanager와 같은 외부 시스템과 통신할 때 모든 시계열 또는 경고에 추가할 레이블을 정의합니다. 유형은 map[string]string입니다. 기본적으로 라벨이 추가되지 않습니다. |
| logLevel | string |
Prometheus의 로그 수준 설정을 정의합니다. 가능한 값은 |
| nodeSelector | map[string]string | Pod가 예약된 노드를 정의합니다. |
| queryLogFile | string |
PromQL 쿼리가 기록되는 파일을 지정합니다. 이 설정은 파일 이름 중 하나일 수 있습니다. 이 경우 쿼리가 |
| remoteWrite | URL, 인증 및 레이블 재레이블 설정을 포함하여 원격 쓰기 구성을 정의합니다. | |
| resources | *v1.ResourceRequirements |
|
| retention | string |
Prometheus가 데이터를 유지하는 기간을 정의합니다. 이 정의는 |
| retentionSize | string |
데이터 블록에서 사용하는 최대 디스크 공간과 WAL(write-ahead log)을 정의합니다. 지원되는 값은 |
| 허용 오차 | []v1.Toleration | Pod에 대한 허용 오차를 정의합니다. |
| topologySpreadConstraints | []v1.TopologySpreadConstraint | Pod의 토폴로지 분배 제약 조건을 정의합니다. |
| collectionProfile | CollectionProfile |
Prometheus가 플랫폼 구성 요소에서 지표를 수집하는 데 사용하는 메트릭 컬렉션 프로필을 정의합니다. 지원되는 값은 |
| volumeClaimTemplate | *monv1.EmbeddedPersistentVolumeClaim | Prometheus의 영구 스토리지를 정의합니다. 이 설정을 사용하여 스토리지 클래스, 볼륨 크기 및 이름을 포함한 영구 볼륨 클레임을 구성합니다. |
7.22. PrometheusOperatorConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.22.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
PrometheusOperatorConfig 리소스는 Prometheus Operator 구성 요소에 대한 설정을 정의합니다.
ClusterMonitoringConfiguration,UserWorkloadConfiguration에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| logLevel | string |
Prometheus Operator의 로그 수준 설정을 정의합니다. 가능한 값은 |
| nodeSelector | map[string]string | Pod가 예약된 노드를 정의합니다. |
| resources | *v1.ResourceRequirements |
|
| 허용 오차 | []v1.Toleration | Pod에 대한 허용 오차를 정의합니다. |
| topologySpreadConstraints | []v1.TopologySpreadConstraint | Pod의 토폴로지 분배 제약 조건을 정의합니다. |
7.23. PrometheusOperatorAdmissionWebhookConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.23.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
PrometheusOperatorAdmissionWebhookConfig 리소스는 Prometheus Operator의 승인 Webhook 워크로드에 대한 설정을 정의합니다.
ClusterMonitoringConfiguration에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| resources | *v1.ResourceRequirements |
|
| topologySpreadConstraints | []v1.TopologySpreadConstraint | Pod의 토폴로지 분배 제약 조건을 정의합니다. |
7.24. PrometheusRestrictedConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.24.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
PrometheusRestrictedConfig 리소스는 사용자 정의 프로젝트를 모니터링하는 Prometheus 구성 요소의 설정을 정의합니다.
UserWorkloadConfiguration에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| scrapeInterval | string |
|
| evaluationInterval | string |
|
| additionalAlertmanagerConfigs | Prometheus 구성 요소에서 경고를 수신하는 추가 Alertmanager 인스턴스를 구성합니다. 기본적으로 추가 Alertmanager 인스턴스가 구성되지 않습니다. | |
| enforcedLabelLimit | *uint64 |
샘플에 허용되는 라벨 수에 대한 per-scrape 제한을 지정합니다. 메트릭 재레이블 후 라벨 수가 이 제한을 초과하면 전체 스크랩이 실패로 처리됩니다. 기본값은 |
| enforcedLabelNameLengthLimit | *uint64 |
샘플의 라벨 이름 길이에 대한 per-scrape 제한을 지정합니다. 메트릭 재레이블 후 라벨 이름의 길이가 이 제한을 초과하면 전체 스크랩이 실패로 처리됩니다. 기본값은 |
| enforcedLabelValueLengthLimit | *uint64 |
샘플의 라벨 값 길이에 대한 랩별 제한을 지정합니다. 메트릭 재레이블 후 레이블 값의 길이가 이 제한을 초과하면 전체 스크랩이 실패로 처리됩니다. 기본값은 |
| enforcedSampleLimit | *uint64 |
허용되는 스크랩 샘플 수에 대한 글로벌 제한을 지정합니다. 이 설정은 값이 |
| enforcedTargetLimit | *uint64 |
스크랩 대상 수에 대한 글로벌 제한을 지정합니다. 이 설정은 값이 |
| externalLabels | ExternalLabels | 페더레이션, 원격 스토리지 및 Alertmanager와 같은 외부 시스템과 통신할 때 모든 시계열 또는 경고에 추가할 레이블을 정의합니다. 유형은 map[string]string입니다. 기본적으로 라벨이 추가되지 않습니다. |
| logLevel | string |
Prometheus의 로그 수준 설정을 정의합니다. 가능한 값은 |
| nodeSelector | map[string]string | Pod가 예약된 노드를 정의합니다. |
| queryLogFile | string |
PromQL 쿼리가 기록되는 파일을 지정합니다. 이 설정은 파일 이름 중 하나일 수 있습니다. 이 경우 쿼리가 |
| remoteWrite | URL, 인증 및 레이블 재레이블 설정을 포함하여 원격 쓰기 구성을 정의합니다. | |
| resources | *v1.ResourceRequirements | Prometheus 컨테이너에 대한 리소스 요청 및 제한을 정의합니다. |
| retention | string |
Prometheus가 데이터를 유지하는 기간을 정의합니다. 이 정의는 |
| retentionSize | string |
데이터 블록에서 사용하는 최대 디스크 공간과 WAL(write-ahead log)을 정의합니다. 지원되는 값은 |
| 허용 오차 | []v1.Toleration | Pod에 대한 허용 오차를 정의합니다. |
| topologySpreadConstraints | []v1.TopologySpreadConstraint | Pod의 토폴로지 분배 제약 조건을 정의합니다. |
| volumeClaimTemplate | *monv1.EmbeddedPersistentVolumeClaim | Prometheus의 영구 스토리지를 정의합니다. 이 설정을 사용하여 볼륨의 스토리지 클래스 및 크기를 구성합니다. |
7.25. RemoteWriteSpec 링크 복사링크가 클립보드에 복사되었습니다!
7.25.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
RemoteWriteSpec 리소스는 원격 쓰기 스토리지에 대한 설정을 정의합니다.
7.25.2. 필수 항목 링크 복사링크가 클립보드에 복사되었습니다!
-
url
appears in: PrometheusK8sConfig,PrometheusRestrictedConfig
| 속성 | 유형 | 설명 |
|---|---|---|
| 권한 부여 | *monv1.SafeAuthorization | 원격 쓰기 스토리지에 대한 권한 부여 설정을 정의합니다. |
| basicAuth | *monv1.BasicAuth | 원격 쓰기 엔드포인트 URL에 대한 기본 인증 설정을 정의합니다. |
| bearerTokenFile | string | 원격 쓰기 엔드포인트에 대한 전달자 토큰이 포함된 파일을 정의합니다. 그러나 Pod에 보안을 마운트할 수 없기 때문에 실제로 서비스 계정의 토큰만 참조할 수 있습니다. |
| headers | map[string]string | 각 원격 쓰기 요청과 함께 보낼 사용자 지정 HTTP 헤더를 지정합니다. Prometheus에서 설정한 헤더는 덮어쓸 수 없습니다. |
| metadataConfig | *monv1.MetadataConfig | 시리즈 메타데이터를 원격 쓰기 스토리지로 전송하기 위한 설정을 정의합니다. |
| name | string | 원격 쓰기 대기열의 이름을 정의합니다. 이 이름은 큐를 구분하기 위해 메트릭 및 로깅에 사용됩니다. 지정된 경우 이 이름은 고유해야 합니다. |
| oauth2 | *monv1.OAuth2 | 원격 쓰기 엔드포인트에 대한 OAuth2 인증 설정을 정의합니다. |
| proxyUrl | string | 선택적 프록시 URL을 정의합니다. 클러스터 전체 프록시가 활성화된 경우 proxyUrl 설정을 대체합니다. 클러스터 전체 프록시는 HTTPS가 우선되는 HTTP 및 HTTPS 프록시를 모두 지원합니다. |
| queueConfig | *monv1.QueueConfig | 원격 쓰기 대기열 매개변수에 대한 구성을 조정할 수 있습니다. |
| remoteTimeout | string | 원격 쓰기 엔드포인트에 대한 요청의 시간 초과 값을 정의합니다. |
| sendExemplars | *bool | 원격 쓰기를 통해 느낌 전송을 활성화합니다. 이 설정을 활성화하면 이 설정은 최대 100,000개의 exemptars를 메모리에 저장하도록 Prometheus를 구성합니다. 이 설정은 사용자 정의 모니터링에만 적용되며 코어 플랫폼 모니터링에는 적용되지 않습니다. |
| sigv4 | *monv1.Sigv4 | AWS 서명 버전 4 인증 설정을 정의합니다. |
| tlsConfig | *monv1.SafeTLSConfig | 원격 쓰기 엔드포인트에 대한 TLS 인증 설정을 정의합니다. |
| url | string | 샘플을 전송할 원격 쓰기 끝점의 URL을 정의합니다. |
| writeRelabelConfigs | []monv1.RelabelConfig | 원격 쓰기 레이블 구성 목록을 정의합니다. |
7.26. TLSConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.26.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
TLSConfig 리소스는 TLS 연결에 대한 설정을 구성합니다.
7.26.2. 필수 항목 링크 복사링크가 클립보드에 복사되었습니다!
-
insecureSkipVerify
appears in: additionalAlertmanagerConfig
| 속성 | 유형 | 설명 |
|---|---|---|
| ca | *v1.SecretKeySelector | 원격 호스트에 사용할 CA(인증 기관)를 포함하는 시크릿 키 참조를 정의합니다. |
| cert | *v1.SecretKeySelector | 원격 호스트에 사용할 공용 인증서가 포함된 보안 키 참조를 정의합니다. |
| key | *v1.SecretKeySelector | 원격 호스트에 사용할 개인 키가 포함된 시크릿 키 참조를 정의합니다. |
| serverName | string | 반환된 인증서의 호스트 이름을 확인하는 데 사용됩니다. |
| insecureSkipVerify | bool |
|
7.27. TelemeterClientConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.27.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
TelemeterClientConfig 는 Telemeter Client 구성 요소의 설정을 정의합니다.
7.27.2. 필수 항목 링크 복사링크가 클립보드에 복사되었습니다!
-
nodeSelector -
허용 오차
ClusterMonitoringConfiguration에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| nodeSelector | map[string]string | Pod가 예약된 노드를 정의합니다. |
| resources | *v1.ResourceRequirements |
|
| 허용 오차 | []v1.Toleration | Pod에 대한 허용 오차를 정의합니다. |
| topologySpreadConstraints | []v1.TopologySpreadConstraint | Pod의 토폴로지 분배 제약 조건을 정의합니다. |
7.28. ThanosQuerierConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.28.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
ThanosQuerierConfig 리소스는 Thanos Querier 구성 요소에 대한 설정을 정의합니다.
ClusterMonitoringConfiguration에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| enableRequestLogging | bool |
요청 로깅을 활성화하거나 비활성화하는 부울 플래그입니다. 기본값은 |
| logLevel | string |
Thanos Querier의 로그 수준 설정을 정의합니다. 가능한 값은 |
| enableCORS | bool |
CORS 헤더를 설정할 수 있는 부울 플래그입니다. 헤더는 모든 원본에서 액세스할 수 있습니다. 기본값은 |
| nodeSelector | map[string]string | Pod가 예약된 노드를 정의합니다. |
| resources | *v1.ResourceRequirements | Thanos Querier 컨테이너에 대한 리소스 요청 및 제한을 정의합니다. |
| 허용 오차 | []v1.Toleration | Pod에 대한 허용 오차를 정의합니다. |
| topologySpreadConstraints | []v1.TopologySpreadConstraint | Pod의 토폴로지 분배 제약 조건을 정의합니다. |
7.29. ThanosRulerConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.29.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
ThanosRulerConfig 리소스는 사용자 정의 프로젝트의 Thanos Ruler 인스턴스에 대한 구성을 정의합니다.
UserWorkloadConfiguration에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| additionalAlertmanagerConfigs |
Thanos Ruler 구성 요소가 추가 Alertmanager 인스턴스와 통신하는 방법을 구성합니다. Cluster Monitoring Operator는 클러스터 전체 프록시 설정을 읽고 Alertmanager 끝점에 적절한 프록시 URL을 구성합니다. 이 그룹의 모든 Alertmanager 끝점은 동일한 프록시 URL을 사용해야 합니다. 클러스터 프록시를 바이패스하는 끝점은 별도의 그룹에 배치해야 합니다. 기본값은 | |
| evaluationInterval | string |
|
| logLevel | string |
Thanos Ruler의 로그 수준 설정을 정의합니다. 가능한 값은 |
| nodeSelector | map[string]string | Pod가 예약된 노드를 정의합니다. |
| resources | *v1.ResourceRequirements | Alertmanager 컨테이너에 대한 리소스 요청 및 제한을 정의합니다. |
| retention | string |
Prometheus가 데이터를 유지하는 기간을 정의합니다. 이 정의는 |
| 허용 오차 | []v1.Toleration | Pod에 대한 허용 오차를 정의합니다. |
| topologySpreadConstraints | []v1.TopologySpreadConstraint | Pod의 토폴로지 분배 제약 조건을 정의합니다. |
| volumeClaimTemplate | *monv1.EmbeddedPersistentVolumeClaim | Thanos Ruler의 영구 스토리지를 정의합니다. 이 설정을 사용하여 볼륨의 스토리지 클래스 및 크기를 구성합니다. |
7.30. UserWorkloadConfig 링크 복사링크가 클립보드에 복사되었습니다!
7.30.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
UserWorkloadConfig 리소스는 사용자 정의 프로젝트의 모니터링 설정을 정의합니다.
ClusterMonitoringConfiguration에 나타납니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| rulesWithoutLabelEnforcementAllowed | *bool |
|
7.31. UserWorkloadConfiguration 링크 복사링크가 클립보드에 복사되었습니다!
7.31.1. 설명 링크 복사링크가 클립보드에 복사되었습니다!
UserWorkloadConfiguration 리소스는 openshift-user-workload-monitoring 네임스페이스의 user-workload-monitoring-config 구성 맵에서 사용자 정의 프로젝트를 담당하는 설정을 정의합니다. openshift-monitoring 네임스페이스 아래에 cluster-monitoring-config 구성 맵에서 enableUserWorkload 를 true 로 설정한 경우에만 UserWorkloadConfiguration 을 활성화할 수 있습니다.
| 속성 | 유형 | 설명 |
|---|---|---|
| alertmanager | 사용자 워크로드 모니터링에서 Alertmanager 구성 요소에 대한 설정을 정의합니다. | |
| prometheus | 사용자 워크로드 모니터링에서 Prometheus 구성 요소의 설정을 정의합니다. | |
| prometheusOperator | 사용자 워크로드 모니터링에서 Prometheus Operator 구성 요소에 대한 설정을 정의합니다. | |
| thanosRuler | 사용자 워크로드 모니터링에서 Thanos Ruler 구성 요소에 대한 설정을 정의합니다. | |
| namespacesWithoutLabelEnforcement | []string |
사용자 정의 모니터링에서 Prometheus 및 Thanos Ruler가
결과 경고 및 지표를 프로젝트 사용자에게 표시하려면 쿼리 표현식에서 비어 있지 않은 값이 있는 |