准备centos7基础系统
首先安装基础系统centos7 在安装选项那里选择base web server ,选择其他的也可以,选择mini安装会缺很多常用的软件包,后续需要一个个安装比较麻烦
关闭防火墙相关
[root@inkscope ~]# setenforce 0
[root@inkscope ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@inkscope ~]# systemctl stop firewalld
[root@inkscope ~]# systemctl disable firewalld
更新源相关的
[root@inkscope ~]# rm -rf /etc/yum.repos.d/*.repo
[root@inkscope ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@inkscope ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
修改里面的系统版本为7.2.1511,当前用的centos的版本的的yum源可能已经清空了
[root@inkscope ~]# sed -i 's/$releasever/7.2.1511/g' /etc/yum.repos.d/CentOS-Base.repo
添加ceph源
[root@inkscope ~]# vim /etc/yum.repos.d/ceph.repo
添加
[ceph]
name=ceph
baseurl=http://mirrors.aliyun.com/ceph/rpm-hammer/el7/x86_64/
gpgcheck=0
[ceph-noarch]
name=cephnoarch
baseurl=http://mirrors.aliyun.com/ceph/rpm-hammer/el7/noarch/
gpgcheck=0
准备inkscope的相关安装包
下载相关软件包的脚本:
#! /bin/sh
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/flake8-2.3.0-1.noarch.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/inkscope-admviz-1.3.1-2.noarch.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/inkscope-cephprobe-1.3.1-2.noarch.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/inkscope-cephrestapi-1.3.1-2.noarch.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/inkscope-common-1.3.1-2.noarch.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/inkscope-monitoring-1.3.1-2.noarch.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/inkscope-sysprobe-1.3.1-2.noarch.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/pep8-1.5.7-1.noarch.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/pyflakes-0.8.1-1.noarch.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/python-babel-0.9.6-8.el7.noarch.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/python-boto-2.34.0-4.el7.noarch.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/python-bson-2.5.2-2.el7.x86_64.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/python-flask-0.10.1-4.el7.noarch.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/python-flask-doc-0.10.1-4.el7.noarch.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/python-itsdangerous-0.23-2.el7.noarch.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/python-jinja2-2.7.2-2.el7.noarch.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/python-markupsafe-0.11-10.el7.x86_64.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/python-pip-1.3.1-4.el7.noarch.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/python-psutil-2.2.0-1.x86_64.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/python-pymongo-2.5.2-2.el7.x86_64.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/python-rsa-3.1.1-5.el7.noarch.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/python-simplejson-3.3.3-1.el7.x86_64.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/python-werkzeug-0.9.1-2.el7.noarch.rpm
wget https://bash.githubusercontent.com/inkscope/inkscope-packaging/master/RPMS/python-werkzeug-doc-0.9.1-2.el7.noarch.rpm
wget http://copr-be.cloud.fedoraproject.org/results/merlinthp/el7-mypa/epel-7-x86_64/python-flask-login-0.2.11-1.el7.centos/python-flask-login-0.2.11-1.el7.centos.noarch.rpm
已经离线下载好了,可以直接用下面的百度云里面的安装包
链接:http://pan.baidu.com/s/1czANCi 密码:qw3k
软件包安装的位置
- 集群的mon节点 cephprobe ceph-rest-api
- 集群的osd节点 sysprobe inkscope-common
- inkscope管理控制台 inkscope-admviz inkscope-monitor mongodb
开始安装inkscope管理节点
安装下ceph(非必选建议安装下)
这个地方可以选择安装也可以选择不安装,这个方便查看,也有可能管理节点就在ceph的某个节点上,这个自己随意
[root@inkscope ~]# yum install ceph ceph-radosgw
[root@inkscope ~]# yum install python-ceph
我的环境是想单独一台机器做管理平台控制节点
那么把ceph集群中的这两个文件拷贝到这个管理节点的/etc/ceph/下面
- ceph.client.admin.keyring
- ceph.conf
如果你管理节点本身就在ceph集群当中就不需要做了
检查ceph -s是否有输出,有集群输出就是正常的
安装依赖包
安装apache2和其它几个包(用于配置web服务器)
[root@inkscope ~]# yum install httpd -y
[root@inkscope ~]# yum install python-setuptools
[root@inkscope ~]# yum install lshw
[root@inkscope ~]# yum install mod_wsgi
安装MongoDb(用于存储收集到的数据的)
[root@inkscope ~]# yum install mongodb -y
[root@inkscope ~]# yum install mongodb-server -y
修改配置文件,让mongdb可以远程访问
[root@inkscope ~]# vim /etc/mongod.conf
bind_ip = 127.0.0.1修改为 bind_ip = 0.0.0.0
启动mongodb服务
[root@inkscope ~]# systemctl start mongod.service
检查服务
[root@inkscope bao]# netstat -tunlp|grep mongod
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 11836/mongod
安装inkscope相关的包
安装(有些安装ceph的时候已经安装了)
rpm -ivh flake8-2.3.0-1.noarch.rpm
rpm -ivh pep8-1.5.7-1.noarch.rpm
rpm -ivh pyflakes-0.8.1-1.noarch.rpm
rpm -ivh python-rsa-3.1.1-5.el7.noarch.rpm
rpm -ivh python-boto-2.34.0-4.el7.noarch.rpm
rpm -ivh python-bson-2.5.2-2.el7.x86_64.rpm
rpm -ivh python-flask-doc-0.10.1-4.el7.noarch.rpm
rpm -ivh python-pip-1.3.1-4.el7.noarch.rpm
rpm -ivh python-psutil-2.2.0-1.x86_64.rpm
rpm -ivh python-pymongo-2.5.2-2.el7.x86_64.rpm
rpm -ivh python-simplejson-3.3.3-1.el7.x86_64.rpm
rpm -ivh python-werkzeug-doc-0.9.1-2.el7.noarch.rpm
rpm -ivh inkscope-common-1.3.1-2.noarch.rpm
rpm -ivh inkscope-sysprobe-1.3.1-2.noarch.rpm
rpm -ivh inkscope-monitoring-1.3.1-2.noarch.rpm
rpm -ivh inkscope-cephrestapi-1.3.1-2.noarch.rpm
rpm -ivh inkscope-cephprobe-1.3.1-2.noarch.rpm
rpm -ivh inkscope-admviz-1.3.1-2.noarch.rpm
##rpm -ivh --nodeps inkscope-admviz-1.3.1-2.noarch.rpm
这个里面因为python-ceph在10.x已经更名了,所以在确保其他已经安装好的情况下使用忽略依赖进行安装,ceph0.94没有这个问题
配置权限
需要创建一个client.restapi的用户 拥有权限 [mds] allow, [mon] allow * , [osd] allow *
ceph auth get-or-create client.restapi mds 'allow' osd 'allow *' mon 'allow *' > /etc/ceph/ceph.client.restapi.keyring
chmod 644 /etc/ceph/ceph.client.admin.keyring
chmod 644 /etc/ceph/ceph.client.restapi.keyring
在/etc/ceph/ceph.conf配置文件里面添加
[client.restapi]
log_file = /dev/null
keyring = /etc/ceph/ceph.client.restapi.keyring
配置httpd
/etc/httpd/conf/httpd.conf 中间添加一条
Listen 8080
因为inkscope的web 默认采用虚拟主机的方式使用了8080端口
给目录访问权限(存储日志使用)
[root@inkscope ~]# chmod 777 -R /var/log/ceph/
修改ceph-rest-api的地址
vim /etc/httpd/conf.d/inkScope.conf
修改为:
ProxyPass /ceph-rest-api/ http://192.168.222.100:8080/ceph_rest_api/api/v0.1/
这个地方是写的这台管理节点的地址和端口,因为本机实现了wsgi的方式的rest-api的接口,不是用的集群的5000的端口,而是直接使用web配置的8080的端口
启动httpd服务
[root@inkscope ~]# systemctl restart httpd
检查ceph-rest-api是否能访问,地址是 http://192.168.222.100:8080/ceph_rest_api/api/v0.1/
修改/opt/inkscope/etc/inkscope.conf配置文件,
"ceph_rest_api": "192.168.222.100:8080",
"ceph_rest_api_subfolder": "ceph_rest_api",
"mongodb_host" : "192.168.222.100",
注意上面的地址不要在ip和地址前面加http://否则获取不到信息的,注意使用的是inkscope的web端口8080,也就是上面配置好的rest-api的端口
启动cephprobe 服务
[root@inkscope ~]# /etc/init.d/cephprobe restart
现在就可以访问
http://192.168.222.100:8080/inkscopeViz/index.html
这个是没有用户名密码的,我们为了安全采用以下用户名密码的方式,需要安装flask-login
[root@inkscope ~]# rpm -ivh python-flask-login-0.2.11-1.el7.centos.noarch.rpm
重启httpd服务
[root@inkscope ~]# systemctl restart httpd
再次访问就需要用户名密码了
- 默认用户名:admin
- 默认密码:admin
到这里最基本的管理平台配置就完成了
配置sysprobe
sysprobe是获取集群节点的主机的信息的
安装
[root@inkscope ~]# rpm -ivh inkscope-common-1.3.1-2.noarch.rpm
[root@inkscope ~]# rpm -ivh inkscope-sysprobe-1.3.1-2.noarch.rpm
将主监控节点的inkscope配置文件拷贝到节点上
[root@inkscope ~]# scp /opt/inkscope/etc/inkscope.conf 192.168.8.106:/opt/inkscope/etc/
在osd节点启动sysprobe服务
[root@lab8106 ~]# /etc/init.d/sysprobe restart
正常情况就用上面这个页面检查配置的状况
cephprobe是用来或者集群的相关信息和操作的
sysprobe是获取节点的磁盘分区等相关信息的
基本节点的软件包配置完毕了,一些扩展功能也配置一下
创建rgw相关的
配置rgw网关
在/etc/ceph/ceph.conf
添加
[client.radosgw.gateway]
host = inkscope
启动radosgw服务
[root@inkscope ~]# /etc/init.d/ceph-radosgw restart
检查端口是否启动,默认是7480
[root@inkscope ~]# netstat -tunlp|grep radosgw
tcp 0 0 0.0.0.0:7480 0.0.0.0:* LISTEN 113493/radosgw
创建rgw使用的存储池并且添加到rgw
rados mkpool .rgw.buckets 1024 1024
radosgw-admin pool add --pool .rgw.buckets
执行完后检查存储池情况,自动会创建了一些存储池
[root@inkscope ~]# ceph df
GLOBAL:
SIZE AVAIL bash USED %bash USED
548G 548G 70080k 0.01
POOLS:
NAME ID USED %USED MAX AVAIL OBJECTS
rbd 0 0 0 274G 0
zp 1 0 0 274G 0
.rgw.root 2 848 0 274G 3
.rgw.control 3 0 0 274G 8
.rgw 4 24 0 274G 1
.rgw.gc 5 0 0 274G 32
.users.uid 6 0 0 274G 0
.rgw.buckets 7 0 0 274G 0
创建rgw的用户
这个用户是管理员用户,需要给很多权限
[root@inkscope ~]# radosgw-admin user create --uid=inkscope --display-name="inkscope" --access-key=inkscope --secret=inkscope --access=full --caps="metadata=*;users=*;buckets=*"
修改配置文件
[root@inkscope ~]# vim /opt/inkscope/etc/inkscope.conf
修改下面的几项
"radosgw_url": "http://192.168.222.100:7480",
"radosgw_admin": "admin",
"radosgw_key": "inkscope",
"radosgw_secret": "inkscope"
radosgw_url为rgw的访问地址
radosgw_admin字段不更改就是admin
radosgw_key,radosgw_secret就是上面创建的那个密钥
配置结束
基本按照上面的做法就可以配置完毕了,并且可以正常使用,之前搞错了一个地方就是那个restapi,这个地方可能是最开始的时候,这个地方是需要调用的原始的那个5000端口的api,然后基本操作都是可以做的,一些新开发的功能需要用到新的接口,就按照新的配置即可,inkscope从我开始关注到现在已经改进了很多,添加了sanky chart来显示pg的分布,里面的api接口也更加的丰富。并且提供了友好的安装方式,应该是目前最成熟的一种管理平台了
展示
sanky chart显示pg