15.4. 서비스를 모니터링하도록 Cluster Observability Operator 구성


중요

Cluster Observability Operator는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

COO(Cluster Observability Operator)에서 관리하는 모니터링 스택을 구성하여 서비스에 대한 메트릭을 모니터링할 수 있습니다.

서비스 모니터링을 테스트하려면 다음 단계를 따르십시오.

  • 서비스 엔드포인트를 정의하는 샘플 서비스를 배포합니다.
  • COO에서 서비스를 모니터링할 방법을 지정하는 ServiceMonitor 오브젝트를 생성합니다.
  • MonitoringStack 오브젝트를 생성하여 ServiceMonitor 오브젝트를 검색합니다.

15.4.1. Cluster Observability Operator의 샘플 서비스 배포

이 구성은 사용자 정의 ns1-coo 프로젝트에 prometheus-coo-example-app 이라는 샘플 서비스를 배포합니다. 서비스는 사용자 정의 버전 지표를 노출합니다.

사전 요구 사항

  • cluster-admin 클러스터 역할의 사용자로 또는 네임스페이스에 대한 관리 권한이 있는 사용자로 클러스터에 액세스할 수 있습니다.

절차

  1. 네임스페이스, 배포 및 서비스에 대한 다음 구성 세부 정보가 포함된 prometheus-coo-example-app.yaml 이라는 YAML 파일을 생성합니다.

    apiVersion: v1
    kind: Namespace
    metadata:
      name: ns1-coo
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: prometheus-coo-example-app
      name: prometheus-coo-example-app
      namespace: ns1-coo
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: prometheus-coo-example-app
      template:
        metadata:
          labels:
            app: prometheus-coo-example-app
        spec:
          containers:
          - image: ghcr.io/rhobs/prometheus-example-app:0.4.2
            imagePullPolicy: IfNotPresent
            name: prometheus-coo-example-app
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        app: prometheus-coo-example-app
      name: prometheus-coo-example-app
      namespace: ns1-coo
    spec:
      ports:
      - port: 8080
        protocol: TCP
        targetPort: 8080
        name: web
      selector:
        app: prometheus-coo-example-app
      type: ClusterIP
  2. 파일을 저장합니다.
  3. 다음 명령을 실행하여 클러스터에 구성을 적용합니다.

    $ oc apply -f prometheus-coo-example-app.yaml
  4. 다음 명령을 실행하고 출력을 관찰하여 포드가 실행 중인지 확인합니다.

    $ oc -n -ns1-coo get pod

    출력 예

    NAME                                      READY     STATUS    RESTARTS   AGE
    prometheus-coo-example-app-0927545cb7-anskj   1/1       Running   0          81m

15.4.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 인증을 지원하지 않습니다.

절차

  1. 다음 ServiceMonitor 오브젝트 구성 세부 정보가 포함된 example-coo-app-service-monitor.yaml 이라는 YAML 파일을 생성합니다.

    apiVersion: monitoring.rhobs/v1
    kind: ServiceMonitor
    metadata:
      labels:
        k8s-app: prometheus-coo-example-monitor
      name: prometheus-coo-example-monitor
      namespace: ns1-coo
    spec:
      endpoints:
      - interval: 30s
        port: web
        scheme: http
      selector:
        matchLabels:
          app: prometheus-coo-example-app

    이 구성은 MonitoringStack 오브젝트가 prometheus-coo-example-app 샘플 서비스에서 노출하는 메트릭 데이터를 스크랩하기 위해 참조하는 ServiceMonitor 오브젝트를 정의합니다.

  2. 다음 명령을 실행하여 클러스터에 구성을 적용합니다.

    $ oc apply -f example-app-service-monitor.yaml
  3. 다음 명령을 실행하고 출력을 관찰하여 ServiceMonitor 리소스가 생성되었는지 확인합니다.

    $ oc -n ns1-coo get servicemonitor

    출력 예

    NAME                         AGE
    prometheus-coo-example-monitor   81m

15.4.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 오브젝트를 생성했습니다.

절차

  1. MonitoringStack 오브젝트 구성에 대한 YAML 파일을 생성합니다. 이 예제에서는 example-coo-monitoring-stack.yaml 파일의 이름을 지정합니다.
  2. 다음 MonitoringStack 오브젝트 구성 세부 정보를 추가합니다.

    MonitoringStack 오브젝트의 예

    apiVersion: monitoring.rhobs/v1alpha1
    kind: MonitoringStack
    metadata:
      name: example-coo-monitoring-stack
      namespace: ns1-coo
    spec:
      logLevel: debug
      retention: 1d
      resourceSelector:
        matchLabels:
          k8s-app: prometheus-coo-example-monitor

  3. 다음 명령을 실행하여 MonitoringStack 오브젝트를 적용합니다.

    $ oc apply -f example-coo-monitoring-stack.yaml
  4. 다음 명령을 실행하고 출력을 검사하여 MonitoringStack 오브젝트를 사용할 수 있는지 확인합니다.

    $ oc -n ns1-coo get monitoringstack

    출력 예

    NAME                         AGE
    example-coo-monitoring-stack   81m

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.