一.前情提要

关于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包所有节点都需要因此省略):

角色 分配节点 需要安装的inkscope的包
web管理控制台 ceph3 inkscope-admviz
sysprobe ceph1,ceph2,ceph3 inkscope-sysprobe
cephprobe ceph2 inkscope-cephprobe,inkscope-cephrestapi
radosgw ceph1 无需inkscope的包

三.安装

3.1 安装web管理控制台

3.1.1 按章软件包和依赖

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

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

apt-get install python-pip apache2 libapache2-mod-wsgi mongodb python-ceph
pip install flask requests simplejson -i http://pypi.mirrors.ustc.edu.cn/simple #使用国内pip源安装
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行

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

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

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

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

Listen 8080
NameVirtualHost *:8080

完整inkScope.conf文件如下:

root@ceph3:/etc/apache2/sites-available# cat inkScope.conf
<VirtualHost *:8080>
ServerName localhost
ServerAdmin webmaster@localhost DocumentRoot /var/www/inkscope
<Directory "/var/www/inkscope">
Options All
AllowOverride All
</Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory> WSGIScriptAlias /inkscopeCtrl /var/www/inkscope/inkscopeCtrl/inkscopeCtrl.wsgi
<Directory "/var/www/inkscope/inkScopeCtrl">
Order allow,deny
Allow from all
</Directory> ErrorLog /var/log/apache2/error_inkscope.log # Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn ProxyRequests Off # we don't want a "forward proxy", but only a "Reverse proxy"
ProxyPass /ceph-rest-api/ http://10.1.35.86:5000/api/v0.1/
#ProxyPass /shell http://$IP:4200/ CustomLog /var/log/apache2/access.log combined
</VirtualHost>

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

sudo a2enmod proxy_http
sudo a2ensite inkScope.conf
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 依据前面的注释,如下:

bind_ip = 0.0.0.0
port = 27017

3.2 安装cephprobe

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

apt-get install python-dev
pip install pymongo psutil -i http://pypi.mirrors.ustc.edu.cn/simple
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。

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

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

3.4安装sysprobe

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

apt-get install python-dev
pip install pymongo psutil -i http://pypi.mirrors.ustc.edu.cn/simple
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

最终版如下:

{
"ceph_conf": "/etc/ceph/ceph.conf",
"ceph_rest_api": "10.1.35.86:5000",
"mongodb_host" : "10.1.35.87",
"ceph_rest_api_subfolder": "",
"mongodb_set" : "mongodb0:27017,mongodb1:27017,mongodb2:27017",
"mongodb_replicaSet" : "replmongo0",
"mongodb_read_preference" : "ReadPreference.SECONDARY_PREFERRED",
"mongodb_port" : 27017,
"mongodb_user":"ceph",
"mongodb_passwd":"monpassword",
"is_mongo_authenticate" : 0,
"is_mongo_replicat" : 0,
"cluster": "ceph",
"status_refresh": 3,
"osd_dump_refresh": 3,
"pg_dump_refresh": 60,
"crushmap_refresh": 60,
"df_refresh": 60,
"cluster_window": 1200,
"osd_window": 1200,
"pool_window": 1200,
"mem_refresh": 60,
"swap_refresh": 600,
"disk_refresh": 60,
"partition_refresh": 60,
"cpu_refresh": 30,
"net_refresh": 30,
"mem_window": 1200,
"swap_window": 3600,
"disk_window": 1200,
"partition_window": 1200,
"cpu_window": 1200,
"net_window": 1200,
"radosgw_url": "http://10.1.35.85:80",
"radosgw_admin": "admin",
"radosgw_key": "ainkscope",
"radosgw_secret": "sinkscope"
}

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

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

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

四.安装web console

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

sudo apt-get install shellinabox

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

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

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

SHELLINABOX_ARGS="--no-beep -t"

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

service shellinabox restart

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

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

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

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

重启apache2

service apache2 restart

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

开源ceph管理平台inkscope部署手册的更多相关文章

  1. 2019你该掌握的开源日志管理平台ELK STACK

    转载于https://www.vtlab.io/?p=217   在企业级开源日志管理平台ELK VS GRAYLOG一文中,我简单阐述了日志管理平台对技术人员的重要性,并把ELK Stack和Gra ...

  2. kvm虚拟化管理平台WebVirtMgr部署-完整记录(3)

    继下面三篇文章完成了kvm虚拟化管理平台webvirtmgr环境的部署安装:kvm虚拟化管理平台WebVirtMgr部署-虚拟化环境安装-完整记录(0)kvm虚拟化管理平台WebVirtMgr部署-完 ...

  3. kvm虚拟化管理平台WebVirtMgr部署-完整记录(2)

    继上一篇kvm虚拟化管理平台WebVirtMgr部署-完整记录(1),接下来说说WebVirtMgr的日常配置:添加宿主机,创建虚机,磁盘扩容,快照等具体操作记录如下: 一.配置宿主机1.登录WebV ...

  4. kvm虚拟化管理平台WebVirtMgr部署-完整记录(1)

    公司机房有一台2U的服务器(64G内存,32核),由于近期新增业务比较多,测试机也要新增,服务器资源十分有限.所以打算在这台2U服务器上部署kvm虚拟化,虚出多台VM出来,以应对新的测试需求.当KVM ...

  5. KVM虚拟化管理平台WebVirtMgr部署及使用

    KVM虚拟化管理平台WebVirtMgr部署及使用   需求: 公司机房有一台2U的服务器(64G内存,32核),由于近期新增业务比较多,测试机也要新增,服务器资源十分有限.所以打算在这台2U服务器上 ...

  6. Hudson管理平台自动化部署war包

    继上一篇:Hudson持续集成管理平台搭建 后,我们需要进行项目的自动化部署. 首先:我们先配置<系统管理>中的[系统设置] 然后返回到首页,点击项目名称进入项目内,点击设置: 翻到最底下 ...

  7. centos7.2 kvm虚拟化管理平台WebVirtMgr部署

    在服务器上部署kvm虚拟化,虚出多台VM出来,以应对新的测试需求.当KVM宿主机越来越多,需要对宿主机的状态进行调控,决定采用WebVirtMgr作为kvm虚拟化的web管理工具,图形化的WEB,让人 ...

  8. Yapi接口管理平台 本地部署 windows环境 -

    YApi 是高效.易用.功能强大的 api 管理平台,旨在为开发.产品.测试人员提供更优雅的接口管理服务.可以帮助开发者轻松创建.发布.维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只 ...

  9. 008-kvm虚拟化管理平台WebVirtMgr部署-完整记录(1)

    公司机房有一台2U的服务器(64G内存,32核),由于近期新增业务比较多,测试机也要新增,服务器资源十分有限.所以打算在这台2U服务器上部署kvm虚拟化,虚出多台VM出来,以应对新的测试需求. 当KV ...

随机推荐

  1. QTcpSocket 及 TCP粘包分析

    ----我的生活,我的点点滴滴!! 这两天用Qt简单的实现一个tcp多线程client,在此记录下知识. 一.长连接与短连接 1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开 ...

  2. AndroidUI 布局动画-布局内容改变动画

    实现一个点击菜单动画添加按钮,点击按钮移除当前按钮的动画效果: <LinearLayout xmlns:android="http://schemas.android.com/apk/ ...

  3. KVC在定义Model类中的妙用

    @我们应用程序使用MVC架构的话,对于处理数据类,我们会单独的定义Model类,在里面为要展示的属性进行初始化赋值,一般採用的方法是通过定义相应的属性,挨个赋值.如今我要介绍的就是通过KVC,key- ...

  4. sql权限报表小知识

    EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIG ...

  5. Adroid: getExternalStorageDirectory 不一定是你想要的外部存储SdCard

    前情提要:我的测试机是华为荣耀6,我装过一个16G的内存卡 因为要面试的需要,我的一个演示项目用的是android本地的WebService.然而写好的webService部署到本地上,应用怎么获取数 ...

  6. 20141021WinForm控件属性

    一.Form对象属性:Name:窗体类的类名(一)外观:BackColor:窗体背景色ForeColor:窗体文字色BackgroundImage:背景图片Font:设置字体FormBorderSty ...

  7. c++中的const参数,const变量,const指针,const对象,以及const成员函数

    const 是constant 的缩写,“恒定不变”的意思.被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性.所以很多C++程序设计书籍建议:“Use const whe ...

  8. zoj 3471Most Powerful

    题意:给n个atom(原子),每两个原子相碰会产生能量,不过每次碰撞会消失一个原子,而且不同原子碰撞,消失的原子不同,产生的能量也会不同,给出不同原子相碰撞产生的能量,求出能产生的最多能量. 状态DP ...

  9. 控制台下的计算器——C++实现

    最近这段时间看操作系统的东西看的头晕脑胀的,所以先停个一晚上,写个控制台下的计算器,来练练栈的使用. 首先,分析一下要完成的东西.输入肯定使用string类来输入的,然后第一步,就是把string的字 ...

  10. 《C++ Primer Plus 6th》读书笔记 - 第8章 函数探幽

    1. 摘录 默认参数指的是当函数调用中省略了实参时自动使用的一个值. 默认参数并非编程方面的重大突破,而只是提供了一种便捷的方式.使用默认参数,可以减少要定义的析构函数.方法以及方法重载的数量. 试图 ...