1. 程式人生 > 其它 >Ceph 服務管理之監控服務

Ceph 服務管理之監控服務

Ceph Dashboard 使用Prometheus、Grafana和相關工具來儲存和視覺化有關叢集利用率和效能的詳細指標。Ceph 使用者有三種選擇:

  1. 讓 cephadm 部署和配置這些服務。這是引導新叢集時的預設設定,除非使用該 --skip-monitoring-stack 選項。
  2. 手動部署和配置這些服務。對於在其環境中擁有現有 prometheus 服務的使用者(以及 Ceph 使用 Rook 在 Kubernetes 中執行的情況),建議使用此方法。
  3. 完全跳過監控堆疊。某些 Ceph 儀表板圖表將不可用。

監控棧由Prometheus、Prometheus 匯出器(Prometheus Module、Node exporter)、Prometheus Alert Manager和Grafana 組成。

筆記: Prometheus 的安全模型假定不受信任的使用者可以訪問 Prometheus HTTP 端點和日誌。不受信任的使用者可以訪問 Prometheus 收集的包含在資料庫中的所有(元)資料,以及各種操作和除錯資訊。但是,Prometheus 的 HTTP API 僅限於只讀操作。無法使用 API 更改配置,並且不會公開機密。此外,Prometheus 有一些內建措施來減輕拒絕服務攻擊的影響。請參閱Prometheus 的安全模型 https://prometheus.io/docs/operating/security/瞭解更多詳細資訊。

使用 CEPHADM 部署監控

cephadm的預設行為是部署一個基本的監控堆疊。

但是,您可能有一個沒有監控堆疊的 Ceph 叢集,並且您想向其中新增一個監控堆疊。(這裡有一些方法可以讓您擁有一個沒有監控堆疊的 Ceph 叢集:您可能在安裝叢集期間將--skip-monitoring stack選項傳遞給了cephadm,或者您可能已經將現有叢集(沒有監控堆疊)轉換為cephadm管理。)

要在沒有監控的 Ceph 叢集上設定監控,請按照以下步驟操作:

1.在叢集的每個節點上部署節點匯出器服務。node-exporter 提供主機級別的指標,例如 CPU 和記憶體利用率:

ceph orch apply node-exporter

部署警報管理器:

ceph orch apply alertmanager

部署普羅米修斯。一個 Prometheus 例項就足夠了,但為了實現高可用性 (HA),您可能需要部署兩個:

ceph orch apply prometheus

要麼:

ceph orch apply prometheus --placement 'count:2'

部署 grafana:

ceph orch apply grafana

網路和埠

所有監控服務都可以使用 yaml 服務規範配置它們繫結的網路和埠

示例規範檔案:

service_type: grafana
service_name: grafana
placement:
  count: 1
networks:
- 192.169.142.0/24
spec:
  port: 4200

使用自定義映象

可以基於其他映象安裝或升級監控元件。為此,需要首先將要使用的映象的名稱儲存在配置中。以下配置選項可用。

  • container_image_prometheus
  • container_image_grafana
  • container_image_alertmanager
  • container_image_node_exporter

可以使用命令ceph config設定自定義映象:

ceph config set mgr mgr/cephadm/<option_name> <value>

例如:

ceph config set mgr mgr/cephadm/container_image_prometheus prom/prometheus:v1.4.1

如果已經有正在執行的監視堆疊守護程式的型別與您已更改其映象的型別相同,則必須重新部署守護程式才能讓它們實際使用新映象。

例如,如果您更改了 prometheus 映象

ceph orch redeploy prometheus
筆記: 通過設定自定義映象,預設值將被覆蓋(但不會被覆蓋)。當更新可用時,預設值會更改。通過設定自定義映象,您將無法自動更新已設定自定義映象的元件。您將需要手動更新配置(映象名稱和標籤)才能安裝更新。

如果您選擇使用建議,則可以重置之前設定的自定義映象。之後,將再次使用預設值。ceph config rm用於重置配置選項:

ceph config rm mgr mgr/cephadm/<option_name>

例如:

ceph config rm mgr mgr/cephadm/container_image_prometheus

使用自定義配置檔案

通過覆蓋 cephadm 模板,可以完全自定義監控服務的配置檔案。

在內部,cephadm 已經使用Jinja2模板為所有監控元件生成配置檔案。為了能夠自定義 Prometheus、Grafana 或 Alertmanager 的配置,可以為每個將用於配置生成的服務儲存一個 Jinja2 模板。每次部署或重新配置此類服務時,都會評估此模板。這樣,自定義配置將被保留並自動應用於這些服務的未來部署。

筆記: 當 cephadm 的預設配置更改時,自定義模板的配置也會保留。如果要使用更新後的配置,則需要在每次升級 Ceph 後手動遷移自定義模板。

選項名稱

可以覆蓋將由 cephadm 生成的檔案的以下模板。這些是與 ceph config-key set 一起儲存時要使用的名稱:

  • services/alertmanager/alertmanager.yml
  • services/grafana/ceph-dashboard.yml
  • services/grafana/grafana.ini
  • services/prometheus/prometheus.yml

您可以在以下位置src/pybind/mgr/cephadm/templates查詢 cephadm 當前使用的檔案模板:

  • services/alertmanager/alertmanager.yml.j2
  • services/grafana/ceph-dashboard.yml.j2
  • services/grafana/grafana.ini.j2
  • services/prometheus/prometheus.yml.j2

用法

以下命令應用單行值:

ceph config-key set mgr/cephadm/<option_name> <value>

要將檔案的內容設定為模板,請使用以下-i引數:

ceph config-key set mgr/cephadm/<option_name> -i $PWD/<filename>

筆記: 當使用檔案作為輸入時,config-key必須使用檔案的絕對路徑。

然後需要重新建立服務的配置檔案。這是使用reconfig完成的。有關更多詳細資訊,請參見以下示例。

示例

# set the contents of ./prometheus.yml.j2 as template
ceph config-key set mgr/cephadm/services/prometheus/prometheus.yml \
  -i $PWD/prometheus.yml.j2

# reconfig the prometheus service
ceph orch reconfig prometheus

在沒有 CEPHADM 的情況下部署監控

如果您有現有的 prometheus 監控基礎架構,或者想自己管理它,則需要對其進行配置以與您的 Ceph 叢集整合。

  • 在 ceph-mgr 守護程序中啟用 prometheus 模組
ceph mgr module enable prometheus

預設情況下,ceph-mgr 在每個執行 ceph-mgr 守護程序的主機上的 9283 埠上顯示 prometheus 指標。配置 prometheus 來抓取這些。

  • 要啟用儀表板的基於 prometheus 的警報,請參閱啟用 Prometheus 警報。

  • 要啟用儀表板與 Grafana 的整合,請參閱啟用 Grafana 儀表板的嵌入。

禁用監控

要禁用監控並刪除支援它的軟體,請執行以下命令:

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

另請參閱刪除服務。

設定 RBD-IMAGE 監控

由於效能原因,預設情況下禁用 RBD 映象監控。有關詳細資訊,請參閱 Ceph 健康檢查。如果禁用,Grafana 中的概述和詳細資訊儀表板將保持空白,Prometheus 中將看不到指標。

設定 GRAFANA

手動設定 GRAFANA URL

Cephadm 在所有情況下都會自動配置 Prometheus、Grafana 和 Alertmanager,除了一種。

在某些設定中,Dashboard 使用者的瀏覽器可能無法訪問 Ceph Dashboard 中配置的 Grafana URL。當叢集和訪問使用者位於不同的 DNS 區域時,可能會發生這種情況。

如果是這種情況,您可以使用 Ceph Dashboard 的配置選項來設定使用者瀏覽器用於訪問 Grafana 的 URL。cephadm 永遠不會更改此值。要設定此配置選項,請發出以下命令:

ceph dashboard set-grafana-frontend-api-url <grafana-server-api>

部署服務可能需要一兩分鐘。部署服務後,您應該在發出ceph orch ls命令時看到如下內容:

$ ceph orch ls
NAME           RUNNING  REFRESHED  IMAGE NAME                                      IMAGE ID        SPEC
alertmanager       1/1  6s ago     docker.io/prom/alertmanager:latest              0881eb8f169f  present
crash              2/2  6s ago     docker.io/ceph/daemon-base:latest-master-devel  mix           present
grafana            1/1  0s ago     docker.io/pcuzner/ceph-grafana-el8:latest       f77afcf0bcf6   absent
node-exporter      2/2  6s ago     docker.io/prom/node-exporter:latest             e5a616e4b9cf  present
prometheus         1/1  6s ago     docker.io/prom/prometheus:latest                e935122ab143  present

為 GRAFANA 配置 SSL/TLS

cephadm使用 ceph 鍵/值儲存中定義的證書部署 Grafana。如果未指定證書,則在cephadm部署 Grafana 服務期間生成自簽名證書。

可以使用以下命令配置自定義證書:

ceph config-key set mgr/cephadm/grafana_key -i $PWD/key.pem
ceph config-key set mgr/cephadm/grafana_crt -i $PWD/certificate.pem

如果您已經部署了 Grafana,請在服務上執行reconfig以更新其配置:

ceph orch reconfig grafana

該reconfig命令還為 Ceph Dashboard 設定正確的 URL。

設定初始管理員密碼

預設情況下,Grafana 不會建立初始管理員使用者。為了建立管理員使用者,請建立一個包含以下內容的grafana.yaml檔案:

service_type: grafana
spec:
  initial_admin_password: mypassword

然後應用此規範:

ceph orch apply -i grafana.yaml
ceph orch redeploy grafana

Grafana 現在將建立一個使用給定密碼呼叫的管理員使用者admin。

設定警報管理器

新增 ALERTMANAGER WEBHOOK

要將新的 webhook 新增到 Alertmanager 配置中,請新增額外的 webhook url,如下所示:

service_type: alertmanager
spec:
  user_data:
    default_webhook_urls:
    - "https://foo"
    - "https://bar"

default_webhook_urls的附加 URL 列表將新增到預設接收器的<webhook_configs>配置。

在服務上執行reconfig以更新其配置:

ceph orch reconfig alertmanager
作者:Varden 出處:http://www.cnblogs.com/varden/ 本文內容如有雷同,請聯絡作者! 本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。