Ceph Dashboad全功能安裝集成

引言

在這個特殊的時期裡,有比較多的時間折騰技術,在前段時間折騰完Cobbler以及Ansible Tower後,想著要折騰啥?這時候想起來,之前看技術文章知道最新版本的Ceph Nautilus官方集成了Dashboard界面,只是看過截圖,感覺是很炫酷,在Ceph經歷了多年的使用多種第三方Dashboard工具,如:Calamari、VSM等後,終於迎來了官方Dashboard,最初只是想體驗下原生的Dashboard是什麼樣子的,在開始搭建的過程中,發現Dashboard的模式不是直接啟用模塊所有的功能就能正常使用,初始安裝好只有最基本的Ceph集群以及RBD管理等功能,像文件存儲、對象存儲、iSCSI網關、NFS網關、監控都是沒有集成的,都需要單獨集成,Ceph啟用Dashboard的資料網上能找到的多數是直接啟用Dashboard模塊,集成其它模塊的中文資料也很少,因此也開啟了一路不斷踩坑不斷驗證的模式,歷時數十天終於安裝集成完畢,現總結下經驗,供同行參考,避免大家浪費時間踩坑,故引出此文。

Ceph Dashboard介紹

Ceph的官方Dashboard正式是從Ceph luminous版本開始,最初是一個簡單的只讀視圖,可查看Ceph集群的各種運行時信息和性能數據,而無需身份驗證或任何管理功能。

Ceph Nautilus後的Dashboard可實現管理Ceph的功能,其來源於suse收購的的商業Ceph管理軟件openATTIC的功能移植。

現在的Ceph Dashboard後端代碼使用CherryPy框架和自定義REST API實現。WebUI基於Angular 實現。

Ceph Dashboad全功能安裝集成


實驗環境介紹

本實驗環境使用4臺虛擬機,使用workstation搭建,部署節點使用2vCPU、2GB內存,20Gb磁盤,存儲節點每臺虛擬機配置2vCPU、2GB內存、1塊20Gb系統盤、3塊100G數據盤,1塊網卡(為了簡單沒有區分群集網和存儲網),節點使用的操作系統為CentOS7.7最小化安裝。


Ceph Dashboad全功能安裝集成

注意:每臺虛擬機主機名稱必須按照上表中的名稱命名,因為在安裝MON的時候會調用每一臺的主機名,所以不能是默認的localhost。

安裝方式說明

本文主要是參考官方文檔手工安裝的方式,當然一些商業版本的Ceph已經實現了圖形化安裝,比如像Redhat 最新版本Red Hat Ceph Storage 4已經實現圖形化安裝,如下圖所示,有興趣可以嘗試下。

Ceph Dashboad全功能安裝集成

Ceph Dashboad全功能安裝集成

Ceph Dashboad全功能安裝集成


準備工作

5.1 配置防火牆

為了最大程度簡化實驗步驟,關閉每一臺節點的防火牆功能,生產環境中請根據實際情況打開並開放相應端口。

<code>

systemctl stop firewalld

systemctl

disable

firewalld

/<code>

5.2 配置SELINUX

為了防止出現由於SELinux引起意外問題,關閉每一臺的SELinux。

<code> 
/<code>

5.3 配置安裝工具源

在每一臺節點上安裝epel源。

<code>/<code>

5.4 配置域名解析

配置本地主機名解析。

<code>  

192.168

.123

.240

ceph-admin

ceph-admin.localdomain

192.168

.123

.199

ceph-node1

ceph-node1.localdomain

192.168

.123

.238

ceph-node2

ceph-node2.localdomain

192.168

.123

.242

ceph-node3

ceph-node3.localdomain

/<code>

溫馨提醒

此處必須設置FQDN,也就是完全合格域名,不能只是主機名,否者在啟用iSCSI網關是會出現錯誤,在後方中會詳細介紹故障現象,此處只要記住必須要設置FQDN就行;

ceph dashboard中 prometheus、iscsi target以及mgr service中都需要FQDN,所以這步比較重要,確保各主機能相互解析。

5.5 配置NTP

每一臺上安裝NTP服務,並設置管理節點為NTP Server,其它節點為Client節點。

<code> /<code>

配置Ceph-admin節點為ntp server。

<code> 

allow

192.168

.123

.0

/24

/<code>

重啟chrony服務。

<code>/<code>

配置其它Ceph節點為ntp client。

<code> 

server

ceph-admin iburst/<code>

重啟chrony服務。

<code> 
/<code>

在其它節點確認配置好了NTP

<code> 

210

Number

of

sources

=

4

MS

Name/IP

address

         

Stratum

Poll

Reach

LastRx

Last

sample

               

===============================================================================

^*

 

ceph-admin

                     

3

   

9

     

0

   

68m

   

+39us[

 

+45us]

+/-

   

18ms

^-

time.cloudflare.com

           

3

 

10

   

352

   

49m

 

+5653us[+5653us]

+/-

   

71ms

^?

de-user.deepinid.deepin.>

     

3

 

10

   

21

   

21m

 

-2286us[-2286us]

+/-

   

97ms

^?

2402

:f000:1:416:101:6:6:>

     

0

   

6

     

0

     

-

     

+0ns[

   

+0ns]

+/-

   

0ns

/<code>

5.6 升級系統內核

由於需要配置iscsi網關,而iscsi網關需要操作系統內核版本為Linux內核v4.16(或更高版本),所以需要升級CentOS7.7的系統內核。

查看當前使用的內核版本。

<code>

#uname

-r

3

.10

.0-862

.el7

.x86_64

/<code>

導入public key。

<code> 
 
/<code>

查看安裝的內核版本。

<code> 

kernel

-ml-5.5.8-1/<code>

設置kernel默認啟動項。

<code># grub2-

set

-

default

"kernel-ml-5.5.8-1"

/<code>

查看新設置的默認的啟動項,並重啟系統。

<code>/<code>

正式開始搭建Ceph

6.1 配置Ceph源

在部署節點配置Ceph-deploy工具的國內yum源。

<code> 

[ceph-noarch]

name

=Ceph noarch packages

baseurl

=http://mirrors.

163

.com/ceph/rpm-nautilus/el7/noarch

enabled

=

1

gpgcheck

=

1

priority

=

1

type

=rpm-md

gpgkey

=http://mirrors.

163

.com/ceph/keys/release.asc/<code>

6.2 安裝Ceph-Deploy

在部署節點安裝Ceph-deploy工具,並查看版本為2.0.1,注意不配置Ceph-deploy yum源,默認也可以下載ceph-deploy,但下載的是1.5,此版本有bug,需要安裝額外缺失的包才能正常使用。

<code>

#yum

install

python-setuptools

-y

#yum

install

ceph-deploy

-y

#ceph-deploy

--version

2

.0

.1

/<code>

6.3 配置無密碼登錄

配置無密碼登錄。

<code> 
 
 
/<code>

6.4 開始安裝Ceph

創建初始化目錄。

<code>

mkdir my-cluster&&

cd

my-cluster

/<code>

ceph-deploy生產一些文件到當前目錄。執行部署時請確保您位於此目錄下。

創建命名為ceph集群。

<code>

#ceph-deploy

new

 

ceph-node1

.localdomain

 

ceph-node2

.localdomain

 

ceph-node

.localdomain

/<code>


檢查當前目錄中會出現ceph.conf,ceph.mon.keyring文件。

安裝Ceph軟件包,默認ceph-deploy會自動下載匹配版本的ceph,想要自動定義安裝版本使用--release指定安裝的Ceph版本以及使用--repo-url指定自動配置的Ceph yum源,不指定--repo-url,Ceph-deploy會自動配置成國外的Ceph源,國內訪問慢,容易安裝失敗。

這裡指定的主機名需要和做ssh免密碼登錄的主機名相同,否者還是會提示輸入密碼。

<code>/<code>


部署mon。

<code>/<code>

溫馨提醒

執行此命令前需要確保每臺存儲節點主機名為第三章節中規劃的主機名,否者會報錯。

執行此命令後會生成如下文件。

<code>

#cd

my-cluster

&

ls

ceph

.client

.admin

.keyring

ceph

.bootstrap-mgr

.keyring

ceph

.bootstrap-osd

.keyring

ceph

.bootstrap-mds

.keyring

ceph

.bootstrap-rgw

.keyring

ceph

.bootstrap-rbd

.keyring

ceph

.bootstrap-rbd-mirror

.keyring

/<code>

推送配置文件到各Ceph節點。

<code> 

#ceph-deploy

admin

 

ceph-node1

.localdomain

 

ceph-node2

.localdomain

 

ceph-node3

.localdomain

/<code>

初始化OSD。

<code>#ceph-deploy osd 

create

#ceph-deploy osd

create

#ceph-deploy osd

create

#ceph-deploy osd

create

#ceph-deploy osd

create

#ceph-deploy osd

create

#ceph-deploy osd

create

#ceph-deploy osd

create

#ceph-deploy osd

create

/<code>

在3個存儲節點上都部署mgr。

<code>

#ceph-deploy

mgr

create

 

ceph-node1

.localdomain

#ceph-deploy

mgr

create

 

ceph-node2

.localdomain

#ceph-deploy

mgr

create

 

ceph-node3

.localdomain

/<code>

檢查Ceph群集狀態。

<code>/<code>

6.5 安裝Dashboard

至此ceph群集安裝完成,但還沒有啟用Dashboard插件,下面我們開始配置Dashboard插件

在所有dashboard節點上安裝插件包。

<code>/<code>

開啟插件。

<code>

ceph mgr module

enable

dashboard

/<code>

禁用SSL。

<code>

ceph config

set

mgr mgr/dashboard/ssl

false

/<code>

配置監聽IP。

<code>

ceph config

set

mgr mgr/dashboard/server_addr 0.0.0.0

/<code>

溫馨提醒

此處必須設置監控地址為0.0.0.0,而不能是直接IP地址,因為其監控的是所有本地地址包括IPV4和IPV6,同時也不能禁用IPV6地址。

配置監聽端口。

<code>

ceph config

set

mgr mgr/dashboard/server_port 8443

/<code>

設置用戶及密碼。

<code>/<code>

查看已開啟模塊信息。

<code>/<code>

使用配置生效。

<code>

ceph mgr module

disable

dashboard

ceph mgr module

enable

dashboard

/<code>

通過查看ceph mgr services命令輸出地址。

<code> 
{
    

"dashboard"

:

"http://ceph-node1.localdomain:8443/"

}/<code>

訪問Ceph Dashboard地址
http://192.168.123.199:8443/#/dashboard

Ceph Dashboad全功能安裝集成

至此Dashboard安裝完成,但其它的功能,如:rgw,cephfs,iscsi,監控等都需要手工啟用,需要一個個啟用這些功能,如下圖所示:

rgw沒有啟用:

Ceph Dashboad全功能安裝集成

cephfs沒有啟用:

Ceph Dashboad全功能安裝集成

nfs沒有啟用:

Ceph Dashboad全功能安裝集成

iscsi沒有啟用:

Ceph Dashboad全功能安裝集成

監控沒有啟用:

Ceph Dashboad全功能安裝集成

6.6 安裝RGW

默認Ceph沒有安裝rgw,需要安裝rgw,在所有rgw節點上安裝。

<code>/<code>

創建rgw實例。

<code>

#ceph-deploy

rgw

create

 

ceph-node1

.localdomain

#ceph-deploy

rgw

create

 

ceph-node2

.localdomain

#ceph-deploy

rgw

create

 

ceph-node3

.localdomain

/<code>

命令執行後,可以通過http://rgw-node:7480測試是否安裝成功,出現以下內容證明rgw安裝成功。

Ceph Dashboad全功能安裝集成

6.7 Dashboard中啟用RGW

如前文所講,Ceph Dashboard默認安裝好後,沒有啟用rgw,需要手工Dashboard中啟用RGW,以下命令都在Ceph存儲節點執行。

創建rgw系統賬戶。

<code>#radosgw-admin user 

create

/<code>

記下輸出的access_key 和 secret_key的值,當初沒有記下也可以通過以下命令查看(可選)

<code>/<code>

為Dashboard設置access_key 和 secret_key。

<code> 
/<code>

禁用SSL。

<code>

ceph dashboard

set

-rgw-api-ssl-verify False

/<code>

這時候打開Dashboard就能看到rgw信息能正常顯示了。

Ceph Dashboad全功能安裝集成

6.8 安裝Cephfs

如前文所講,Ceph Dashboard默認安裝好後,沒有啟用ceogfs,需要手工Dashboard中啟用cephfs,以下命令除了ceph-deploy命令在部署節點執行,其他命令都在ceph節點執行。

<code>

#ceph-deploy

mds

create

 

ceph-node1

.localdomain

#ceph-deploy

mds

create

 

ceph-node2

.localdomain

#ceph-deploy

mds

create

 

ceph-node3

.localdomain

/<code>

創建池。

<code> 
/<code>

創建文件系統。

<code>/<code>

查看mds狀態。

<code> 

cephfs:1 {0=node3.localdomain=up:active}

/<code>

Ceph fs不需要做其它集成工作,所以直接在Dashboard中就可以顯示了。

Ceph Dashboad全功能安裝集成

6.9 配置nfs

自從Ceph Jewel版本,nfs-ganesha開始支持ceph,ganesha通過兩種方式支持將ceph導出為nfs。一種通過rgw,一種通過cephfs,FSAL_RGW調用librgw2將NFS協議轉義為S3協議再通過RGW存入到Ceph中,FSAL_CEPH 調用libcephfs2將NFS轉義為Cephfs協議再存入到Ceph 中,但之前都是命令行方式的支持,在Ceph Nautilus中Ceph Dashboard現在也支持配置這兩種方式的NFS。

Ceph Dashboad全功能安裝集成

在ganesha節點查看是否安裝librgw2和libcephfs2軟件包。

<code> 

librgw2

-14.2.7-0.el7.x86_64

libcephfs2

-14.2.7-0.el7.x86_64/<code>

在ganesha節點上配置nfs-ganesha源。

<code> 

[nfs-ganesha]

name

=nfs-ganesha

baseurl

=http://us-west.ceph.com/nfs-ganesha/rpm-V2.

7

-stable/nautilus/x

86_64

/

enabled

=

1

priority

=

1

/<code>

在所有ganesha節點上安裝ganesha。

<code>/<code>

設置服務啟動以及開機啟動。

<code>

#systemctl

start

nfs-ganesha

.service

#systemctl

status

nfs-ganesha

.service

#systemctl

enable

nfs-ganesha

.service

/<code>

新建ganesha_data的pool,此pool專門用來存放一些配置文件,Dashboard管理NFS需要有些配置文件存放在Rados pool中。

<code>/<code>

新建空的daemon.txt文本文件。

<code>

#touch

 

daemon

.txt

/<code>

導入daemon文件到ganesha_data pool中。

<code>

#rados

-p

ganesha_data

put

conf-ceph-node1

.localdomain

daemon

.txt

#rados

-p

ganesha_data

put

conf-ceph-node2

.localdomain

daemon

.txt

#rados

-p

ganesha_data

put

conf-ceph-node3

.localdomain

daemon

.txt

/<code>

溫馨提醒

1.存入rados的文件名必須要是conf-xxxx,原因是要Ceph Dashboard支持NFS Ganesha管理功能,需要遵循關於每個服務守護進程的RADOS對象名稱的約定。對象的名稱必須是conf-格式,其中對應於運行此服務的節點名稱。是一個任意字符串,應唯一地標識該守護程序實例(例如,運行守護程序的主機名)。

2.當然我們創建這個文件現在是空的,後續通過Dashboard創建導出後,conf-會有內容,每個conf-都包含指向NFS-Ganesha守護程序應服務的導出的RADOS URL。這些URL的格式為:%url rados://[/]/export-,在創建新的導出時也同時會創建export-id的文件,這個文件內容存放實際的導出的配置內容,也就是之前沒有配置Dashboard時,直接配置在ganesha配置文件中的EXPORT{}的內容。

3.conf-和export-對象必須存儲在同一個RADOS池/命名空間,當然如果是通過Dashboard配置的這兩個文件肯定是在同個pool,如果手工創建的話就需要注意這點。

查看gaensha pool中存在
conf-ceph-node3.localdomain。

<code>

#rados

-p

ganesha_data

ls

conf-ceph-node1

.localdomain

conf-ceph-node2

.localdomain

conf-ceph-node3

.localdomain

/<code>

查看當前Ceph節點的rgw認證信息,如,下圖輸出
client.rgw.ceph-node3.localdomain,為後續每一臺虛擬機ganesha配置文件中RGW部分name的值。

<code> 

installed

auth entries:

client.rgw.ceph-node3.localdomain

key

:

AQABu2decDx5IhAA4/7I9iNzFkQE9s4A6XQTtw==

caps

:

[mon] allow rw

caps

:

[osd] allow rwx

/<code>

編輯每一臺節點ganesha配置文件,並根據當前所在節點輸入以下內容,如下圖顯示的是存儲節點3的配置信息,請根據情況替換成其它存儲節點配置信息。

<code> 
RADOS_URLS {
    ceph_conf = 

"/etc/ceph/ceph.conf"

;     Userid =

"admin"

;     watch_url =

"rados://ganesha_data/conf-ceph-node3.localdomain"

; } %url rados: RGW {         ceph_conf =

"/etc/ceph/ceph.conf"

;         name =

"client.rgw.ceph-node3.localdomain"

;         cluster =

"ceph"

; } /<code>

此配置文件包括3部分內容:

1.RADOS_URLS部分

  • ceph_confi主要是配置ceph的配置文件路徑
  • Userid主要是配置訪問rados的用戶名admin
  • watch_url主要是配置,當通過Dashboard生成新的配置文件存入在rados中,ganesha進程可以讀取新的內容並通過SIGHUP重新加載配置文件。

2.%url部分

  • NFS Ganesha支持從RADOS對象讀取配置。該 %url指令允許指定一個RADOS URL,該URL標識RADOS對象的位置。

3.RGW部分

  • cluster 設置一個Ceph集群名稱(必須與正在導出的集群匹配,默認使用ceph-deploy部署的ceph群集名稱為ceph)
  • name 設置RGW實例名稱(必須與正在導出的集群中的rgw節點的認證信息匹配,使用ceph auth list可以查看以client.rgw.開頭的信息)
  • ceph_conf 給出了要使用的非默認ceph.conf文件的路徑,默認路徑可以省略此行。

溫馨提醒

想要在Dashbaord中能顯示NFS配置界面,不能像網上的文章沒有配置Dashboard中使用NFS步驟一樣,在Dashbaord中顯示NFS配置,需要有部分配置文件存儲在Rados對象存儲中:

1.原先在ganesha配置文件中的EXPORT部分內容需要存放在rados文件中,這部分是直接通過Dashboard中配置生成以export-id並存放在rados中。

2.Dashboard中有需要選擇"add deamon“菜單內容,這裡正常是能顯示對應的主機名稱,要想顯示這內容,需要部分配置的內容是需要存放在rados的pool中,也就是pool中存放這conf-xxx,同時需要導出的目錄也是存放conf-xxx的目錄,否者Dashboard NFS配置中“add deamon”功能中顯示為空,不能正常選擇要導出節點名稱。


Ceph Dashboad全功能安裝集成

要在Ceph儀表板中啟用NFS-Ganesha管理,我們只需要告訴儀表板要導出哪個pool,比如以下是導出cephfs_data pool。

<code>

ceph dashboard

set

-ganesha-clusters-rados-pool-namespace ganesha_data

/<code>

溫馨提醒

此處導出目錄必須是前面創建的ganesha_data存儲池,也就是導出的池必須有conf-xxx文件,在Dashboard中才能顯示。

重啟ganesha服務,並設置開機啟動。

<code> 
 
/<code>

這時候打開Ceph Dashboard就能看到NFS模塊正常顯示了:

Ceph Dashboad全功能安裝集成

6.10 配置iscsi gw

之前Ceph存儲集群的塊存儲不支持iscsi,從Ceph Luminous版本開始支持iSCSI。

Ceph中實現iscsi 方式有兩種,一種是通過Linux target framework(tgt)實現,一種是通過Linux-IO Target(lio)實現,本文是使用的方式是LIO,LIO現在也是官方推薦的方式。

LIO的實現方式主要是利用TCMU與Ceph的librbd庫進行交互,並將RBD images映射給iSCSI客戶端,所以需要有TCMU軟件包安裝在系統中。

啟用iscsi gateway需要滿足以下條件:

  1. 正在運行的Ceph Luminous(12.2.x)集群或更高版本
  2. CentOS 7.5(或更高版本);Linux內核v4.16(或更高版本)
  3. 該ceph-iscsi軟件包安裝在所有iSCSI網關節點上
  4. 如果Ceph iSCSI網關未位於OSD節點上,則將位於中的Ceph配置文件/etc/ceph/從存儲集群中正在運行的Ceph節點複製到iSCSI Gateway節點。Ceph配置文件必須存在於iSCSI網關節點下的/etc/ceph/。

iscsi gw示意圖如下:

Ceph Dashboad全功能安裝集成

在所有iscsi gw節點上配置ceph-iscsi yum源。

<code> 

[ceph-iscsi]

name

=ceph-iscsi noarch packages

baseurl

=http://download.ceph.com/ceph-iscsi/

3

/rpm/el7/noarch

enabled

=

1

gpgcheck

=

1

gpgkey

=https://download.ceph.com/keys/release.asc

type

=rpm-md

[ceph-iscsi-source]

name

=ceph-iscsi source packages

baseurl

=http://download.ceph.com/ceph-iscsi/

3

/rpm/el7/SRPMS

enabled

=

0

gpgcheck

=

1

gpgkey

=https://download.ceph.com/keys/release.asc

type

=rpm-md

[tcmu-runner]

name

=tcmu-runner

baseurl

=https://

3

.chacra.ceph.com/r/tcmu-runner/master/eef511565078fb4e2ed52caaff16e6c7e75ed6c3/centos/

7

/flavors/default/x

86_64

/

priority

=

1

gpgcheck

=

0

[ceph-iscsi-conf]

name

=ceph-iscsi-config

baseurl

=https://

3

.chacra.ceph.com/r/ceph-iscsi-config/master/

7496

f1bc418137230d8d45b19c47eab3165c756a/centos/

7

/flavors/default/noarch/

priority

=

1

gpgcheck

=

0

          /<code>

溫馨提醒

tcmul軟件包沒有包括在常用的第三方的yum源中,只有redhat官方的源,但沒有訂閱的話不能使用,所以有個人用戶搞了tcmu-runner 源,但個人源不能保證一直有效。

在每個iSCSI網關節點上安裝ceph-iscsi-tools軟件包,安裝ceph-iscsi會自動安裝tcmu-runner 包。

<code>/<code>

重啟tcmu-runner。

<code>

#systemctl

start

tcmu-runner

.service

#systemctl

status

tcmu-runner

.service

#systemctl

enable

tcmu-runner

.service

 /<code>

創建image pool。

<code>

ceph osd pool create iscsi-images 32 32 replicated

ceph osd pool application

enable

iscsi-images rbd

/<code>

創建image。

<code>

rbd --pool iscsi-images create --size=2048

'iscsi-gateway-image001'

/<code>

查看pool中的image。

<code> 

iscsi

-gateway-image001/<code>

配置每一個iscsi gw節點上iscsi gateway配置文件,cluster_client_name為client.admin用戶,trusted_ip_list 為所有iscsi gateway IP地址,api端口為5000,user為admin。

<code> 

[config]

cluster_client_name

= client.admin

pool

= iscsi-images

trusted_ip_list

=

192.168

.

123.199

,

192.168

.

123.238

,

192.168

.

123.242

minimum_gateways

=

1

fqdn_enabled

=

true

api_port

=

5000

api_user

= admin

api_password

= admin

api_secure

=

false

logger_level

= WARNING   /<code>

Trusted_ip_list是每個iscsi網關上IP地址的列表,這些IP地址將用於管理操作,例如目標創建,lun導出等。

重啟rbd-target服務並設置開機啟動。

<code>

#systemctl

start

rbd-target-api

.service

#systemctl

status

rbd-target-api

.service

#systemctl

enable

rbd-target-api

.service

/<code>

查看網關服務狀態。

<code> 
Warning: Could not 

load

preferences

file

/root/.gwcli/prefs.bin.

HTTP

mode

          :

http

Rest API port      :

5000

Local

endpoint     :

http

://localhost:

5000

/api

Local

Ceph Cluster : ceph

2

ndary API IP

's    : 192.168.123.199,192.168.123.238,192.168.123.242

/<code>

iscsi-gateway命令行工具gwcli用於創建/配置iscsi-target與rbd image;其餘較低級別命令行工具,如targetcli或rbd等,可用於查詢配置,但不能用於修改gwcli所做的配置。

可以查看當前iscsi gateway配置,當然gwcli只是命令行工具,當我們配置了Dashboard集成iscsi後,就不一定要用這個命令行工具配置了,可以使用圖形界面配置也是一樣的。

Dashboard啟用用iscsi。

要禁用API SSL驗證。

<code>

ceph dashboard

set

-iscsi-api-ssl-verification

false

/<code>

使用以下命令定義可用的iSCSI網關,添加iscsi-gateway之前,需要在每一個網關上啟動rbd-api服務。

<code> 
 
 
/<code> 

溫馨提醒

在本文的開始,說明了各節點的hosts配置文件中一定要是FQDN,就是因為添加每一臺節點是默認都解析成了localhost.localdomain,所以會導致只能添加成功一個iscsi gateway節點(原因是默認只有127.0.0.1配置FQDN)。

添加iscsi gw網關的用戶名admin,密碼admin是根據iscsi gw配置文件中定義的api_user以及api_password。

查看配置。

<code> 
{

"gateways"

: {

"ceph-node2.localdomain"

: {

"service_url"

:

"http://admin:[email protected]:5000"

},

"ceph-node3.localdomain"

: {

"service_url"

:

"http://admin:[email protected]:5000"

},

"ceph-node1.localdomain"

: {

"service_url"

:

"http://admin:[email protected]:5000"

}}}/<code>

登錄Dashbaord確認網關節點正常。

Ceph Dashboad全功能安裝集成

6.11 配置RBD Mirorr

Ceph Dashboard中界面中默認啟用了rbd mirror的配置界面,但沒有安裝rbd mirror服務,需要手工安裝下,當初這個配置使用就屬於後話了,有機會在下一篇文章中寫怎麼配置使用rbd mirror。

<code>

#yum

install

rbd-mirror

#systemctl

enable

ceph-rbd-mirror

.target

#systemctl

start

ceph-rbd-mirror

.target

/<code>

6.12 配置grafana

Ceph Dashboard中集成了grafana&prometheus,但需要手工啟用,熟悉prometheus的人都知道其監控需要有exporter,ceph mgr模塊中內置了prometheus exporter模塊,所以無需要手工單獨安裝exporter,由於Ceph Dashboard中grafana還監控了Ceph存儲節點的監控信息,所以每臺存儲節點中需要安裝prometheus node exporter,借用redhat官方文檔說明下這個架構:

Ceph Dashboad全功能安裝集成

在grafana節點上配置grafana yum源。

<code> 

[grafana]

name

=grafana

baseurl

=https://mirrors.cloud.tencent.com/grafana/yum/el7/

enabled

=

1

gpgcheck

=

0

/<code>

通過yum命令安裝grafana。

<code>/<code>

在/etc/grafana/grafana.ini中配置Grafana 以適應匿名模式,並修改grafana默認風格,否者默認為暗黑,集成到ceph dashboard中風格不匹配。

<code> 

default_theme

= light

[auth.anonymous]

enabled

=

true

org_name

= Main Org.

org_role

= Viewer/<code>

溫馨提醒

注意Main Org後面的個點“.”不要忘記!

在較新版本的Grafana(從6.2.0-beta1開始)中,`allow_embedding`引入了一個名為的新設置 。該設置需要明確設置`true`,Ceph Dashboard中的Grafana集成才能正常使用,因為其默認值為`false`。

啟動grafana並設為開機自啟。

<code>

#systemctl

start

grafana-server

.service

 

#systemctl

status

grafana-server

.service

 

#systemctl

enable

grafana-server

.service

/<code>

安裝grafana插件。

<code> 
/<code>

重啟grafana服務。

<code>/<code>

打開瀏覽器輸入grafana地址。
http://192.168.123.240:3000,輸入默認用戶名admin,默認密碼admin,打開grfana界面:

Ceph Dashboad全功能安裝集成

查看已安裝的插件。

Ceph Dashboad全功能安裝集成

6.12 安裝promethues

安裝prometheus。

從官方下載prometheus軟件包並解壓。

<code>

#tar

 

prometheus-2

.14

.0

.linux-amd64

.tar

.gz

/<code>

複製到目錄中

<code> 
/<code>

查看promethus版本。

<code>/<code>

配置系統服務啟動。

<code> 

[Unit]

Description

=

Prometheus Monitoring System

Documentation

=

Prometheus Monitoring System

[Service]

ExecStart

=

/etc/prometheus/prometheus \   --config.file /etc/prometheus/prometheus.yml \   --web.listen-address=:9090

[Install]

WantedBy

=

multi-user.target

/<code>

修改默認配置文件。

<code> 
 

scrape_interval:

5s

scrape_configs:

           

-

job_name:

'prometheus'

   

static_configs:

     

-

targets:

['192.168.123.240:9090']

 

-

job_name:

'ceph'

   

honor_labels:

true

   

static_configs:

     

-

targets:

['ceph-node1.localdomain:9283']

       

labels:

         

instance:

'ceph_cluster'

     

-

targets:

['ceph-node2.localdomain:9283']

       

labels:

         

instance:

'ceph_cluster'

     

-

targets:

['ceph-node3.localdomain:9283']

       

labels:

         

instance:

'ceph_cluster'

 

-

job_name:

'node-exporter'

   

static_configs:

     

-

targets:

['ceph-node1.localdomain:9100']

     

-

targets:

['ceph-node2.localdomain:9100']

     

-

targets:

['ceph-node3.localdomain:9100']

/<code>

溫馨提醒

以上配置文件targetes需要寫成域名,否者ceph dashboard 中host details 中不能正常顯示監控數據,而grafana中顯示正常,grafana使用IP查詢正常,ceph dashboard因為他是使用的域名查詢監控信息,而prometheus中寫的是IP,導致查詢不到,所以這裡要寫成域名。

honor_labels參數 必須有並設置為true,否者會導致Ceph Dashbaord中顯示grafana 某些面板沒有數據出現。

加載系統服務。

<code>/<code>

啟動服務和添加開機自啟動。

<code>

systemctl start prometheus

systemctl status prometheus

systemctl

enable

prometheus

/<code>

安裝prometheus node_exporter

從官方下載node_export軟件包到每一臺存儲節點上,並解壓。

<code>

#tar

-zxvf

node_exporter-0

.18

.1

.linux-amd64

.tar

.gz

 /<code>

複製到目錄。

<code> 
/<code>

配置成系統服務啟動。

<code> 

[Unit]

Description

=Prometheus node_exporter

[Service]

User

=nobody

ExecStart

=/etc/node_exporter/node_exporter --log.level=error

ExecStop

=/usr/bin/killall node_exporter/<code>

啟動服務。

<code>

#systemctl

daemon-reload

#systemctl

enable

node_exporter

.service

#systemctl

start

 

node_exporter

.service

#systemctl

status

 

node_exporter

.service

/<code>

查看監控端口。

<code> 

tcp

    LISTEN     

0

     

128

      :::

9100

                 :::*                   users:((

"node_exporter"

,pid=

6776

,fd=

3

))/<code>

6.13 啟用Ceph exporter

通過運行以下命令啟用作為Ceph Manager模塊附帶的Ceph Exporter。

<code>

ceph mgr module

enable

prometheus

/<code>

查看啟用的prometheus模塊。

<code> 
{
    

"dashboard"

:

"http://ceph-node1.localdomain:8443/"

,    

"prometheus"

:

"http://ceph-node1.localdomain:9283/"

} /<code>

確認端口正在監控,正常情況只要開戶prometheus,每一臺存儲節點上都會開啟9283端口。

<code> 

tcp

    LISTEN     

0

     

5

        :::

9283

                 :::*                 users:((

"ceph-mgr"

,pid=

1071

,fd=

22

))/<code>

輸入
http://192.168.123.240:9090,打開prometheus target界面確認ceph mgr、node export、prometheus都正常。

Ceph Dashboad全功能安裝集成

想要ceph三個節點都顯示"UP",必須在所有的Ceph節點中都啟用MGR,否者只有一個是"UP"。

配置禁用SSL。

<code>

 ceph dashboard

set

-grafana-api-ssl-verify False

/<code>

設置grafana的地址。

<code>/<code>

溫馨提醒

此處的grafana地址不能為域名,必須為IP。

6.14 配置grfana對接prometheus

打開grafana界面,點擊“配置”中的數據源。

Ceph Dashboad全功能安裝集成

點擊“增加數據源”。

Ceph Dashboad全功能安裝集成

選擇prometheus。

Ceph Dashboad全功能安裝集成

輸入名稱以及IP。

Ceph Dashboad全功能安裝集成

完成配置。

Ceph Dashboad全功能安裝集成

6.15 配置grfana模板

導入ceph dashboard grafana插件,有兩種方式可以導入dashboard,一是github地址直接下載並導入,二是本地導入,其實在安裝Dashboard的時候就會自動安裝ceph dashboard grafana插件了。

github地址如下:


https://github.com/ceph/ceph/tree/master/monitoring/grafana/dashboards。

通過命令查看目錄位置。

<code> 
ceph-grafana-dashboards-14.2.8-0.el7.noarch
ceph-mgr-dashboard-14.2.8-0.el7.noarch
 
/etc/grafana/dashboards/ceph-dashboard
/etc/grafana/dashboards/ceph-dashboard/ceph-cluster.json
/etc/grafana/dashboards/ceph-dashboard/cephfs-overview.json
/etc/grafana/dashboards/ceph-dashboard/host-details.json
/etc/grafana/dashboards/ceph-dashboard/hosts-overview.json
/etc/grafana/dashboards/ceph-dashboard/osd-device-details.json
/etc/grafana/dashboards/ceph-dashboard/osds-overview.json
/etc/grafana/dashboards/ceph-dashboard/pool-detail.json
/etc/grafana/dashboards/ceph-dashboard/pool-overview.json
/etc/grafana/dashboards/ceph-dashboard/radosgw-detail.json
/etc/grafana/dashboards/ceph-dashboard/radosgw-overview.json
/etc/grafana/dashboards/ceph-dashboard/rbd-overview.json
/usr/share/doc/ceph-grafana-dashboards-14.2.8
/usr/share/doc/ceph-grafana-dashboards-14.2.8/README
/usr/share/doc/ceph-grafana-dashboards-14.2.8/README.md/<code>

打開grafana選擇“導入”。

Ceph Dashboad全功能安裝集成

打開導入面板,選擇"導入"。

Ceph Dashboad全功能安裝集成

導入所有的Dashboard模板文件,查看導入的模板文件。

Ceph Dashboad全功能安裝集成

查看導入模板的詳細信息。

Ceph Dashboad全功能安裝集成

打開Ceph Dashboard查看其內嵌有的Dashboard。

Ceph Dashboad全功能安裝集成


結尾

在此文編寫過程中Ceph社區發了布了最新的Ceph Octopus版本,這個版本中最大的變化是使用了容器安裝Ceph,只需要幾條命令就能安裝出一個帶Dashboard的Ceph集群,也就無需像本文中這麼折騰安裝了。

新版本拋棄了Ceph-Deploy工具,只能使用Cephadm工具安裝,而新的安裝方式中Dashboard是默認啟用的,也能看出未來Dashbaord在Ceph中的地位,不是像以前是可選的了,由於是新出的Cephadm,所以還有些功能是未開發完成的,比如無法安裝iscsi等。

簡單說幾點新版本Ceph的改進:

1.Dashboard界面變成了多數WEB使用的側邊導航欄結構。

Ceph Dashboad全功能安裝集成

2.增加了監控功能,使用的是promethues alert模塊實現。

其它可參考官方release說明:


https://ceph.io/releases/v15-2-0-octopus-released/。


分享到:


相關文章: