跳至內容跳至頁面導覽:上一頁 [access key p]/下一頁 [access key n]
documentation.suse.com / SUSE Enterprise Storage 7.1 文件 / 管理和操作指南 / 叢集操作 / 監控和警示
適用範圍 SUSE Enterprise Storage 7.1

16 監控和警示

在 SUSE Enterprise Storage 7.1 中,cephadm 會部署一個監控和警示堆疊。使用者需要在 YAML 組態檔案中定義要使用 cephadm 部署的服務 (例如 Prometheus、警示管理員和 Grafana),也可以使用 CLI 來部署這些服務。當部署多個相同類型的服務時,會部署高可用性設定。但 Node Exporter 不適用於此規則。

使用 cephadm 可以部署以下監控服務:

  • Prometheus 是監控和警示工具套件。它會收集 Prometheus 輸出程式提供的資料,並在達到預先定義的閾值時觸發預先設定的警示。

  • Alertmanager 用於處理 Prometheus 伺服器傳送的警示。它將負責重複資訊刪除、分組並將警示路由到正確的接收器。依預設,Ceph Dashboard 將自動設定為接收器。

  • Grafana 是虛擬化和警示軟體。此監控堆疊不使用 Grafana 的警示功能。而是使用警示管理員進行警示。

  • Node Exporter 是 Prometheus 的輸出程式,用於提供其所安裝到之節點的相關資料。建議您在所有節點上安裝 Node Exporter。

Prometheus 管理員模組提供了 Prometheus 輸出程式,可從 ceph-mgr 中的收集點傳遞 Ceph 效能計數器。

Prometheus 組態 (包括抓取目標 (度量提供精靈)) 由 cephadm 自動設定。cephadm 還會部署預設警示清單,例如 health error10% OSDs downpgs inactive

依預設,傳送到 Grafana 的流量會使用 TLS 加密。您可以提供自己的 TLS 證書,也可以使用自行簽署的證書。如果在部署 Grafana 之前未設定自訂證書,則將自動為 Grafana 建立和設定自行簽署的證書。

可以透過執行以下步驟來為 Grafana 設定自訂證書:

  1. 設定證書檔案:

    cephuser@adm >  ceph config-key set mgr/cephadm/grafana_key -i $PWD/key.pem
    cephuser@adm >  ceph config-key set mgr/cephadm/grafana_crt -i $PWD/certificate.pem
  2. 重新啟動 Ceph 管理員服務:

    cephuser@adm > ceph orch restart mgr
  3. 重新設定 Grafana 服務,以反映新證書路徑並為 Ceph Dashboard 設定正確的 URL:

    cephuser@adm > ceph orch reconfig grafana

Alertmanager 處理 Prometheus 伺服器傳送的警示。它負責重複資訊刪除、分組,並將它們路由到正確的接收器。可以使用警示管理員消除警示,但也可以使用 Ceph Dashboard 管理靜默功能。

建議您在所有節點上部署 Node exporter。可以使用含有 node-exporter 服務類型的 monitoring.yaml 檔案執行此操作。如需部署服務的詳細資訊,請參閱第 8.3.8 節 「部署監控堆疊」

16.1 設定自訂或本地影像

提示
提示

本節說明如何變更部署或更新服務時所使用的容器影像組態。不包括部署或重新部署服務所需的指令。

部署監控堆疊的推薦方法是依據第 8.3.8 節 「部署監控堆疊」中所述套用其規格。

若要部署自訂或本地容器影像,需要在 cephadm 中設定影像。為此,您需要執行以下指令:

cephuser@adm > ceph config set mgr mgr/cephadm/OPTION_NAME VALUE

其中,OPTION_NAME 為以下任何名稱:

  • container_image_prometheus

  • container_image_node_exporter

  • container_image_alertmanager

  • container_image_grafana

如果未設定任何選項或已移除該設定,則將使用以下影像做為 VALUE

  • registry.suse.com/ses/7.1/ceph/prometheus-server:2.32.1

  • registry.suse.com/ses/7.1/ceph/prometheus-node-exporter:1.1.2

  • registry.suse.com/ses/7.1/ceph/prometheus-alertmanager:0.21.0

  • registry.suse.com/ses/7.1/ceph/grafana:7.5.12

例如:

cephuser@adm > ceph config set mgr mgr/cephadm/container_image_prometheus prom/prometheus:v1.4.1
注意
注意

設定自訂影像將覆蓋預設值 (但並不會覆寫)。當有可用更新時,預設值將發生變更。設定自訂影像後,您將無法自動更新設定了自訂影像的元件。您需要手動更新組態 (影像名稱和標記) 才能安裝更新。

如果您選擇遵循這些建議,則可以重設先前設定的自訂影像。之後,將再次使用預設值。使用 ceph config rm 重設組態選項:

cephuser@adm > ceph config rm mgr mgr/cephadm/OPTION_NAME

例如:

cephuser@adm > ceph config rm mgr mgr/cephadm/container_image_prometheus

16.2 更新監控服務

依據第 16.1 節 「設定自訂或本地影像」中所述,cephadm 隨附了推薦且經過測試之容器影像的 URL,預設會使用這些 URL。

更新 Ceph 套件後,可能會隨附這些 URL 的新版本。如此只會更新容器影像的提取位置,而不會更新任何服務。

更新新容器影像的 URL (可以依據第 16.1 節 「設定自訂或本地影像」中所述執行手動更新,也可以透過更新 Ceph 套件進行自動更新) 後,便可以更新監控服務。

若要執行此操作,請使用 ceph orch reconfig,如下所示:

cephuser@adm > ceph orch reconfig node-exporter
cephuser@adm > ceph orch reconfig prometheus
cephuser@adm > ceph orch reconfig alertmanager
cephuser@adm > ceph orch reconfig grafana

目前沒有可更新所有監控服務的單一指令。這些服務的更新順序並不重要。

注意
注意

如果您使用自訂容器影像,則在更新 Ceph 套件時為監控服務指定的 URL 將不會自動變更。如果您已指定自訂容器影像,則需要手動指定新容器影像的 URL。使用本地容器登錄時,可能會出現這種情況。

您可以在第 16.1 節 「設定自訂或本地影像」一節中找到要使用的推薦容器影像的 URL。

16.3 停用監控

若要停用監控堆疊,請執行以下指令:

cephuser@adm > ceph orch rm grafana
cephuser@adm > ceph orch rm prometheus --force   # this will delete metrics data collected so far
cephuser@adm > ceph orch rm node-exporter
cephuser@adm > ceph orch rm alertmanager
cephuser@adm > ceph mgr module disable prometheus

16.4 設定 Grafana

Ceph Dashboard 後端要求 Grafana URL 能夠在前端均衡載入 Grafana 儀表板之前確認其是否存在。由於 Grafana 在 Ceph Dashboard 中實作方式的本質,意味著需要兩個有效連接才能在 Ceph Dashboard 中看到 Grafana 圖形:

  • 後端 (Ceph MGR 模組) 需要確認所要求的圖形是否存在。如果此要求成功,便會告知前端它可以安全地存取 Grafana。

  • 然後,前端會使用 iframe 直接從使用者的瀏覽器要求 Grafana 圖形。可以直接存取 Grafana 例項,而無需再經由 Ceph Dashboard。

現在,您的環境可能會讓使用者的瀏覽器難以直接存取 Ceph Dashboard 中設定的 URL。為解決此問題,可以設定一個單獨的 URL,專用於告知前端 (使用者的瀏覽器) 應使用哪個 URL 來存取 Grafana。

若要變更傳回給前端的 URL,請發出以下指令:

cephuser@adm > ceph dashboard set-grafana-frontend-api-url GRAFANA-SERVER-URL

如果沒有為該選項設定任何值,它將回復為 GRAFANA_API_URL 選項的值,該選項值自動設定並由 cephadm 定期更新。如果設定了值,它將指示瀏覽器使用此 URL 來存取 Grafana。

16.5 設定 Prometheus 管理員模組

Prometheus 管理員模組是一個 Ceph 內部模組,它延伸了 Ceph 的功能。該模組會從 Ceph 讀取有關其狀態和狀況的 (中繼) 資料,並以可使用的格式向 Prometheus 提供 (抓取的) 資料。

注意
注意

需要重新啟動 Prometheus 管理員模組才能套用組態變更。

16.5.1 設定網路介面

依預設,Prometheus 管理員模組接受主機上所有 IPv4 和 IPv6 位址的連接埠 9283 上的 HTTP 要求。連接埠和監聽位址都可使用 ceph config-key set 進行設定,並使用機碼 mgr/prometheus/server_addrmgr/prometheus/server_port。此連接埠已在 Prometheus 的登錄中註冊。

若要更新 server_addr,請執行以下指令:

cephuser@adm > ceph config set mgr mgr/prometheus/server_addr 0.0.0.0

若要更新 server_port,請執行以下指令:

cephuser@adm > ceph config set mgr mgr/prometheus/server_port 9283

16.5.2 設定 scrape_interval

依預設,Prometheus 管理員模組設定了 15 秒的抓取間隔。我們建議使用的抓取間隔不得少於 10 秒。若要在 Prometheus 模組中設定其他抓取間隔,請將 scrape_interval 設定為所需值:

重要
重要

若要正常運作而不會導致任何問題,此模組的 scrape_interval 應永遠依據 Prometheus 抓取間隔進行設定。

cephuser@adm > ceph config set mgr mgr/prometheus/scrape_interval 15

16.5.3 設定快取

在大型叢集 (超過 1000 個 OSD) 上,擷取度量的時間可能會變得非常重要。如果沒有快取,Prometheus 管理員模組可能會令管理員超載,並導致 Ceph 管理員例項無回應或當機。因此,系統預設會啟用快取,並且不能停用快取,但這意味著快取可能會過時。當從 Ceph 擷取度量的時間超出所設定的 scrape_interval 時,快取將被視為過時。

如果發生此情況,系統將記錄一則警告,並且模組將:

  • 以 503 HTTP 狀態代碼 (服務不可用) 回應。

  • 傳回快取的內容,即使該內容可能已過時。

可使用 ceph config set 指令設定此行為。

若要告知模組以可能過時的資料進行回應,請將其設定為 return

cephuser@adm > ceph config set mgr mgr/prometheus/stale_cache_strategy return

若要告知模組以 service unavailable 進行回應,請將其設定為 fail

cephuser@adm > ceph config set mgr mgr/prometheus/stale_cache_strategy fail

16.5.4 啟用 RBD 影像監控

Prometheus 管理員模組可以透過啟用動態 OSD 效能計數器來選擇性地收集 RBD 每個影像的 IO 統計資料。如此將為在 mgr/prometheus/rbd_stats_pools 組態參數中所指定池中的所有影像收集統計資料。

參數是以逗號或空格分隔的 pool[/namespace] 項目清單。如果未指定名稱空間,則將收集池中所有名稱空間的統計資料。

例如:

cephuser@adm > ceph config set mgr mgr/prometheus/rbd_stats_pools "pool1,pool2,poolN"

該模組會掃描指定的池和名稱空間,列出所有可用影像,並定期重新整理該清單。此間隔可透過 mgr/prometheus/rbd_stats_pools_refresh_interval 參數進行設定 (以秒計),預設值為 300 秒 (5 分鐘)。

例如,如果您將同步間隔變更為 10 分鐘:

cephuser@adm > ceph config set mgr mgr/prometheus/rbd_stats_pools_refresh_interval 600

16.6 Prometheus 安全性模型

Prometheus 的安全性模型假設不受信任的使用者有權存取 Prometheus HTTP 端點和記錄。不受信任的使用者有權存取資料庫中包含的 Prometheus 收集的所有 (中繼) 資料,以及各種操作和除錯資訊。

不過,Prometheus 的 HTTP API 僅限唯讀操作。無法使用 API 變更組態,並且不會公開機密金鑰。此外,Prometheus 還有一些內建的措施可用於緩解拒絕服務攻擊的影響。

16.7 Prometheus 警示管理員 SNMP 閘道

如果您想透過 SNMP 設陷接收有關 Prometheus 警示的通知,可以透過 cephadm 或 Ceph Dashboard 安裝 Prometheus 警示管理員 SNMP 閘道。例如,如果要透過 SNMPv2c 接收此類通知,您需要建立包含以下內容的服務和放置規格檔案:

注意
注意

如需服務和放置檔案的詳細資訊,請參閱第 8.2 節 「服務和放置規格」

service_type: snmp-gateway
service_name: snmp-gateway
placement:
    ADD_PLACEMENT_HERE
spec:
  credentials:
    snmp_community: ADD_COMMUNITY_STRING_HERE
  snmp_destination: ADD_FQDN_HERE:ADD_PORT_HERE
  snmp_version: V2c

或者,您可以使用 Ceph Dashboard 部署適用於 SNMPv2c 和 SNMPv3 的 SNMP 閘道服務。如需詳細資訊,請參閱 第 4.4 節 「顯示服務」