6.1 KiB
Calamari: a Ceph UI
Include the URL of your launchpad blueprint:
https://blueprints.launchpad.net/fuel/+spec/fuel-plugin-calamari
We would like to develop a plugin to install Calamari in the next release of Fuel (7.0). Calamari is a management and monitoring service for Ceph. Calamari is composed by monitoring agents, a server-side and a client-side components.
In more depth Calamari consists of three major components:
- Data collection agents running on each Ceph Storage Cluster host.
- The REST API running on one host (also called calamari server).
- The Calamari web application running on one host (also called calamari client).
Problem description
In this section we describe the main steps that a user should perform for installing Calamari. We suppose that:
- Ceph OSD is selected by User.
- Calamari agent will be installed on the Ceph OSD nodes.
- Calamari server and Calamari web application (GUI) will be installed on a new base-os node.
Calamari installation
- Actor: User
- Pre-Conditions: the User has already created a new environment and he has configured a Ceph cluster.
- Post-Conditions: Calamari is correctly working.
Flow:
- The User assigns base-os role to an unallocated node.
- The User renames this node as Calamari
- The User configures in Settings tab the Ceph section.
- The User configures in Settings tab the Calamari section.
- The User deploys the environment.
Proposed change
We would like develop a new Fuel plugin in order to install Calamari1. Our proposal considers the following aspects:
- Install Calamari server (REST API) and client (web application) on a new node with the base-os role.
- The plugin installs also the required agents on each Ceph OSD node. The collected information will be pushed to Calamari server.
- The communication among agents and server will use the OpenStack management network.
- There will be a configuration switch to make the REST API and web application of Calamari available on the public interface (if the base-os support this already).
- No load balance for HA in the first implementation. This topic will be explored in the future.
Planned improvements
- Possibility to install Calamari on a controller node.
- Configure Calamari to use Keystone as the authentication backend.
- User session sharing between Calamari and the OpenStack dashboard.
Alternatives
None. The aim is to provide monitoring and management for Ceph. There are more general monitoring solution like Zabbix2, LMA collector3 and Elasticsearch-Kibana4 plugins.
Data model impact
None
REST API impact
None
Upgrade impact
None.
Security impact
The default admin user name and password for the web interface will be configured in the setting tab of the Fuel UI.
In the Fuel UI will be possible to allow the deploy of the REST API and web application on the public network.
Notifications impact
There will be a deployment successful message displaying the text pointing to the URL of the web application.
We can also add some info to the Post Deployment Dashboard once it is implemented.
Other end user impact
None
Performance Impact
None
Other deployer impact
In the source tree of calamari there are Vagrantfile and scripts to build the packages for Ubuntu 14.04, Centos and RHEL.
There is a guide on building packages.
Developer impact
None
Infrastructure impact
The agent impact on Ceph servers and on the network should be negligible.
Implementation
Assignee(s)
- Primary assignee:
-
Alessandro Martellone <amartellone@create-net.org>
- Other contributors:
-
Daniele Pizzolli <dpizzolli@create-net.org>
Work Items
- Task name: Calamari installation recipe
-
Task description: write a puppet module in order to install Calamari server and configure properly all nodes to monitor.
Assignees: Alessandro Martellone, Daniele Pizzolli.
- Task name: include the latest version of Calamari package
-
Task description: include in the plugin repositories the required packages.
Assignees: Dmytro Iurchenko, Alessandro Martellone, Daniele Pizzolli.
Dependencies
- Fuel 6.1 or higher.
- Base-os node role.
Nice to have, but not essential:
Testing
Acceptance criteria:
- Diamond5 and salt-minion services are installed and running on all OSD and Controller nodes.
- Salt-master is installed and running on the node named 'calamari' and salt-keys command lists all OSD and Controller node hosts in 'Accepted Keys' section.
- Calamari REST API is available on the node named 'calamari'6.
- User can authenticate via REST API7.
- The cluster description provided by Calamari REST API8 is correct.
- Calamari UI is available on 'calamari' node on HTTP default port.
Documentation Impact
None. It will be a Fuel plugin with its own documentation.
References
http://calamari.readthedocs.org/en/latest/operations/server_install.html↩︎
https://docs.mirantis.com/fuel-dev/develop/addition_examples.html↩︎
https://github.com/stackforge/fuel-plugin-elasticsearch-kibana↩︎
http://ceph.com/calamari/docs/calamari_rest/authentication.html↩︎
http://ceph.com/calamari/docs/calamari_rest/resources/resources.html#clusterviewset↩︎