中国领先的IT技术网站
|
|

开源Ceph管理平台Inkscope部署手册

inkscope使用的是ceph自带的restapi,因此是比较轻量级的,ceph集群相关的信息直接从API调,系统层面的信息抓取是通过本地一个代理程序抓取,然后写入inkscope所在节点的mongodb里。

作者:hnuzhoulin来源:Ceph中国社区|2015-07-28 10:19

开发者大赛路演 | 12月16日,技术创新,北京不见不散


开源ceph管理平台inkscope部署手册

一.前情提要

关于inkscope就不做过多介绍了,就是ceph的一个开源管理控制平台,跟ceph官方的calamary以及intel的VSM差不多一类,只是各自侧重点不一样。

相对而言,因为inkscope使用的是ceph自带的restapi,因此是比较轻量级的,ceph集群相关的信息直接从API调,系统层面的信息抓取是通过本地一个代理程序抓取,然后写入inkscope所在节点的mongodb里。

1.1 官方地址

github-inkscope

inkscope角色介绍

inkscope主要的角色有三种: 1. web管理控制台:这个角色需要安装flask和mongodb以提供接口,方便前端界面angular-js调用 2. cephprobe:这个一般是安装在mon节点,整个集群安装一个即可,主要是获取ceph的一些信息将其写入mongodb中;使用5000端口提供服务 3. sysprobe:这个主要是获取集群所有节点的硬件监控信息,如CPU、内存、硬盘灯,集群内所有节点都需要安装。 4. radosgw: 是ceph对外提供对象存储服务的服务,本例中用于对象存储相关的管理,会使用80端口提供http服务;

1.2 inkscope-packaging

最新的版本中,已经提供了ubuntu下的deb安装包,项目地址,deb包及作用介绍如下:

  1. inkscope-common : 包含inkscope的默认配置文件以及其他进程(cephprobe,sysprobe)启动所需的依赖文件,所有相关节点都需要安装
  2. inkscope-admviz : 包含inkscope的web控制台文件,含接口和界面,仅需要安装一个,该节点上同时需要按章flask和mongodb
  3. inkscope-cephrestapi: 用于安装启动 ceph rest api 的脚本,仅需要安装在提供api接口的节点上
  4. inkscope-cephprobe: 用于安装启动 cephprobe 的脚本(整个集群只需要一个)
  5. inkscope-sysprobe : 安装用于所有mon和osd的sysprobe 所需要脚本

二.测试环境

本次测试ceph集群共有三个节点:ceph1(10.1.35.85),ceph2(10.1.35.86),ceph3(10.1.35.87);

三个节点都是mon节点,也都是osd节点,每个节点3个osd。

根据前面的角色以及安装包的介绍,三个节点的分配及所需安装包如下(inkscope-common包所有节点都需要因此省略):

开源ceph管理平台inkscope部署手册

三.安装

3.1 安装web管理控制台

3.1.1 按章软件包和依赖

该节点使用php以及wsgi实现界面,本地接收其他节点传过来的数据存入本地mongodb,同时会调用rados命令,

又使用flask框架构建接口,因此需要使用下面的命令安装依赖

  1. apt-get install python-pip apache2 libapache2-mod-wsgi mongodb python-ceph 
  2. pip install flask requests simplejson -i http://pypi.mirrors.ustc.edu.cn/simple   #使用国内pip源安装 
  3. dpkg -i inkscope-admviz_1.2.0-0.deb  inkscope-common_1.2.0-0.deb inkscope-sysprobe_1.2.0-0.deb 

3.1.2 配置apache2服务

安装完nkscope-admviz后默认虚拟主机配置文件位于/etc/httpd/conf.d/inkScope.conf,将其拷贝到/etc/apache2/sites-available 中。修改32行为下面这句, 注释掉 33行

  1. ProxyPass /ceph-rest-api/ http://10.1.35.86:5000/api/v0.1/ 
  2. #ProxyPass /shell http://$IP:4200/ 

这里将 rest-api_srv 修改为ceph2的IP,规划中,ceph2的角色是cephprobe。

同时将25和35行的ErrorLog和CustomLog的值里面的httpd修改为apache2,因为apache2的工作路径已经换了

修改 /etc/apache2/ports.conf 文件,增加下面

  1. Listen 8080 
  2. NameVirtualHost *:8080 

完整inkScope.conf文件如下:

  1. root@ceph3:/etc/apache2/sites-available# cat inkScope.conf  
  2. <VirtualHost *:8080> 
  3.     ServerName  localhost 
  4.     ServerAdmin webmaster@localhost 
  5.  
  6.     DocumentRoot /var/www/inkscope 
  7.     <Directory "/var/www/inkscope"
  8.         Options All 
  9.         AllowOverride All 
  10.     </Directory> 
  11.  
  12.     ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ 
  13.     <Directory "/usr/lib/cgi-bin"
  14.         AllowOverride None 
  15.         Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch 
  16.         Order allow,deny 
  17.         Allow from all 
  18.     </Directory> 
  19.  
  20.     WSGIScriptAlias /inkscopeCtrl /var/www/inkscope/inkscopeCtrl/inkscopeCtrl.wsgi 
  21.     <Directory "/var/www/inkscope/inkScopeCtrl"
  22.         Order allow,deny 
  23.         Allow from all 
  24.     </Directory> 
  25.  
  26.     ErrorLog /var/log/apache2/error_inkscope.log 
  27.  
  28.     # Possible values include: debug, info, notice, warn, error, crit, 
  29.     # alert, emerg. 
  30.     LogLevel warn 
  31.  
  32.     ProxyRequests Off  # we don't want a "forward proxy", but only a "Reverse proxy" 
  33.     ProxyPass /ceph-rest-api/ http://10.1.35.86:5000/api/v0.1/  
  34.     #ProxyPass /shell http://$IP:4200/ 
  35.  
  36.     CustomLog /var/log/apache2/access.log combined 
  37. </VirtualHost> 

运行下面的命令,启用apache2的proxy模块和inkScope.conf虚拟主机

  1. sudo a2enmod proxy_http 
  2. sudo a2ensite inkScope.conf 
  3. sudo service apache2 restart 

现在打开浏览器访问 10.1.35.87:8080/ 应该就可以看到首页,只是暂时没有ceph集群的相关数据而已。

3.1.3 开启mongodb远程连接

修改 /etc/mongodb.conf ,将bind_ip 修改为 0.0.0.0,取消 port = 27017 依据前面的注释,如下:

  1. bind_ip = 0.0.0.0 
  2. port = 27017 

3.2 安装cephprobe

在cephprobe节点主要是提供ceph-rest-api并抓取ceph的信息存入mongodb中。所需软件包及依赖安装如下:

  1. apt-get install python-dev 
  2. pip install pymongo psutil -i http://pypi.mirrors.ustc.edu.cn/simple  
  3. dpkg -i inkscope-common_1.2.0-0.deb inkscope-sysprobe_1.2.0-0.deb inkscope-cephrestapi_1.2.0-0.deb inkscope-cephprobe_1.2.0-0.deb 

启动ceph-rest-api服务: /etc/init.d/ceph-rest-api start

3.3 radosgw服务配置

在ceph1提供radosgw服务,具体radosgw的安装在这里不做详述,请参见ceph官方文档或者内部手册。这里需要新建一个管理用户,并赋予相关权限,以便在界面上直接操作radosgw。

  1. radosgw-admin user create --uid=inkscope --display-name="Inkscope admin" \ 
  2.                       --access-key=accesskey --secret=secretkey \ 
  3.                       --caps="users=*;metadata=*;buckets=*" 

这里sccess和secret的具体的值可以根据喜好自行修改。

3.4安装sysprobe

在其他没有承担特殊任务的节点上安装sysprobe

  1. apt-get install python-dev 
  2. pip install pymongo psutil -i http://pypi.mirrors.ustc.edu.cn/simple  
  3. dpkg -i inkscope-common_1.2.0-0.deb inkscope-sysprobe_1.2.0-0.deb 

3.5修改inkscope配置文件并启动服务

inkscope的配置文件就一个,位于 /opt/inkscope/etc/inkscope.conf ,

这里面需要修改的主要有: 1. ceph_rest_api:在本例中即为ceph2的ip 2. mongodb_host:即为ceph3所在节点,管理节点 3. radosgw_url:即为ceph1所在节点 4. radosgw_key和radosgw_secret:在ceph1上新建管理用户时指定的两个key

最终版如下:

  1.     "ceph_conf""/etc/ceph/ceph.conf"
  2.     "ceph_rest_api""10.1.35.86:5000"
  3.     "mongodb_host" : "10.1.35.87"
  4.     "ceph_rest_api_subfolder"""
  5.     "mongodb_set" : "mongodb0:27017,mongodb1:27017,mongodb2:27017"
  6.     "mongodb_replicaSet" : "replmongo0"
  7.     "mongodb_read_preference" : "ReadPreference.SECONDARY_PREFERRED"
  8.     "mongodb_port" : 27017, 
  9.     "mongodb_user":"ceph"
  10.     "mongodb_passwd":"monpassword"
  11.     "is_mongo_authenticate" : 0, 
  12.     "is_mongo_replicat" : 0, 
  13.     "cluster""ceph"
  14.     "status_refresh": 3, 
  15.     "osd_dump_refresh": 3, 
  16.     "pg_dump_refresh": 60, 
  17.     "crushmap_refresh": 60, 
  18.     "df_refresh": 60, 
  19.     "cluster_window": 1200, 
  20.     "osd_window": 1200, 
  21.     "pool_window": 1200, 
  22.     "mem_refresh": 60, 
  23.     "swap_refresh": 600, 
  24.     "disk_refresh": 60, 
  25.     "partition_refresh": 60, 
  26.     "cpu_refresh": 30, 
  27.     "net_refresh": 30, 
  28.     "mem_window": 1200, 
  29.     "swap_window": 3600, 
  30.     "disk_window": 1200, 
  31.     "partition_window": 1200, 
  32.     "cpu_window": 1200, 
  33.     "net_window": 1200, 
  34.     "radosgw_url""http://10.1.35.85:80"
  35.     "radosgw_admin""admin"
  36.     "radosgw_key""ainkscope"
  37.     "radosgw_secret""sinkscope" 

将该文件拷贝到所有节点的/opt/inkscope/etc/ 目录中,然后重启对应服务:

  1. /etc/init.d/sysprobe start 
  2. /etc/init.d/cephprobe start 
  3. /etc/init.d/ceph-rest-api start 

对应节点上启动对用服务。

四.安装web console

如果你是ubuntu14.04,直接安装:

  1. sudo apt-get install shellinabox 

如果不是,点击这里下载deb包安装。

或者点击这里下载其他对应发行版的包。

修改配置文件, /etc/default/shellinabox :

  1. SHELLINABOX_ARGS="--no-beep -t"  

不适用SSL协议,然后重启服务

  1. service shellinabox restart 

修改apache2虚拟主机配置文件,添加代理 /etc/apache2/site-available/inkScope.conf

在 ProxyPass /ceph-rest-api/ ... 这一行后添加下面的:

  1. ProxyPass /shell http://<hostname>:4200/ 

这里的 hostname 就是安装shellinabox的主机地址

重启apache2

  1. service apache2 restart 

注意:貌似需要谷歌浏览器,否则输入没反应。

博文出处:www.ceph.org.cn/topic/137

【编辑推荐】

  1. 2015 年度开源项目新秀榜
  2. 介绍几款开箱即用的开源KVM管理平台
  3. 开源云计算平台CloudStack架构浅析
  4. OpenStack和Docker成最受欢迎开源云计算项目
  5. 开发人员请注意:开源成9大技术发展首选
【责任编辑:Ophira TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

视频课程+更多

Openstack入门与实践(ceph+Keystone+虚拟机镜像)视频课程

Openstack入门与实践(ceph+Keystone+虚拟机

讲师:邓怀波6506人学习过

2014 WOT软件技术峰会

2014 WOT软件技术峰会

讲师:WOT峰会1950人学习过

OpenStack概论视频教程

OpenStack概论视频教程

讲师:学领未来2090人学习过

读 书 +更多

计算机网络技术

本书是为北大燕工教育研究院编写的计算机网络技术的学习教材。它以实际教学大纲为依据,全面系统的介绍了计算机网络技术知识,对于一个...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× 51CTO学院双十二活动