Skip to main content
此產品有較新版本可以使用。
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

監控 Trident

Trident 提供了一組 Prometheus 指標端點、您可以使用這些端點來監控 Trident 效能。

概況

Trident 提供的指標可讓您執行以下操作:

  • 密切注意 Trident 的運作狀況和組態。您可以檢查作業的成功程度,以及它是否能如預期般與後端通訊。

  • 檢查後端使用資訊,了解後端配置了多少磁碟區、消耗的空間量等等。

  • 維護可用後端已配置磁碟區數量的映射表。

  • 追蹤效能。您可以查看 Trident 與後端通訊以及執行作業所需的時間。

註 預設情況下, Trident 的指標會在目標連接埠 `8001`的 `/metrics`端點上公開。安裝 Trident 時,這些指標*預設為啟用*。您也可以設定為透過 HTTPS 在連接埠 `8444`上使用 Trident 指標。
您需要準備的項目

步驟 1:定義 Prometheus 目標

您應該定義一個 Prometheus 目標來收集指標並獲取有關 Trident 管理的後端、它創建的磁碟區等資訊。請參閱 "Prometheus Operator 說明文件"

步驟 2 :建立 Prometheus ServiceMonitor

要使用 Trident 指標,您應該建立一個 Prometheus ServiceMonitor 來監視 trident-csi 服務並監聽 metrics 連接埠。範例 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 的指標。

除了直接從 Trident 取得的指標之外、 kubelet 還透過自己的指標端點公開了許多 `kubelet_volume_*`指標。Kubelet 可以提供有關已掛載磁碟區、 Pod 以及它處理的其他內部操作的資訊。請參閱 "這裡"

透過 HTTPS 使用 Trident 指標

若要透過 HTTPS(連接埠 8444)使用 Trident 指標,您必須修改 ServiceMonitor 定義以包含 TLS 組態。您還需要將 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 支援所有安裝方法中的 HTTPS 指標:tridentctl、Helm chart 和 Operator:

  • 如果您使用 tridentctl install 指令,可以傳遞 --https-metrics 標誌來啟用 HTTPS 指標。

  • 如果您使用的是 Helm chart,則可以設定 httpsMetrics 參數以啟用 HTTPS 指標。

  • 如果您正在使用 YAML 檔案,您可以在 trident-deployment.yaml 檔案中的 trident-main container 新增 --https_metrics flag。

步驟 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 執行作業的平均持續時間(毫秒)

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 每天向 NetApp 發送 Prometheus 指標和基本後端資訊。

  • 若要阻止 Trident 向 NetApp 發送 Prometheus 指標和基本後端訊息,請在 Trident 安裝期間傳遞 --silence-autosupport 標誌。

  • Trident 也可以透過 `tridentctl send autosupport`按需向 NetApp 支援部門發送容器日誌。您需要觸發 Trident 上傳日誌。提交日誌之前,您應該接受 NetApp 的https://www.netapp.com/company/legal/privacy-policy/["隱私權政策"^]。

  • 除非另有說明,Trident 會取得過去 24 小時的日誌。

  • 您可以使用 --since`旗標指定日誌保留時間範圍。例如: `tridentctl send autosupport --since=1h。此資訊會透過與 Trident 一起安裝的 `trident-autosupport`容器收集並傳送。您可以在 "Trident AutoSupport"取得容器映像。

  • Trident AutoSupport 不會收集或傳輸個人識別資訊(PII)或個人資訊。它附帶 "最終用戶授權協議"不適用於 Trident 容器映像本身。您可以深入瞭解 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 檔案來設定 proxy URL。這可以使用 tridentctl install --generate-custom-yaml`來建立 YAML 檔案,並為 `trident-autosupport container 在 `trident-deployment.yaml`中新增 `--proxy-url`參數來完成。

停用 Trident 指標

若要停用指標回報,您應該產生自訂 YAML(使用 --generate-custom-yaml 旗標),並編輯它們以移除 --metrics 旗標,使其不會在 trident-main 容器中被呼叫。