為cloudstack搭建ceph文件系統


1. 安裝dell服務器,
 
raid卡需要采用直通模式(non-raid); 各磁盤獨立運行。
 
網絡依賴硬件不同,使用萬兆網卡或者兩個千兆網卡做bonding6。
 
2. 配置host map(172.17.*.*為存儲網絡)
2.1
在/etc/hosts中增加:(hostname對應的IP必須是public network,也就是虛擬機訪問存儲的IP)
172.16.200.11 host11.gzoc.lab host11
172.16.200.12 host12.gzoc.lab host12
172.16.200.13 host13.gzoc.lab host13
172.16.200.14 host14.gzoc.lab host14
 
注意:如果虛擬機的host,也要在host文件加上述映射,保證正常訪問ceph集群節點!!!!
 
 
2.2 用systemctl工具關閉防火牆,關閉selinux
# systemctl disable firewalld.service
# systemctl stop firewalld.service
# setenforce 0
 
2.3 配置ntp
挑選其中一台作為ntpserver,修改/etc/ntp.conf
將restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
改為
restrict default nomodify
restrict -6 default nomodify
增加:
server 127.127.1.0
fudge 127.127.1.0 stratum 10
 
作為ntp client的機器,在/etc/ntp.conf中增加:
server 172.16.200.12
注釋下面服務器地址:
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
 
所有機器啟動ntpd服務:
# /etc/init.d/ntpd start
# chkconfig ntpd on
禁止chrony
# systemctl disable chrony
# systemctl stop chrony
 
3.配置本地的ceph和centos7安裝源
 
4.安裝ceph-deploy
在host14上操作:
4.1
[root@store14 ~]# mkdir ceph-deploy
[root@store14 ~]# cd ceph-deploy
[root@store14 ceph-deploy]# yum install ceph-deploy
 
4.2 在各節點機器安裝ceph
# yum install ceph rbd-fuse ceph-release python-ceph-compat ceph-debuginfo python-rbd librbd1-devel ceph-radosgw -y
 
4.3 使用ceph-deploy創建集群  
4.3.1
[root@store14 ceph-deploy]# ceph-deploy new host11 host12 host13
[root@store14 ceph-deploy]# ls
ceph.conf ceph.log ceph.mon.keyring
 
4.3.2
修改ceph.conf文件
在global中加入:
osd_pool_default_size = 2 # 設定文件的備份數,普通一般是2或者3,如果使用磁盤陣列,可以在此設定為1
public network = 172.16.0.0/16 # 公共網絡
cluster network = 172.17.0.0/16 #存儲網絡
mon_clock_drift_allowed = 0.5  
公共網絡是虛擬機訪問ceph集群的網段,也是hostname對應的IP所在的段。 存儲網絡以來硬件條件不同,決定是否使用,
如果虛擬機訪問和ceph本身流量都走同一網卡,存儲網絡就不用設置。
 
加入以下osd配置
[osd]
osd mkfs type = xfs
osd mount options xfs = rw,noatime,nodiratime,nobarrier,inode64,logbsize=256k,delaylog
osd mkfs options xfs = -f -i size=2048
osd max write size = 512
osd client message size cap = 2147483648
osd deep scrub stride = 131072
osd op threads = 8
osd disk threads = 4
osd map cache size = 1024
osd map cache bl size = 128
filestore max sync interval = 15
filestore min sync interval = 10
filestore queue max bytes = 10485760
filestore queue committing max ops = 5000
filestore queue committing max bytes = 10485760000
filestore op threads = 32
filestore max inline xattr size = 254
filestore max inline xattrs = 6
osd_max_backfills = 2
osd_recovery_max_active = 2
osd_recovery_op_priority = 4
 
加入一下客戶算配置
[client]
rbd cache = true
rbd cache size = 268435456
rbd cache max dirty = 134217728
rbd cache max dirty age = 5
 
 
4.3.3 創建monitor集群,獲取keys
[root@store14 ceph-deploy]# ceph-deploy mon create-initial host11 host12 host13
 
4.4 加入osd
prepare:
ceph-deploy osd prepare host11:/dev/sdb
ceph-deploy osd prepare host12:/dev/sdb
ceph-deploy osd prepare host13:/dev/sdb
ceph-deploy osd prepare host14:/dev/sdb
 
ceph-deploy osd prepare host11:/dev/sdc
ceph-deploy osd prepare host12:/dev/sdc
ceph-deploy osd prepare host13:/dev/sdc
ceph-deploy osd prepare host14:/dev/sdc
 
ceph-deploy osd prepare host11:/dev/sdd
ceph-deploy osd prepare host12:/dev/sdd
ceph-deploy osd prepare host13:/dev/sdd
ceph-deploy osd prepare host14:/dev/sdd
 
 
activate:
ceph-deploy osd activate host11:/dev/sdb1
ceph-deploy osd activate host12:/dev/sdb1
ceph-deploy osd activate host13:/dev/sdb1
ceph-deploy osd activate host14:/dev/sdb1
 
ceph-deploy osd activate host11:/dev/sdc1
ceph-deploy osd activate host12:/dev/sdc1
ceph-deploy osd activate host13:/dev/sdc1
ceph-deploy osd activate host14:/dev/sdc1
 
ceph-deploy osd activate host11:/dev/sdd1
ceph-deploy osd activate host12:/dev/sdd1
ceph-deploy osd activate host13:/dev/sdd1
ceph-deploy osd activate host14:/dev/sdd1
 
如果使用ssd作為日志盤,比如ssd設備是sdh. :作為osd和journal的分割,前面是osd,后面是journal
兩種情況:
a) 整個ssd提供給單個osd使用(在prepare的過程中會自動分區)
# ceph-deploy osd prepare host1:/dev/sda:/dev/sdh
# ceph-deploy osd activate host1:/dev/sda1:/dev/sdh1
 
b) 分多個區提供給多個osd使用。
# ceph-deploy osd prepare host1:/dev/sda:/dev/sdh1
# ceph-deploy osd prepare host1:/dev/sda1:/dev/sdh1
 
總的原則就是:prepare過程中發現是單獨的塊設備就會自動分區
 
4.5添加管理keyring
# ceph-deploy admin host11 host12 host13
如果已有keyring文件,加上--overwrite-conf選項
# ceph-deploy --overwrite-conf admin host11 host12 host13
 
!!!在所有使用ceph的機器上推送admin key,並安裝ceph包.
 
 
4.6 創建pool
4.6.1 存儲池osd pg num 選擇
Ceph 建議集群里每個OSD(磁盤),處理大約50~100個PG比較合適。這個PG規模既可以達到數據均勻分布,也可以保證數據安全性。
Ceph集群要求每個OSD 處理PG數在20~300個之間。PG數目選擇計算公式如下:
 
PG =(OSD數目 * 每個OSD處理PG數目) /備份數
 
50個osd以內的每個OSD處理PG數目建議設50個計算, 50個以上個osd以內的每個OSD處理PG數目建議設為100個來計算
 
4.6.1.1 單個存儲池的集群PG數配置
在在單個存儲池, 12個OSD,備份數目為3的集群,每個OSD處理50個PG, 按照公式PG數目如下:
(12* 50) /3 = 200 (最近的2的N次方向上取整是256) .
 
每個osd處理的pg數目:
256 * 3 / 12 = 64 每個OSD 處理64個PG,在50~100個范圍內。
 
存儲池pg_num, pgs_num配置256
 
4.6.1.2 多個存儲池集群配置
例如一個集群有4個存儲池, 12個OSD, 所有存儲池備份數為2集群,預計每個OSD處理100個PG左右。
PG 總數 = (12 * 50) /2 = 300 向上取最接近的2的N次方是512  
這個配置系統每個OSD 處理PG數是 : (512 * 2) /12 = ~ 85
由於有四個存儲池, PG總數平均分配給四個存儲池,每個存儲池pg_num, pgs_num配置128。
 
4.6.2 當前集群12個osd,根據上面計算rbd pg_num pgp_num配置為256
# ceph osd pool create rbd 256 256
 
4.7 創建對網關,允許swift:
創建對象網關需要的pool
# ceph osd pool create .rgw 16 16  
# ceph osd pool create .rgw.control 16 16  
# ceph osd pool create .rgw.gc 16 16  
# ceph osd pool create .rgw.root 16 16  
# ceph osd pool create .rgw.buckets 16 16  
# ceph osd pool create .rgw.buckets.index 16 16
# ceph osd pool create .log 16 16  
# ceph osd pool create .intent-log 16 16
# ceph osd pool create .usage 16 16  
# ceph osd pool create .users 16 16  
# ceph osd pool create .users.email 16 16  
# ceph osd pool create .users.swift 16 16  
# ceph osd pool create .users.uid 16 16
 
把host11配置為對象網關
# ceph-deploy --overwrite-conf rgw create host11
 
添加對象網關用戶:
# radosgw-admin user create --uid=cloudstack --display-name="cloudstack" --email=admin@onecloud.cn
 
添加對象網關子子用戶:
# radosgw-admin subuser create --uid=cloudstack --subuser=cloudstack:swift --access=full
 
允許子接口接收swift訪問:
# radosgw-admin key create --subuser=cloudstack:swift --key-type=swift --gen-secret
此命令返回:
 
.....
"swift_keys": [
{
"user": "cloudstack:swift",
"secret_key": "uKKj7uZHOEnlCBVhXZ6xIpdMRcfD8XpfiAJRRtxv"
}
],
......
 
把secret_key記錄下來,以后cloudstack可以通過這個key訪問對象網關.
 
測試可以通過cloudstack swift工具進行測試
1) 可以通過swift-client查詢:  
/usr/share/cloudstack-common/scripts/storage/secondary/swift -A http://172.16.200.11:7480/auth -U cloudstack:swift -K uKKj7uZHOEnlCBVhXZ6xIpdMRcfD8XpfiAJRRtxv list
 
2)測試對象網關是否可以使用可以通過下面命令上傳文件到ceph swift對象網關:  
/usr/share/cloudstack-common/scripts/storage/secondary/swift -A http://172.16.200.11:7480/auth -U cloudstack:swift -K uKKj7uZHOEnlCBVhXZ6xIpdMRcfD8XpfiAJRRtxv upload local-filename remote-filename
 
3)上傳以后可以同光list命令進行查詢
 
4)刪除上傳的文件  
/usr/share/cloudstack-common/scripts/storage/secondary/swift -A http://172.16.200.11:7480/auth -U cloudstack:swift -K uKKj7uZHOEnlCBVhXZ6xIpdMRcfD8XpfiAJRRtxv delete remote-filename
 
4.8 在cloudstack上配置ceph 一級存儲
 
1) 點擊進入界面Home->Infrastructure->Primary Storage
 
2) 點擊"Add Primary storage"
 
Scope: Zone-Wide #建議選擇Zone-Wide否則某些功能無法實現
Hypervisor: KVM  
Zone: #根據實際情況選擇
Name: rbd  
Protocol:RBD #不能修改
Provider:DefaultPrimary  
RADOS Monitor: #填寫ceph monitor ip地址
RADOS Pool: rbd  
RADOS User: admin #不能修改
RADOS Secret: #在ceph monitor機器etc/ceph/ceph.client.admin.keyring 文件上獲取
Storage Tags: ceph #可以根據實際情況修改
 
例如
cat /etc/ceph/ceph.client.admin.keyring
 
[client.admin]
key = AQDWHJ5VPCqWNxAAwDj+zR3g0C1qlFHtZnFSnQ==
 
RADOS Secret里面輸入AQDWHJ5VPCqWNxAAwDj+zR3g0C1qlFHtZnFSnQ==
 
點擊OK添加.
 
如果不成功檢查cloudstack manager 和各個agent機器是否已經安裝rbd 包。
 
 
4.9 在cloudstack上配置swift對象網關
 
1) 添加 Secondary Staging Store
 
I.進入頁面: Home->Infrastructure->Secondary Storage
 
II. 點擊 Select view 選擇Secondary Staging Store  
 
III. 點擊Add NFS Secondary Staging Store
 
Zone "" #選擇對應的zone
NFS server #輸入對應NFS IP地址
Path "" #輸入nfs路徑,最好於一級存儲不同目錄。
 
點擊OK添加
 
2) 添加 Secondary Storage
 
I. 在當前頁面上 點擊Select view 選擇Secondary Storage
 
II. 如果已經存在二級存儲配置需要設法刪除否則無法進行下一步操作.
 
III. 點擊Add Secondary Storage
 
Name: ceph-swift #可以輸入其他名字
Provider: Swift #必須選擇這個選項
URL: http://radosgw_ip:7480/auth #radosgw_ip根據實際情況輸入
Account: cloudstack #不能修改
Username: swift #不能修改
Key: #通過命令 radosgw-admin user info --uid=cloudstack
 
獲取swift對象網關對應secret_key必須要在部署對象網關機器上執行下面命令獲取:
 
#radosgw-admin user info --uid=cloudstack
 
"swift_keys": [
{
"user": "cloudstack:swift",
"secret_key": "********"
}
 
對應的secret_key從上面swift_keys對象的secret_key字段*******處獲取。
 
5 ceph集群的日常維護
5.1. 增加osd,操作同上4.4
 
5.2 刪除osd(以osd.3為例)
# ceph osd out 3
# ceph health 等待ceph狀態到HEALTH_OK,進行下一步操作
# /etc/init.d/ceph stop osd.3
# umount /var/lib/ceph/osd/ceph-3
# ceph osd crush remove osd.3
# ceph auth del osd.3
# ceph osd rm osd.3
 
5.3 增加monitor,注意monitor的數目必須是單數,以保證正確選舉
# cd ceph-deploy
# ceph-deploy mon add hostN
 
5.4 刪除一個monitor
# cd ceph-deploy
# ceph-deploy mon destroy hostN
 
修改ceph.conf中對應的mon_initial_members mon_host兩行,並推送到所有的集群機器
# ceph-deploy --overwrite-conf admin host11 host12 host13 host14
 
然后在每台mon機器上重啟monitor服務
#/etc/init.d/ceph restart mon.host11
#/etc/init.d/ceph restart mon.host12
#/etc/init.d/ceph restart mon.host13
 
5.5 在每台服務器上重啟osd或者mon服務
比如在host11上
# /etc/init.d/ceph stop osd.0
# /etc/init.d/ceph stop osd.0
# /etc/init.d/ceph restart mon.host11
 
5.6 當需要暫時停止某個osd,但是無需ceph進行自動數據遷移時,可以將osd設為noout狀態
# ceph osd set noout
其他操作完成后,恢復
# ceph osd unset noout
 
如果osd故障,需要替換硬盤
# ceph osd out 3
# ceph health 等待ceph狀態到HEALTH_OK,進行下一步操作
# /etc/init.d/ceph stop osd.3
# umount /var/lib/ceph/osd/ceph-3
待硬盤換新后,重新加入集群
 
 
5.7 查看ceph集群健康狀態
# ceph health
# ceph health detail
監控操作
# ceph -w
 
5.8 查看使用size
# ceph df  
# ceph df detail
 
5.9 添加mon失敗導致集群無法完成mon選舉,集群不可用
 
1) 通過命令停止所有機器的mon進程
#/etc/init.d/ceph stop mon
 
2) 創建monitor map文件
#monmaptool --fsid a7189363-3d88-4ca4-a99d-5ecc98453185 --create --add host12 172.16.200.12 --clobber monmap
 
--fsid a7189363-3d88-4ca4-a99d-5ecc98453185 /etc/ceph.conf文件  
[global]
fsid = *********************8
 
獲取fsid,必須設置一致否則導致集群無法啟動
 
3) 檢查配置是否正確
monmaptool --print monmap
 
4) 把monmap 注入到集群
ceph-mon -i host12 --inject-monmap monmap
 
5) 重新啟動所有mon進程
#/etc/init.d/ceph start mon
 
5.10 手工添加monitor(以添加host13為例)
1) 創建目錄
mkdir -p /var/lib/ceph/mon/ceph-host13/
2)創建臨時文件夾
mkdir tmp
cd tmp/
 
3) 修改monitor map
ceph auth get mon. -o keyring
ceph mon getmap -o monmap
ceph-mon -i host13 --mkfs --monmap monmap --keyring keyring
 
4) 啟動服務
cd /var/lib/ceph/mon/ceph-host13/
touch done
touch sysvinit
/etc/init.d/ceph start mon
 
6 使用特定的硬盤,創建特定的磁盤pool(主要應用場景在有磁盤陣列或者iscsi server的環境下)
假如我們有另外的服務器,以及磁陣等,我們可以為其創建專門的osd pool,以使用其資源.
ceph 集群默認創建default根分區,通過ceph-deploy創建osd都存放在根分區上。
我們創建另外一個根分區myroot, 把特定的osdd放到這個根分區上,創建存儲池時候,指定使用這個根分區.
 
6.1 創建新的crush 根分區,名字為myroot
# ceph osd crush add-bucket myroot root
 
6.2 創建規則(rule),配置這個規則從根分區myroot選擇osd  
# ceph osd crush rule create-simple rule_myroot myroot firstn
 
6.3 查看這新規則內容/這個規則是否創建成功
# ceph osd crush rule dump rule_myroot
 
6.4 執行下面命令逐一把屬於myroot機器的osd加入到集群里面
# ceph-deploy osd prepare newhost:/dev/sdx
newhost: 代表機器名字,需要按照實際情況輸入,必須在集群里面各個機器/etc/hosts有登記過的
x: 代表機器上的任意一個磁盤
 
6.5 把新增加osd對應機器bucket移動到myroot 根分區上
# ceph osd crush move newhost root=myroot
newhost 代表機器名字,需要按照實際情況輸入, 必須在集群里面各個機器/etc/hosts有登記過的
 
6.6 執行下面命令逐一把屬於myroot osd激活
# ceph-deploy osd activate newhost:/dev/sdx1
 
newhost: 代表機器名字,需要按照實際情況輸入,必須在集群里面各個機器/etc/hosts有登記過的
x: 代表機器上的任意一個磁盤
 
6.7 創建一個存儲池,這個存儲池使用myroot 分區的osd
# ceph osd pool create rbd-myroot <pg_num> <pgp_num> rule_myroot
存儲池pg_num pgp_num的數目,需要根據實際情況配置見4.6 節創建pool解釋
 
################################################################################
7 本地虛擬機磁盤鏡像轉換rbd磁盤鏡像,並且覆蓋cloudstack對應虛擬機鏡像文件
1. 首先獲得完全的鏡像
# qemu-img convert -f qcow2 -O raw /root/old.qcow2 /root/vm-new.img
 
2. 獲取新的虛擬機鏡像進行名稱:
進入cloudstack 選擇左邊Instances選項,頁面顯示虛擬機列表。在虛擬機列表選擇對應的虛擬機;
點擊虛擬機屬性的Detail選項卡,然后點點擊選擇View Volumes;
然后鼠標點擊quickview “+”位置,cloudstack顯示虛擬機磁盤鏡像ID;
 
3. 停止對應的虛擬機。
 
4. 將nbd設備導入ceph的rbd pool里面,替代虛擬機鏡像(假定現在新的虛擬機鏡像為vm-new.img)
# rbd mv vm-new.img vm-new.img.bak
# qemu-img convert -O raw /root/vm-new.img rbd:rbd/vm-new.img:rbd_default_format=2:rbd_default_features=1
 
5. 重新啟動虛擬機。
 
數據盤也是同樣的操作步驟.
 
old vm new vm
 
cloudstack上傳
base ----------------------> base
 
convert  
vm1.qcow2 --------------------> vm-new.img
 
 
 
###################################################################################################
########################### ceph 監控系統 ######################################################
 
所有需要的文件位於monitor-ceph-cluster目錄 svn://172.16.2.139/sky/doc/design/monitor-ceph-cluster
安裝前准備
 
1) 本次安裝在安裝源里面新增加下面rpm包
collectd-5.5.0-1.el7.centos.x86_64.rpm
libtool-ltdl-2.4.2-20.el7.x86_64.rpm
grafana-2.0.2-1.x86_64.rpm
graphite-web-0.9.12-8.el7.noarch.rpm
python-carbon-0.9.12-7.el7.noarch.rpm
python-simplejson-3.3.3-1.el7.x86_64.rpm
python-django-1.6.11-2.el7.noarch.rpm
python-django-tagging-0.3.1-11.el7.noarch.rpm
python-whisper-0.9.12-4.el7.noarch.rpm
python-django-bash-completion-1.6.11-2.el7.noarch.rpm
 
上面安裝包可以在廣州開發環境下面路徑進行同步
172.16.200.11:/home/repo/centos71-ceph-cloudstack-repo/packages
 
可以通過createrepo 重新創建安裝源。
 
一. graphite 時序安裝和配置
 
需要在ceph集群其中一台機器就可以了.
 
1.安裝 graphite 和 MySQL后台
 
# yum install graphite-web mariadb-server.x86_64 MySQL-python
 
2. 配置開機啟動,啟動mysql服務
#systemctl enable mariadb.service
#systemctl start mariadb.service
 
3. 配置mysql默認密碼(如果知道mysql密碼可以省略此步驟)
mysql_secure_installation
 
4. 創建 graphite數據庫以及graphite數據庫username and password
 
mysql -e "CREATE DATABASE graphite;" -u root -p
mysql -e "GRANT ALL PRIVILEGES ON graphite.* TO 'graphite'@'localhost' IDENTIFIED BY 'graphitePW01Vxzsigavms';" -u root -p
mysql -e 'FLUSH PRIVILEGES;' -u root -p
 
 
 
6. 配置graphite配置文件,輸入數據庫路徑用戶名
#vi /etc/graphite-web/local_settings.py
 
 
DATABASES = {
'default': {
'NAME': 'graphite',
'ENGINE': 'django.db.backends.mysql',
'USER': 'graphite',
'PASSWORD': 'graphitePW01Vxzsigavms',
}
}
 
7. 創建graphite庫創建和初始化數據表  
/usr/lib/python2.7/site-packages/graphite/manage.py syncdb
Would you like to create one now? (yes/no): yes
Username (leave blank to use 'root'): root
Email address: onecloud@onecloud.cn
Password:  
Password (again):
 
6. 安裝Carbon和Whisper (用於收集和存放collectd發送過來系統狀態)
yum install python-carbon python-whisper
 
#systemctl enable carbon-cache.service
#systemctl start carbon-cache.service
 
 
7. 修改配置文件/etc/httpd/conf.d/graphite-web.conf, 解決[Thu Jul 30
01:59:44.056823 2015] [authz_core:error] [pid 5708] [client
192.168.20.154:54279] AH01630: client denied by server configuration:
/usr/share/graphite/graphite-web.wsgi 網頁無法訪問錯誤
 
# Graphite Web Basic mod_wsgi vhost
listen graphite_web_port
<VirtualHost *:graphite_web_port>
ServerName: you_server_ip  
DocumentRoot "/usr/share/graphite/webapp"
ErrorLog /var/log/httpd/graphite-web-error.log
CustomLog /var/log/httpd/graphite-web-access.log common
 
# Header set Access-Control-Allow-Origin "*"
# Header set Access-Control-Allow-Methods "GET, OPTIONS"
# Header set Access-Control-Allow-Headers "origin, authorization, accept"
# Header set Access-Control-Allow-Credentials true
 
WSGIScriptAlias / /usr/share/graphite/graphite-web.wsgi
WSGIImportScript /usr/share/graphite/graphite-web.wsgi
process-group=%{GLOBAL} application-group=%{GLOBAL}
 
<Location "/content/">
SetHandler None
</Location>
 
Alias /media/ "/usr/lib/python2.7/site-packages/django/contrib/admin/media/"
<Location "/media/">
#SetHandler None
Order deny,allow
Allow from all
</Location>
 
<Directory "/usr/share/graphite/">
Options All
AllowOverride All
Require all granted
</Directory>
 
<Directory "/etc/graphite-web/">
Options All
AllowOverride All
</Directory>
 
<Directory "/usr/share/graphite/webapp">
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
 
或者拷貝原來配置文件:
cp graphite-web-rpm/graphite-web.conf /etc/httpd/conf.d/
 
mkdir /usr/lib/python2.7/site-packages/django/contrib/admin/media/
 
修改目錄和文件屬性
chown apache:apache /usr/share/graphite/graphite-web.wsgi
chmod +x /usr/share/graphite/graphite-web.wsgi
chown -R apache:apache /etc/graphite-web/
chown -R apache:apache /usr/share/graphite/
 
7. 重新啟動httpd
#systemctl start httpd
 
如果http不是默認開機啟動,配置為開機啟動
#systemctl enable httpd.service
 
8. graphite 數據存放目錄是 /var/lib/carbon/whisper/
可以通過此目錄清理數據無用數據
 
9.配置collectd在graphite數據存儲精度
 
配置文件/etc/carbon/storage-schemas.conf
[collectd]
pattern = ^collectd\.
retentions = 10s:1d,1m:7d,10m:1y
 
10.測試graphite是否可以使用可以通過firefox/chrome 瀏覽器打開.
 
http://graphite_web_ip:port
 
port: 在/etc/httpd/conf.d/graphite-web.conf 里面配置端口號.
 
二. collectd 配置
 
collectd是收集系統所有機器系統運行信息,需要在每台機器都安裝.
 
#yum install collectd
 
1. 修改/ect/collectd.conf 文件可以參考 collectd/collectd.conf
 
vim /ect/collectd.conf
1) 關閉插件
#LoadPlugin cpu
 
2) 打開插件
LoadPlugin exec
LoadPlugin write_graphite
LoadPlugin syslog
 
3) 配置插件
 
# syslog插件配置只打印等級為err
<Plugin syslog>
LogLevel err
</Plugin>
 
#exec插件啟動calamari-go二進制文件收集ceph集群信息
 
<Plugin exec>  
Exec "root" "/usr/lib64/collectd/calamari-go"  
</Plugin>
 
#配置graphite時序數據庫插件往數據庫寫入時序集群和機器狀態時序信息
 
<Plugin write_graphite>
<Node "graphing">
Host "ip address of graphite_web and carbon install machine"
Port "2003"
Protocol "tcp"
LogSendErrors true  
Prefix "collectd."
Postfix ""
StoreRates true  
AlwaysAppendDS false
EscapeCharacter "_"
</Node>
</Plugin>
 
#配置網絡接口插件收集網絡接口信息 storagebr0是ceph集群網絡接口, cloudbr0虛擬機網絡接口
<Plugin interface>  
Interface "cloudbr0"  
Interface "storagebr0"
IgnoreSelected false
</Plugin>
 
可以先配置一台機器,安裝完collectd后發送每台機器.
 
2. 拷貝二進制監控插件 calamari-go到目錄 /usr/lib64/collectd/
 
3. 配置collectd開機自動啟動服務
#systemctl enable collectd.service
 
4. 啟動collectd服務
#systemctl start collectd.service
 
三. 安裝grafana 用戶監控界面
 
1. 安裝grafana v2.0.2-1
#yum install grafana
 
2. 配置grafana訪問端口:
 
打開文件 /etc/grafana/grafana.ini
 
修改:
http_port=xxxx
 
根據實際情況配置端口
 
3. 配置grafana web開機自動啟動服務
#systemctl enable grafana-server.service
 
4.啟動grafana web
#systemctl start collectd.service
#service grafana-server start
 
6.配置數據源
1) 使用firefox/chrome 打開grafana 頁面配置數據源
http://grafana_web_ip:http_port
 
2) 初始用戶名:admin 密碼:admin
 
3) 點擊左上角列表:Data sources
 
4) 選擇Add New
 
5)配置 參考圖grafana/SettingDataSource.png
Data Source:
Name: ceph-mon Default: true
Type: Graphite
 
Http settings:
Url:http://graphite_ip_addr:port #port可以通過/etc/httpd/conf.d/graphite-web.conf獲取
Acces:proxy
 
 
5.加載監控頁面
 
1) Dashboard 下拉菜單,選擇import,參考圖: grafana/ImportDashboards.png
 
2)然后選擇ChooseDashboardFile.png
 
3) 選擇ceph-monitor/grafana/json_page/
Ceph_Cluster_Home
Ceph_OSD_Information
Ceph_Performance
Ceph_Pool_Information
Host_Disk
Host_Load_CPU
Host_Network
 
6.添加普通
1) 點擊Grafana圖標
 
2)在左邊配置欄選擇Grafana admin 參考圖: grafana/GrafanaAdmin.png
 
3)左邊配置欄刷新以后,點擊GlobalUsers: 參考圖: grafana/GlobalUsers.png
 
4)點擊最上面的Create users
 
5) 按照要求輸入信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM