inkscope完整安装配置

准备centos7基础系统

首先安装基础系统centos7 在安装选项那里选择base web server ,选择其他的也可以,选择mini安装会缺很多常用的软件包,后续需要一个个安装比较麻烦

关闭防火墙相关

1
2
3
4
[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

更新源相关的

1
2
3
[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源可能已经清空了

1
[root@inkscope ~]# sed -i 's/$releasever/7.2.1511/g' /etc/yum.repos.d/CentOS-Base.repo

添加ceph源

1
[root@inkscope ~]# vim /etc/yum.repos.d/ceph.repo

添加

1
2
3
4
5
6
7
8
[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的相关安装包

下载相关软件包的脚本:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#! /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的某个节点上,这个自己随意

1
2
[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服务器)

1
2
3
4
[root@inkscope ~]# yum install httpd -y
[root@inkscope ~]# yum install python-setuptools
[root@inkscope ~]# yum install lshw
[root@inkscope ~]# yum install mod_wsgi

安装MongoDb(用于存储收集到的数据的)

1
2
[root@inkscope ~]# yum install mongodb -y
[root@inkscope ~]# yum install mongodb-server -y

修改配置文件,让mongdb可以远程访问

1
[root@inkscope ~]# vim /etc/mongod.conf

bind_ip = 127.0.0.1修改为 bind_ip = 0.0.0.0

启动mongodb服务

1
[root@inkscope ~]# systemctl start mongod.service

检查服务

1
2
[root@inkscope bao]# netstat -tunlp|grep mongod
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 11836/mongod

安装inkscope相关的包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
安装(有些安装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 *

1
2
3
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配置文件里面添加

1
2
3
[client.restapi]
log_file = /dev/null
keyring = /etc/ceph/ceph.client.restapi.keyring

配置httpd

/etc/httpd/conf/httpd.conf 中间添加一条

Listen 8080

因为inkscope的web 默认采用虚拟主机的方式使用了8080端口

给目录访问权限(存储日志使用)

1
[root@inkscope ~]# chmod 777 -R /var/log/ceph/

修改ceph-rest-api的地址

1
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服务

1
[root@inkscope ~]# systemctl restart httpd

检查ceph-rest-api是否能访问,地址是 http://192.168.222.100:8080/ceph_rest_api/api/v0.1/

rest-api.png-22.5kB

修改/opt/inkscope/etc/inkscope.conf配置文件,

1
2
3
"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 服务

1
[root@inkscope ~]# /etc/init.d/cephprobe restart

现在就可以访问
http://192.168.222.100:8080/inkscopeViz/index.html

这个是没有用户名密码的,我们为了安全采用以下用户名密码的方式,需要安装flask-login

1
[root@inkscope ~]# rpm -ivh python-flask-login-0.2.11-1.el7.centos.noarch.rpm

重启httpd服务

1
[root@inkscope ~]# systemctl restart httpd

denglu.png-35.5kB

再次访问就需要用户名密码了

  • 默认用户名:admin
  • 默认密码:admin

到这里最基本的管理平台配置就完成了

配置sysprobe

sysprobe是获取集群节点的主机的信息的

安装

1
2
[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配置文件拷贝到节点上

1
[root@inkscope ~]# scp /opt/inkscope/etc/inkscope.conf 192.168.8.106:/opt/inkscope/etc/

在osd节点启动sysprobe服务

1
[root@lab8106 ~]# /etc/init.d/sysprobe restart

probe.png-49.6kB
正常情况就用上面这个页面检查配置的状况

cephprobe是用来或者集群的相关信息和操作的
sysprobe是获取节点的磁盘分区等相关信息的

基本节点的软件包配置完毕了,一些扩展功能也配置一下

创建rgw相关的

配置rgw网关

在/etc/ceph/ceph.conf
添加

1
2
[client.radosgw.gateway]
host = inkscope

启动radosgw服务

1
[root@inkscope ~]# /etc/init.d/ceph-radosgw restart

检查端口是否启动,默认是7480

1
2
[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

执行完后检查存储池情况,自动会创建了一些存储池

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[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的用户

这个用户是管理员用户,需要给很多权限

1
[root@inkscope ~]# radosgw-admin user create --uid=inkscope --display-name="inkscope" --access-key=inkscope --secret=inkscope --access=full --caps="metadata=*;users=*;buckets=*"

修改配置文件

1
[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
sankey.png-500.1kB