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

監控 Trident

貢獻者 netapp-aruldeepa juliantap netapp-mwallis netapp-asubhas

Trident 提供一組 Prometheus 指標端點、可用於監控 Trident 效能。

總覽

Trident 提供的計量可讓您執行下列動作:

  • 保留 Trident 健全狀況和組態的索引標籤。您可以檢查作業的成功程度、以及是否能如預期般與後端進行通訊。

  • 檢查後端使用資訊、並瞭解後端上配置的磁碟區數量、以及所耗用的空間量等。

  • 維護可用後端配置的磁碟區數量對應。

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

註 預設情況下,Trident 的指標會暴露在目標連接埠上。 `8001`在 `/metrics`端點。安裝Trident時,這些指標*預設為啟用*。您可以設定透過 HTTPS 在連接埠上消費Trident指標。 `8444`也一樣。
您需要的產品

步驟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 取得的指標之外、 kibelet 還會透過自己的指標端點來公開許多 `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 文件,則可以新增以下內容: `--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 執行之作業的平均持續時間(以毫秒為單位)

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

取得 Trident 使用資訊

  • 平均Volume大小*

trident_volume_allocated_bytes/trident_volume_count
  • 每個後端配置的Volume空間總計*

sum (trident_volume_allocated_bytes) by (backend_uuid)

取得個別Volume使用量

註 只有同時收集kubelet度量時、才會啟用此功能。
  • 每個Volume的已用空間百分比*

kubelet_volume_stats_used_bytes / kubelet_volume_stats_capacity_bytes * 100

瞭解 Trident AutoSupport 遙測

根據預設、 Trident 會在每日步調中、將 Prometheus 指標和基本後端資訊傳送至 NetApp 。

  • 若要停止 Trident 傳送 Prometheus 度量和基本後端資訊至 NetApp 、請在 Trident 安裝期間傳遞 `--silence-autosupport`旗標。

  • Trident 也可以透過將容器記錄傳送至 NetApp 隨選支援 tridentctl send autosupport。您需要觸發 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)或個人資訊。隨附 "EULA" 不適用於 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
  • 此資訊將傳送至NetApp的「不只是」端點。AutoSupport AutoSupport如果您使用私有登錄來儲存容器映像、可以使用「-image-registry」旗標。

  • 您也可以產生安裝Yaml檔案來設定Proxy URL。您可以使用「tridentctl install -generate-custom-yaml」來建立Yaml檔案、並在「trident部署.yaml」中新增「trident -autodupport」容器的「-proxy-URL」引數。

停用 Trident 計量

要使指標不被報告,您應該生成自定義YAML(使用"-generame-custom-yaml"標誌)並進行編輯,以刪除對"trident-main"容器所調用的"-mication"標誌。