4.2.2. 서비스 모니터링 방법 지정
서비스에서 노출하는 메트릭을 사용하려면 /metrics
끝점에서 메트릭을 스크랩하도록 OpenShift Container Platform 모니터링을 구성해야 합니다. 서비스를 모니터링해야 하는 방법을 지정하는 ServiceMonitor
(CRD) 또는 Pod를 모니터링해야 하는 방법을 지정하는 PodMonitor
CRD를 사용하여 이 작업을 수행할 수 있습니다. 전자에는 Service
오브젝트가 필요하지만 후자에는 필요하지 않으며 Prometheus가 Pod에서 노출하는 메트릭 끝점에서 메트릭을 직접 스크랩할 수 있습니다.
OpenShift Container Platform 4.6에서는 ServiceMonitor
리소스에 tlsConfig
속성을 사용하여 끝점에서 메트릭을 스크랩할 때 사용할 TLS 구성을 지정할 수 있습니다. tlsConfig
속성은 PodMonitor
리소스에서 아직 사용할 수 없습니다. 메트릭을 스크랩할 때 TLS 구성을 사용해야 하는 경우 ServiceMonitor
리소스를 사용해야 합니다.
다음 프로세스에서는 사용자 정의 프로젝트에서 서비스에 대한 ServiceMonitor
리소스를 생성하는 방법을 보여줍니다.
사전 요구 사항
-
cluster-admin
역할 또는monitoring-edit
역할의 사용자로 클러스터에 액세스할 수 있습니다. - 사용자 정의 프로젝트에 대한 모니터링을 활성화했습니다.
-
이 예제에서는
prometheus-example-app
샘플 서비스를ns1
프로젝트에 배포했습니다.
프로세스
-
ServiceMonitor
리소스 구성에 대한 YAML 파일을 생성합니다. 이 예제에서 파일은example-app-service-monitor.yaml
이라고 합니다. 다음
ServiceMonitor
리소스 구성 세부 정보를 추가합니다.apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: labels: k8s-app: prometheus-example-monitor name: prometheus-example-monitor namespace: ns1 spec: endpoints: - interval: 30s port: web scheme: http selector: matchLabels: app: prometheus-example-app
이는
버전
메트릭이 포함된prometheus-example-app
샘플 서비스에서 노출하는 메트릭을 스크랩하는ServiceMonitor
리소스를 정의합니다.
사용자 정의 네임스페이스의 ServiceMonitor
리소스는 동일한 네임스페이스에서 서비스만 검색할 수 있습니다. 즉 ServiceMonitor
리소스의 namespaceSelector
필드는 항상 무시됩니다.
클러스터에 구성을 적용합니다.
$ oc apply -f example-app-service-monitor.yaml
ServiceMonitor
리소스를 배포하는 데 시간이 다소 걸립니다.ServiceMonitor
리소스가 실행 중인지 확인할 수 있습니다.$ oc -n ns1 get servicemonitor
출력 예
NAME AGE prometheus-example-monitor 81m
추가 리소스
-
ServiceMonitor
및PodMonitor
리소스에 대한 자세한 내용은 Prometheus Operator API 문서를 참조하십시오.
추가 리소스