8장. 모니터링 문제 조사
사용자 정의 프로젝트의 일반적인 모니터링 문제에 대한 문제 해결 단계를 확인하십시오.
8.1. 사용자 정의 프로젝트 메트릭을 사용할 수 없는 이유 확인
사용자 정의 프로젝트를 모니터링할 때 메트릭이 표시되지 않는 경우 다음 단계에 따라 문제를 해결합니다.
절차
메트릭 이름을 쿼리하고 프로젝트가 올바른지 확인합니다.
-
OpenShift Container Platform 웹 콘솔의 개발자 관점에서 모니터링
메트릭 을 선택합니다. - Project: 목록에서 메트릭을 보려는 프로젝트를 선택합니다.
쿼리 선택 목록에서 쿼리를 선택하거나 PromQL 표시를 선택하여 사용자 정의 PromQL 쿼리를 실행합니다.
쿼리 선택 창에 지표 이름이 표시됩니다.
쿼리는 프로젝트별로 수행해야 합니다. 표시된 메트릭은 선택한 프로젝트와 관련이 있습니다.
-
OpenShift Container Platform 웹 콘솔의 개발자 관점에서 모니터링
메트릭을 원하는 Pod가 적극적으로 메트릭을 제공하고 있는지 확인합니다. Pod로 다음
oc exec
명령을 실행하여podIP
,포트
,/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
유효하지 않은 출력은 해당 애플리케이션에 문제가 있음을 나타냅니다.
-
PodMonitor
CRD를 사용하는 경우 라벨 일치를 사용하여PodMonitor
CRD가 올바른 Pod를 가리키도록 구성되어 있는지 확인합니다. 자세한 내용은 Prometheus Operator 설명서를 참조하십시오. ServiceMonitor
CRD를 사용하고 Pod의/metrics
끝점에 지표 데이터가 표시되는 경우 다음 단계에 따라 구성을 확인합니다.서비스가 올바른
/metrics
엔드포인트를 가리키는지 확인합니다. 이 출력의 서비스레이블
은 서비스 모니터레이블
과 후속 단계의 서비스에서 정의한/metrics
엔드포인트와 일치해야 합니다.$ oc get service
출력 예
apiVersion: v1 kind: Service 1 metadata: labels: 2 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
serviceIP
,port
,/metrics
엔드포인트를 쿼리하여 이전에 실행한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 출력의Service
오브젝트를oc get service
monitorServiceMonitor
오브젝트와 비교합니다. 표시할 메트릭과 일치해야 하는 레이블입니다.예를 들어 이전 단계에서
Service
오브젝트에app: prometheus-example-app
레이블이 있고ServiceMonitor
오브젝트에 동일한app: prometheus-example-app
일치 라벨이 있는지 확인하십시오.
- 모든 항목이 유효한 것으로 확인되고 메트릭을 계속 사용할 수 없는 경우 지원 팀에 문의하여 추가 지원을 받으십시오.