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) 按照要求輸入信息。node