Red Hat OpenShift Cluster Observability Operator 설치
Cluster Observability Operator 설치 및 구성.
초록
1장. Cluster Observability Operator 설치 링크 복사링크가 클립보드에 복사되었습니다!
클러스터 관리자는 OpenShift Container Platform 웹 콘솔을 사용하여 OperatorHub에서 Cluster Observability Operator (COO)를 설치하거나 제거할 수 있습니다. OperatorHub는 클러스터에 Operator를 설치하고 관리하는 OLM(Operator Lifecycle Manager)과 함께 작동하는 사용자 인터페이스입니다.
1.1. 웹 콘솔에서 Cluster Observability Operator 설치 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform 웹 콘솔을 사용하여 OperatorHub에서 Cluster Observability Operator (COO)를 설치합니다.
사전 요구 사항
-
cluster-admin
클러스터 역할의 사용자로 클러스터에 액세스할 수 있습니다. - OpenShift Container Platform 웹 콘솔에 로그인했습니다.
프로세스
- OpenShift Container Platform 웹 콘솔에서 Operator → OperatorHub를 클릭합니다.
-
키워드로 필터링 상자에
cluster observability Operator
를 입력합니다. - 결과 목록에서 Cluster Observability Operator 를 클릭합니다.
Operator에 대한 정보를 읽고 다음 설치 설정을 구성합니다.
- 업데이트 채널 → stable
- 버전 → 1.0.0 이상
- 설치 모드 → 클러스터의 모든 네임스페이스(기본값)
- 설치된 네임스페이스 → Operator 권장 네임스페이스: openshift-cluster-observability-operator
- 이 네임스페이스에서 Operator 권장 클러스터 모니터링 활성화를선택합니다.
- 업데이트 승인 → 자동
- 선택 사항: 요구 사항에 맞게 설치 설정을 변경할 수 있습니다. 예를 들어 다른 업데이트 채널에 가입하거나, 이전 릴리스 버전의 Operator를 설치하거나, 새 버전의 Operator에 대한 업데이트에 대한 수동 승인이 필요한 경우 선택할 수 있습니다.
- 설치를 클릭합니다.
검증
- Operator → 설치된 Operator 로 이동하여 Cluster Observability Operator 항목이 목록에 표시되는지 확인합니다.
추가 리소스
1.2. 웹 콘솔을 사용하여 Cluster Observability Operator 설치 제거 링크 복사링크가 클립보드에 복사되었습니다!
OperatorHub를 사용하여 COO(Cluster Observability Operator)를 설치한 경우 OpenShift Container Platform 웹 콘솔에서 해당 Operator를 제거할 수 있습니다.
사전 요구 사항
-
cluster-admin
클러스터 역할의 사용자로 클러스터에 액세스할 수 있습니다. - OpenShift Container Platform 웹 콘솔에 로그인했습니다.
프로세스
- Operator → 설치된 Operator 로 이동합니다.
- 목록에서 Cluster Observability Operator 항목을 찾습니다.
-
이 항목에 대해
를 클릭하고 Operator 설치 제거를 선택합니다.
검증
- Operator → 설치된 Operator 로 이동하여 Cluster Observability Operator 항목이 더 이상 목록에 표시되지 않는지 확인합니다.
2장. 서비스를 모니터링하도록 Cluster Observability Operator 구성 링크 복사링크가 클립보드에 복사되었습니다!
COO(Cluster Observability Operator)에서 관리하는 모니터링 스택을 구성하여 서비스에 대한 메트릭을 모니터링할 수 있습니다.
서비스 모니터링을 테스트하려면 다음 단계를 따르십시오.
- 서비스 엔드포인트를 정의하는 샘플 서비스를 배포합니다.
-
COO에서 서비스를 모니터링할 방법을 지정하는
ServiceMonitor
오브젝트를 생성합니다. -
MonitoringStack
오브젝트를 생성하여ServiceMonitor
오브젝트를 검색합니다.
2.1. Cluster Observability Operator의 샘플 서비스 배포 링크 복사링크가 클립보드에 복사되었습니다!
이 구성은 사용자 정의 ns1-coo
프로젝트에 prometheus-coo-example-app
이라는 샘플 서비스를 배포합니다. 서비스는 사용자 정의 버전
지표를 노출합니다.
사전 요구 사항
-
cluster-admin
클러스터 역할의 사용자로 또는 네임스페이스에 대한 관리 권한이 있는 사용자로 클러스터에 액세스할 수 있습니다.
프로세스
네임스페이스, 배포 및 서비스에 대한 다음 구성 세부 정보가 포함된
prometheus-coo-example-app.yaml
이라는 YAML 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 파일을 저장합니다.
다음 명령을 실행하여 클러스터에 구성을 적용합니다.
oc apply -f prometheus-coo-example-app.yaml
$ oc apply -f prometheus-coo-example-app.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하고 출력을 관찰하여 포드가 실행 중인지 확인합니다.
oc -n ns1-coo get pod
$ oc -n ns1-coo get pod
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE prometheus-coo-example-app-0927545cb7-anskj 1/1 Running 0 81m
NAME READY STATUS RESTARTS AGE prometheus-coo-example-app-0927545cb7-anskj 1/1 Running 0 81m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2. Cluster Observability Operator에서 서비스를 모니터링하는 방법 지정 링크 복사링크가 클립보드에 복사되었습니다!
"Cluster Observability Operator의 샘플 서비스 배포" 섹션에서 생성한 샘플 서비스에서 노출하는 메트릭을 사용하려면 /metrics
끝점에서 메트릭을 스크랩하도록 모니터링 구성 요소를 구성해야 합니다.
서비스 모니터링 방법을 지정하는 ServiceMonitor
오브젝트 또는 Pod를 모니터링할 방법을 지정하는 PodMonitor
오브젝트를 사용하여 이 구성을 생성할 수 있습니다. ServiceMonitor
오브젝트에는 Service
오브젝트가 필요합니다. PodMonitor
오브젝트는 MonitoringStack
오브젝트가 Pod에서 노출하는 메트릭 끝점에서 직접 메트릭을 스크랩할 수 있도록 하지 않습니다.
다음 절차에서는 ns1-coo
네임스페이스에서 prometheus-coo-example-app
이라는 샘플 서비스에 대한 ServiceMonitor
오브젝트를 생성하는 방법을 보여줍니다.
사전 요구 사항
-
cluster-admin
클러스터 역할의 사용자로 또는 네임스페이스에 대한 관리 권한이 있는 사용자로 클러스터에 액세스할 수 있습니다. - Cluster Observability Operator가 설치되어 있습니다.
prometheus-coo-example-app
샘플 서비스를ns1-coo
네임스페이스에 배포했습니다.참고prometheus-coo-example-app
샘플 서비스는 TLS 인증을 지원하지 않습니다.
프로세스
다음
ServiceMonitor
오브젝트 구성 세부 정보가 포함된example-coo-app-service-monitor.yaml
이라는 YAML 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 구성은
MonitoringStack
오브젝트가prometheus-coo-example-app
샘플 서비스에서 노출하는 메트릭 데이터를 스크랩하기 위해 참조하는ServiceMonitor
오브젝트를 정의합니다.다음 명령을 실행하여 클러스터에 구성을 적용합니다.
oc apply -f example-coo-app-service-monitor.yaml
$ oc apply -f example-coo-app-service-monitor.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하고 출력을 관찰하여
ServiceMonitor
리소스가 생성되었는지 확인합니다.oc -n ns1-coo get servicemonitors.monitoring.rhobs
$ oc -n ns1-coo get servicemonitors.monitoring.rhobs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME AGE prometheus-coo-example-monitor 81m
NAME AGE prometheus-coo-example-monitor 81m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. Cluster Observability Operator에 대한 MonitoringStack 오브젝트 생성 링크 복사링크가 클립보드에 복사되었습니다!
대상 prometheus-coo-example-app
서비스에서 노출하는 메트릭 데이터를 스크랩하려면 "Cluster Observability Operator에 대해 서비스 모니터링 방법 연결" 섹션에서 생성한 ServiceMonitor
오브젝트를 참조하는 MonitoringStack
오브젝트를 생성합니다. 그러면 이 MonitoringStack
오브젝트에서 서비스를 검색하고 노출된 지표 데이터를 스크랩할 수 있습니다.
사전 요구 사항
-
cluster-admin
클러스터 역할의 사용자로 또는 네임스페이스에 대한 관리 권한이 있는 사용자로 클러스터에 액세스할 수 있습니다. - Cluster Observability Operator가 설치되어 있습니다.
-
prometheus-coo-example-app
샘플 서비스를ns1-coo
네임스페이스에 배포했습니다. -
ns1-coo
네임스페이스에prometheus-coo-example-monitor
라는ServiceMonitor
오브젝트를 생성했습니다.
프로세스
-
MonitoringStack
오브젝트 구성에 대한 YAML 파일을 생성합니다. 이 예제에서는example-coo-monitoring-stack.yaml
파일의 이름을 지정합니다. 다음
MonitoringStack
오브젝트 구성 세부 정보를 추가합니다.MonitoringStack
오브젝트의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
MonitoringStack
오브젝트를 적용합니다.oc apply -f example-coo-monitoring-stack.yaml
$ oc apply -f example-coo-monitoring-stack.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하고 출력을 검사하여
MonitoringStack
오브젝트를 사용할 수 있는지 확인합니다.oc -n ns1-coo get monitoringstack
$ oc -n ns1-coo get monitoringstack
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME AGE example-coo-monitoring-stack 81m
NAME AGE example-coo-monitoring-stack 81m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Prometheus의 활성 대상에 대한 정보를 검색하고,
app=prometheus-coo-example-app
로 레이블이 지정된 대상만 나열하도록 출력을 필터링합니다. 이렇게 하면 이 특정 레이블을 사용하여 Prometheus에서 검색 및 적극적으로 모니터링하는 대상이 검증됩니다.oc -n ns1-coo exec -c prometheus prometheus-example-coo-monitoring-stack-0 -- curl -s 'http://localhost:9090/api/v1/targets' | jq '.data.activeTargets[].discoveredLabels | select(.__meta_kubernetes_endpoints_label_app=="prometheus-coo-example-app")'
$ oc -n ns1-coo exec -c prometheus prometheus-example-coo-monitoring-stack-0 -- curl -s 'http://localhost:9090/api/v1/targets' | jq '.data.activeTargets[].discoveredLabels | select(.__meta_kubernetes_endpoints_label_app=="prometheus-coo-example-app")'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고위의 예제에서는
jq
명령줄 JSON 프로세서를 사용하여 편의를 위해 출력을 포맷합니다.
2.4. 모니터링 스택 검증 링크 복사링크가 클립보드에 복사되었습니다!
모니터링 스택이 올바르게 작동하는지 확인하려면 예제 서비스에 액세스한 다음 수집된 지표를 확인합니다.
사전 요구 사항
-
cluster-admin
클러스터 역할의 사용자로 또는 네임스페이스에 대한 관리 권한이 있는 사용자로 클러스터에 액세스할 수 있습니다. - Cluster Observability Operator가 설치되어 있습니다.
-
prometheus-coo-example-app
샘플 서비스를ns1-coo
네임스페이스에 배포했습니다. -
ns1-coo
네임스페이스에prometheus-coo-example-monitor
라는ServiceMonitor
오브젝트를 생성했습니다. -
ns1-coo
네임스페이스에example-coo-monitoring-stack
이라는MonitoringStack
오브젝트를 생성했습니다.
프로세스
example
prometheus-coo-example-app
서비스를 노출할 경로를 생성합니다. 터미널에서 다음 명령을 실행합니다.oc expose svc prometheus-coo-example-app -n ns1-coo
$ oc expose svc prometheus-coo-example-app -n ns1-coo
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 브라우저 또는 명령줄에서 경로에 액세스하여 메트릭을 생성합니다.
Prometheus Pod에서 쿼리를 실행하여 총 HTTP 요청 지표를 반환합니다.
oc -n ns1-coo exec -c prometheus prometheus-example-coo-monitoring-stack-0 -- curl -s 'http://localhost:9090/api/v1/query?query=http_requests_total'
$ oc -n ns1-coo exec -c prometheus prometheus-example-coo-monitoring-stack-0 -- curl -s 'http://localhost:9090/api/v1/query?query=http_requests_total'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예 (편의를 위해
jq
를 사용하여 포맷됨)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5. 여러 네임스페이스에서 대상 스크래핑 링크 복사링크가 클립보드에 복사되었습니다!
여러 네임스페이스에서 대상을 스크래핑하려면 MonitoringStack
개체에서 네임스페이스와 리소스 선택기를 설정합니다.
사전 요구 사항
-
cluster-admin
클러스터 역할의 사용자로 또는 네임스페이스에 대한 관리 권한이 있는 사용자로 클러스터에 액세스할 수 있습니다. - Cluster Observability Operator가 설치되어 있습니다.
프로세스
다음 네임스페이스 개체와
MonitoringStack
YAML 파일을 배포합니다.MonitoringStack
예제Copy to Clipboard Copied! Toggle word wrap Toggle overflow 항상 발생하는 경고와 함께
ns1-coo
네임스페이스에 샘플 애플리케이션을 배포합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow monitoring.rhobs/stack: multi-ns
라는 라벨이 붙은 다른 네임스페이스에 동일한 예제 애플리케이션을 배포합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
Prometheus 인스턴스가 새로운 대상을 추가하고 알림이 실행되는지 확인합니다. port-forward 명령을 사용하여
Monitoringstack
인스턴스에 의해 배포된 Prometheus 또는 Alertmanager 사용자 인터페이스를 노출합니다.Prometheus
oc port-forward -n ns1-coo pod/prometheus-example-coo-monitoring-stack-0 9090
$ oc port-forward -n ns1-coo pod/prometheus-example-coo-monitoring-stack-0 9090
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Alertmanager
oc port-forward -n ns1-coo pod/alertmanager-example-coo-monitoring-stack-0 9093
$ oc port-forward -n ns1-coo pod/alertmanager-example-coo-monitoring-stack-0 9093
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
대상이 스크랩되고 있고
http://localhost:9090/targets
또는http://localhost:9093/#/alerts
로 이동하여 경고가 실행되는지 확인합니다.