Ceph Calamari安装

简介

Calamari是Ceph的官方监控界面,通过该界面不仅可以监控Ceph集群的整体状态,而且可以监控服务器和内部物理组件的状态。Calamari通过图形化的方式展示,非常方便用户使用。

软件包介绍

      Calamari包含4个主要的软件包,分别在Ceph集群和Calamari服务端。服务端接收Ceph集群端代理的数据,并通过Web加以呈现,具体如下:

      calamari-clients_1.2.1.1-29-g3790c24_all.deb (calamar客户端,WEB UI代码)

      calamari-clients-build-output.tar(同calamari-clients_1.2.1.1-29-g3790c24_all-.deb内容一样,只是它解压后可以在任何平台上使用)

      calamari-repo-precise.tar.gz(安装源,安装calamari过程中依赖的包)

      calamari-server_1.2.1-56-gc09e8ed_amd64.deb(calamari服务端,它提供了calamari REST API,calamari 通过salt管理Ceph服务的cthulhu,以及一个calamari web的一个基本框架)

      diamond_3.4.67_all.deb(calamari监控客户端)

      上述软件包是Calamari自身的软件包,其中还会依赖很多其它的软件包,Calamari的整体架构如下图所示。

      在Ceph server node安装的组件有Diamond和Salt-minion。Diamond负责收集监控数据,它支持非常多的数据类型和metrics,通过查看源代码,它支持90多种类型的数据;每一个类型的数据都是上图中的一个collector,它除了收集Ceph本身的状态信息,它还可以收集关键的资源使用情况和性能数据,包括CPU,内存,网络,I / O负载和磁盘指标,而且还能收集很多流行软件的性能指标,包括 Hadoop, Mongo, Kafka, MySQL, NetApp, RabbitMQ, Redis, and AWS S3等。Collector都是使用本地的命令行来收集数据,然后报告给Graphite。

      Graphite不仅是一个企业级的监控工具, 还可以实时绘图。carbon-cache是Python实现的高度可扩展的事件驱动的I/O架构的后端进程,它可以有效地跟大量的客户端通信并且以较低的开销处理大量的业务量。

      Whisper跟RRDtool类似,提供数据库开发库给应用程序来操纵和检索存储在特殊格式的文件数据(时间数据点数据),Whisper最基本的操作是创建作出新的Whisper文件,更新写入新的数据点到一个文件中,并获取检索的数据点

      Graphite_web是用户接口,用来生成图片,用户可以直接通过URL的方式访问这些生成的图片。

      Calamari 使用了Saltstack让Calamari Server和Ceph server node通信。Saltstack是一个开源的自动化运维管理工具,与Chef和Puppet功能类似。Salt-master发送指令给指定的Salt-minion来完成对Cpeh Cluster的管理工作;Salt-minion 在Ceph server node安装后都会从master同步并安装一个ceph.py文件,里面包含Ceph操作的API,它会调用librados或命令行来最终和Ceph Cluster通信。

calamari

      calamari_rest提供Calamari REST API,详细的接口请大家参照官方文档。Ceph的REST API是一种低层次的接口,其中每个URL直接映射到等效的CEPH CLI;Calamari REST API提供了一个更高层次的接口,API的使用者可以习惯的使用GET/POST/PATCH方法来操作对象,而无需知道底层的Ceph的命令;它们之间的主要区别在于,Ceph的REST API的使用者需要非常了解Ceph本身,而Calamari 的REST API更贴近对Ceph资源的描述,所以更加适合给上层的应用程序调用。

      cthulhu可以理解是Calamari Server的Service层,对上为API提供接口,对下调用Salt-master。但是代码美中不足的是calamari_rest有些功能直接调用了Salt-master而没有调用cthulhu。

      calamari_clients是一套用户界面,Calamari Server在安装的过程中会首先创建opt/calamari/webapp目录,并且把webapp/calamari下的manager.py(django 配置)文件考进去, calamari_web的所有内容到要放到opt/calamari/webapp下面来提供UI的访问页面。

      calamari-web包下面的文件提供所有web相关的配置,calamari_rest和calamari_clients都要用到。

安装步骤

      Calamari的整个部署架构可以简化为下图,包含客户端和Calamari系统。而Calamari系统由Calamari服务端和运行在Ceph集群上的代理组成。代理不断将数据发送到Calamari服务端,后者将数据存储在数据库中。通过客户端可以通过HTTP协议连接Calamari服务端,并展现Ceph集群系统状态和信息。

calamari-dep.jpg

服务端安装

1. 安装saltstack

sudo apt-get install python-software-properties

sudo add-apt-repository ppa:saltstack/salt

sudo apt-get update

sudo apt-get install salt-master=0.17.5+ds-1

sudo apt-get install salt-minion=0.17.5+ds-1

2. 安装依赖包

sudo apt-get update && sudo apt-get install -y apache2

libapache2-mod-wsgi libcairo2 supervisor python-cairo libpq5 postgresql

3. 安装Calamari

sudo dpkg -i calamari-server*.deb calamari-clients*.deb

4. 初始化服务端

sudo calamari-ctl initialize

会打印如下内容,注意输入登录密码。

[INFO] Loading configuration.. 
[INFO] Starting/enabling salt... 
[INFO] Starting/enabling postgres... 
[INFO] Initializing database... 
[INFO] Initializing web interface... 
[INFO] You will now be prompted for login details for the administrative user account. This is the account you will use to log into the web interface once setup is complete. Username (leave blank to use 'root'): Email address: karan.singh@csc.fi Password: Password (again): Superuser created successfully. [INFO] Starting/enabling services... 
[INFO] Restarting services... - See more at: http://ceph.com/category/calamari/#sthash.qUtbU0mX.dpuf

初始化完成后,在客户端打开浏览器,输入地址就可以访问。但是此时没有配置Ceph集群,会提示进行Ceph集群配置。如下图所示。

logo

main

 

代理安装

1. 安装监控服务

登陆其中一台ceph集群机器(这里假设ceph集群都是ubuntu环境),安装监控服务。

sudo dpkg -i diamond_3.4.67_all.deb

创建默认的监控配置文件

sudo mv /etc/diamond/diamond.conf.example /etc/diamond/diamond.conf

2. 安装salt-minion服务

sudo apt-get install python-software-properties

sudo add-apt-repository ppa:saltstack/salt

sudo apt-get update

sudo apt-get install salt-minion=0.17.5+ds-1

3. 修改hosts文件

在/etc/hosts文件中增加calamari服务器的映射关系
 

/etc/hosts

...

...

192.168.26.10 ceph-calamari

4. 修改salt-minion配置

修改salt-minion的配置文件/etc/salt/minion,将master指向calamari服务器

/etc/salt/minion
...
master: ceph-calamari
...

5. 重启服务

sudo service salt-minion restart

sudo service diamond restart

 

在所有的ceph集群机器上重复以上的步骤。

效果展示

集群状态界面(DASHBOARD)

Dashboard用于显示Ceph集群的整体概要信息及概要状态信息。通过该面板可以非常清晰的了解到有多少OSD、多少MON、多少存储从及它们的状态。具体如图所示。

ceph-dashboard

集群组件概要

了解OSD的状态,非常形象直观。

osd-workbench

服务器组件页面

该界面不仅可以了解整个集群每个存储池的性能,而且可以了解每个服务器CPU、磁盘和网络性能情况。

ceph-dev

原文链接:,转发请注明来源!

发表评论