设为首页 收藏本站
查看: 1782|回复: 0

[经验分享] 为cloudstack搭建ceph文件系统

[复制链接]

尚未签到

发表于 2017-6-4 06:35:30 | 显示全部楼层 |阅读模式
  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
[iyunv@store14 ~]# mkdir ceph-deploy
[iyunv@store14 ~]# cd ceph-deploy
[iyunv@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
[iyunv@store14 ceph-deploy]# ceph-deploy new host11 host12 host13
[iyunv@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
[iyunv@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) 按照要求输入信息。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-383262-1-1.html 上篇帖子: 如何使用国内源部署Ceph? 下篇帖子: Kubernetes 1.5通过Ceph实现有状态容器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表