Skip to main content
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

Trident 모니터링

기여자 netapp-aruldeepa juliantap netapp-mwallis netapp-asubhas

Trident는 Trident 성능을 모니터링하는 데 사용할 수 있는 Prometheus 메트릭 엔드포인트 세트를 제공합니다.

개요

Trident에서 제공하는 메트릭을 사용하면 다음을 수행할 수 있습니다.

  • Trident의 상태 및 구성을 지속적으로 확인합니다. 성공적인 작업이 어떻게 이루어지는지, 예상대로 백엔드와 통신할 수 있는지 확인할 수 있습니다.

  • 백엔드 사용 정보를 검토하고 백엔드에서 프로비저닝되는 볼륨 수와 사용된 공간 등을 파악합니다.

  • 사용 가능한 백엔드에 프로비저닝된 볼륨 양의 매핑을 유지합니다.

  • 성과 추적. Trident가 백엔드와 통신하고 작업을 수행하는 데 걸리는 시간을 살펴볼 수 있습니다.

참고 기본적으로 Trident의 메트릭은 대상 포트에 노출됩니다. 8001 에서 /metrics 종점. 이러한 측정항목은 Trident 가 설치되면 기본적으로 활성화됩니다. HTTPS를 통해 포트에서 Trident 메트릭을 사용하도록 구성할 수 있습니다. 8444 또한.
필요한 것

1단계: Prometheus 목표를 정의합니다

Prometheus 대상을 정의하여 Trident 관리하는 백엔드, Trident가 생성하는 볼륨 등에 대한 메트릭과 정보를 수집해야 합니다. 보다"Prometheus Operator 문서" .

2단계: Prometheus ServiceMonitor를 만듭니다

Trident 메트릭을 소비하려면 트리덴트 CSI 서비스를 감시하고 메티우스 포트에서 수신 대기하는 프로메테우스 서비스 모니터를 만들어야 합니다. 샘플 ServiceMonitor의 모양은 다음과 같습니다.

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: trident-sm
  namespace: monitoring
  labels:
    release: prom-operator
spec:
  jobLabel: trident
  selector:
    matchLabels:
      app: controller.csi.trident.netapp.io
  namespaceSelector:
    matchNames:
      - trident
  endpoints:
    - port: metrics
      interval: 15s

이 ServiceMonitor 정의는 다음에 의해 반환된 메트릭을 검색합니다. trident-csi 서비스를 특별히 찾습니다 metrics 서비스의 종료점. 결과적으로 Prometheus는 이제 Trident의 측정 항목을 이해하도록 구성되었습니다.

kubelet은 Trident에서 직접 사용할 수 있는 메트릭과 더불어 자체 메트릭 엔드포인트를 통해 많은 메트릭을 노출합니다. kubelet_volume_* Kubelet는 연결된 볼륨, Pod 및 처리하는 기타 내부 작업에 대한 정보를 제공할 수 있습니다. 을 "여기"참조하십시오.

HTTPS를 통해 Trident 메트릭 사용

HTTPS(포트 8444)를 통해 Trident 메트릭을 사용하려면 TLS 구성을 포함하도록 ServiceMonitor 정의를 수정해야 합니다. 또한 다음을 복사해야 합니다. trident-csi 의 비밀 trident Prometheus가 실행되는 네임스페이스에 대한 네임스페이스입니다. 다음 명령을 사용하여 이 작업을 수행할 수 있습니다.

kubectl get secret trident-csi -n trident -o yaml | sed 's/namespace: trident/namespace: monitoring/' | kubectl apply -f -

HTTPS 메트릭에 대한 ServiceMonitor 샘플은 다음과 같습니다.

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: trident-sm
  namespace: monitoring
  labels:
    release: prom-operator
spec:
  jobLabel: trident
  selector:
    matchLabels:
      app: controller.csi.trident.netapp.io
  namespaceSelector:
    matchNames:
      - trident
  endpoints:
    - interval: 15s
      path: /metrics
      port: https-metrics
      scheme: https
      tlsConfig:
        ca:
          secret:
            key: caCert
            name: trident-csi
        cert:
          secret:
            key: clientCert
            name: trident-csi
        keySecret:
          key: clientKey
          name: trident-csi
        serverName: trident-csi

Trident tridentctl, Helm 차트, Operator 등 모든 설치 방법에서 HTTPS 메트릭을 지원합니다.

  • 당신이 사용하는 경우 tridentctl install 명령을 전달하면 --https-metrics HTTPS 메트릭을 활성화하는 플래그입니다.

  • Helm 차트를 사용하는 경우 다음을 설정할 수 있습니다. httpsMetrics HTTPS 메트릭을 활성화하는 매개변수입니다.

  • YAML 파일을 사용하는 경우 다음을 추가할 수 있습니다. --https_metrics 에 깃발을 trident-main 컨테이너에 trident-deployment.yaml 파일.

3단계: PromQL을 사용하여 Trident 메트릭 쿼리

PromQL은 시계열 또는 표 형식 데이터를 반환하는 식을 만드는 데 적합합니다.

다음은 사용할 수 있는 몇 가지 PromQL 쿼리입니다.

Trident 상태 정보를 가져옵니다

  • Trident의 HTTP 2XX 응답 비율

(sum (trident_rest_ops_seconds_total_count{status_code=~"2.."} OR on() vector(0)) / sum (trident_rest_ops_seconds_total_count)) * 100
  • 상태 코드를 통한 Trident의 REST 응답 비율

(sum (trident_rest_ops_seconds_total_count) by (status_code)  / scalar (sum (trident_rest_ops_seconds_total_count))) * 100
  • Trident에서 수행한 작업의 평균 지속 시간(ms)

sum by (operation) (trident_operation_duration_milliseconds_sum{success="true"}) / sum by (operation) (trident_operation_duration_milliseconds_count{success="true"})

Trident 사용 정보를 가져옵니다

  • 평균 볼륨 크기

trident_volume_allocated_bytes/trident_volume_count
  • 각 백엔드에서 프로비저닝된 총 볼륨 공간

sum (trident_volume_allocated_bytes) by (backend_uuid)

개별 볼륨 사용량을 가져옵니다

참고 이 기능은 kubelet 메트릭도 수집한 경우에만 사용할 수 있습니다.
  • 각 볼륨에 사용된 공간의 비율

kubelet_volume_stats_used_bytes / kubelet_volume_stats_capacity_bytes * 100

Trident AutoSupport 원격 측정 기능에 대해 알아봅니다

기본적으로 Trident는 Prometheus 메트릭 및 기본 백엔드 정보를 NetApp에 매일 보냅니다.

  • Trident에서 Prometheus 메트릭 및 기본 백엔드 정보를 NetApp로 보내지 않도록 하려면 --silence-autosupport Trident 설치 중에 플래그를 전달합니다.

  • 또한 Trident는 를 통해 컨테이너 로그를 NetApp 지원 팀에 온디맨드로 전송할 수 tridentctl send autosupport 있습니다. 로그를 업로드하려면 Trident를 트리거해야 합니다. 로그를 제출하기 전에 NetApp를 수락해야 "개인 정보 보호 정책"합니다.

  • 별도로 지정하지 않는 한 Trident는 지난 24시간의 로그를 가져옵니다.

  • 플래그를 사용하여 로그 보존 기간을 지정할 수 --since 있습니다. 예를 들면 다음과 tridentctl send autosupport --since=1h`같습니다. 이 정보는 Trident와 함께 설치된 컨테이너를 통해 수집되고 전송됩니다 `trident-autosupport. 컨테이너 이미지는 에서 얻을 수 "Trident AutoSupport를 누릅니다" 있습니다.

  • Trident AutoSupport는 개인 식별 정보(PII) 또는 개인 정보를 수집하거나 전송하지 않습니다. 에는 Trident 컨테이너 이미지 자체에 적용할 수 없는 가 "EULA" 포함되어 있습니다. 데이터 보안 및 신뢰에 대한 NetApp의 노력에 대해 더 자세히 알아볼 수 "여기"있습니다.

Trident에서 보낸 페이로드의 예는 다음과 같습니다.

---
items:
  - backendUUID: ff3852e1-18a5-4df4-b2d3-f59f829627ed
    protocol: file
    config:
      version: 1
      storageDriverName: ontap-nas
      debug: false
      debugTraceFlags: null
      disableDelete: false
      serialNumbers:
        - nwkvzfanek_SN
      limitVolumeSize: ""
    state: online
    online: true
  • AutoSupport 메시지는 NetApp의 AutoSupport 엔드포인트로 전송됩니다. 개인 레지스트리를 사용하여 컨테이너 이미지를 저장하는 경우 '--image-registry' 플래그를 사용할 수 있습니다.

  • 또한 설치 YAML 파일을 생성하여 프록시 URL을 구성할 수도 있습니다. 이는 트라이덴트ctl install --generate-custom-YAML을 이용해 YAML 파일을 생성하고 트리덴트 배포(trident-deployment)의 트리덴트 자동 지원 컨테이너에 대한 '--proxy-url' 주장을 추가하는 방식으로 가능하다.

Trident 메트릭을 비활성화합니다

  • 메트릭을 보고하지 않으려면 ('--generate-custom-YAML' 플래그를 사용하여) 사용자 지정 YAML을 생성하고 이를 편집하여 삼중류-main' 컨테이너에 대해 호출되는 '--metrics' 플래그를 제거해야 합니다.