監控 Trident
Trident 提供了一組 Prometheus 指標端點、您可以使用這些端點來監控 Trident 效能。
概況
Trident 提供的指標可讓您執行以下操作:
-
密切注意 Trident 的運作狀況和組態。您可以檢查作業的成功程度,以及它是否能如預期般與後端通訊。
-
檢查後端使用資訊,了解後端配置了多少磁碟區、消耗的空間量等等。
-
維護可用後端已配置磁碟區數量的映射表。
-
追蹤效能。您可以查看 Trident 與後端通訊以及執行作業所需的時間。
|
|
預設情況下, Trident 的指標會在目標連接埠 `8001`的 `/metrics`端點上公開。安裝 Trident 時,這些指標*預設為啟用*。您也可以設定為透過 HTTPS 在連接埠 `8444`上使用 Trident 指標。 |
-
已安裝 Trident 的 Kubernetes 叢集。
-
一個 Prometheus 執行個體。這可以是 "容器化 Prometheus 部署",或者您可以選擇將 Prometheus 作為 "原生應用程式"執行。
步驟 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-maincontainer 新增--https_metricsflag。
步驟 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-autosupportcontainer 在 `trident-deployment.yaml`中新增 `--proxy-url`參數來完成。
停用 Trident 指標
若要停用指標回報,您應該產生自訂 YAML(使用 --generate-custom-yaml 旗標),並編輯它們以移除 --metrics 旗標,使其不會在 trident-main 容器中被呼叫。