Update the documentation for MOS 8.0
Change-Id: Ifc135a32a832d8cc10b936389bb3494e2952bb76
This commit is contained in:
parent
1036a1cafb
commit
522de005bd
|
@ -1,17 +1,53 @@
|
|||
Ceilometer Redis plugin
|
||||
=======================
|
||||
|
||||
Ceilometer Redis Plugin provides a coordination mechanism for
|
||||
`Ceilometer agents <https://ceilometer.readthedocs.org/en/latest/architecture.html>`_.
|
||||
The first version of plugin will support only `Central Agent <https://ceilometer.readthedocs.org/en/latest/glossary.html#term-central-agent>`_.
|
||||
It uses `tooz library <http://docs.openstack.org/developer/tooz/>`_ with
|
||||
`Redis backend <http://redis.io>`_ to provide a set of resources
|
||||
to be polled for each Central agent. The plugin also changes deployment of Ceilometer central agent:
|
||||
now every controller has its own running ceilometer central service
|
||||
which are joined into coordination group. These changes in deployment will be done automatically.
|
||||
It also configures redis-server under pacemaker to monitor its process. The plugin configures
|
||||
`redis-sentinel <http://redis.io/topics/sentinel>`_ to monitor the state of redis cluster,
|
||||
to elect new master during failovers, to forward ceilometer agents to new elected redis master, to organize sync between redis nodes.
|
||||
Ceilometer Redis Plugin aims to install Redis to MOS environment and provide a coordination mechanism for
|
||||
`Ceilometer agents <https://ceilometer.readthedocs.org/en/latest/architecture.html>`_ and Alarm Evaluator
|
||||
through the `tooz library <http://docs.openstack.org/developer/tooz/>`_ with a `Redis backend <http://redis.io>`_
|
||||
The plugin supports coordination for the following Ceilometer services: central agent, notification agent
|
||||
and alarm-evaluator. Each of these services are running on every controller after the plugin
|
||||
is installed. All of them are joined into the corresponding coordination group (one coordination group
|
||||
per each service). It differs from the default configuration when there should be only one central agent
|
||||
and alarm-evaluator per cloud. The plugin also configures redis-server under pacemaker to monitor its process.
|
||||
The plugin configures `redis-sentinel <http://redis.io/topics/sentinel>`_ to monitor the state of the redis
|
||||
cluster, to elect new master during failovers, to forward ceilometer services to new elected redis master,
|
||||
to organize sync between redis nodes.
|
||||
|
||||
|
||||
Central agent
|
||||
-------------
|
||||
Ceilometer Central agent is responsible for polling all OpenStack resources except Nova's (Nova resources,
|
||||
i.e. vms, are polled by a Compute agent). Without coordination enabled, only one Central agent should be running
|
||||
per cloud. The reason is that all the central agents have the same set of OpenStack resources to poll every
|
||||
configurable time interval. If coordination is not enabled, each OpenStack resource will be polled as many times
|
||||
as many instances of Central agents are running in a cloud.
|
||||
Thus, coordination provides a disjoint set of OpenStack resources to poll for every Central agent running on the
|
||||
cloud to avoid polling one resource several times.
|
||||
|
||||
Alarm evaluator
|
||||
---------------
|
||||
Ceilometer alarm evaluator service is responsible for Ceilometer alarm evaluation.
|
||||
By default, in MOS there is only one alarm evaluator per cloud. The reason is the same as for a central agent.
|
||||
If there are several alarm evaluators and no coordination enabled, all of them will evaluate the same set of alarms
|
||||
every configurable time interval. The alarm sets for evaluators should be disjoint. So, coordination is responsible
|
||||
for providing the set of alarms to evaluate to each alarm-evaluator in the cloud.
|
||||
|
||||
Notification agent
|
||||
------------------
|
||||
Before Liberty, there was no need to coordinate Ceilometer notification agents. But starting from Liberty, samples
|
||||
transformations started to be handled not by compute/central agents as it was before, but by a notification agent.
|
||||
Some of Ceilometer transformers have a local cache where it is stored the data from previously processed samples.
|
||||
For example, "cpu_util" metric are obtained from two consecutive Samples with "cpu" metric: one is subtracted from
|
||||
another and divided to an amount of cpu (this information is stored in Sample's metadata).
|
||||
Thus, it should be guaranteed that all the Samples which should be transformed by one transformer, will go to the
|
||||
same notification agent. If some of the samples go to another, the cache cannot be shared and some data will be lost.
|
||||
|
||||
To handle this process properly, IPC queues was introduced - inter process communication queues in message bus
|
||||
(RabbitMQ). With coordination enabled, each notification agent has two set of listeners: for main queues and for IPC
|
||||
queues. All notification agents listen to _all_ the main queues (where we have all messages from OpenStack services
|
||||
and polling-based messages from central/compute agents) and re-publish messages to _all_ IPC queues. Coordination
|
||||
starts to work at this point: every notification agent in the cloud has it's own set of IPC queues to listen to. Thus,
|
||||
we can be sure that local cache on each notification agent contains all the previous data required for transformation.
|
||||
|
||||
|
||||
Requirements
|
||||
|
@ -20,7 +56,7 @@ Requirements
|
|||
======================= ================
|
||||
Requirement Version/Comment
|
||||
======================= ================
|
||||
Fuel 7.0
|
||||
Fuel 7.0, 8.0
|
||||
tooz <0.14.0,>=0.13.1
|
||||
======================= ================
|
||||
|
||||
|
@ -29,14 +65,14 @@ tooz <0.14.0,>=0.13.1
|
|||
Limitations
|
||||
-----------
|
||||
|
||||
* The plugin version 1.0-1.0.0-1 provides coordination only for Agent Central service.
|
||||
Alarm evaluator and Notification agent will be supported in the next plugin
|
||||
version.
|
||||
|
||||
* The plugin works correctly only on clouds with odd numbers of controllers.
|
||||
This requirement is mandatory because Redis needs an odd number of nodes to
|
||||
choose the master successfully.
|
||||
|
||||
* In MOS 8.0, there are no transformers configured by default. The plugin doesn't add any of them into
|
||||
ceilometer's pipeline.yaml. Thus, you need to configure it manually if you want to use transformers.
|
||||
If you don't need this feature, it is recommended to disable coordination for the notification agents.
|
||||
|
||||
.. include:: installation.rst
|
||||
.. include:: guide.rst
|
||||
|
||||
|
|
|
@ -2,19 +2,45 @@ User Guide
|
|||
==========
|
||||
|
||||
Once the Ceilometer Redis plugin plugin has been installed (following `Installation Guide`_), you can
|
||||
create *OpenStack* environments with Ceilometer whose Central agent works in workload_partitioned mode.
|
||||
create *OpenStack* environments with Ceilometer whose Central agents, Notification agent and Alarm evaluator
|
||||
work in workload_partitioned mode.
|
||||
|
||||
Ceilometer installation
|
||||
-----------------------
|
||||
|
||||
This plugin was created to provide partitioning for Ceilometer services. So its
|
||||
usage is senseless without Ceilometer installed.
|
||||
So, you will need to `create a new OpenStack environment <https://docs.mirantis.com/openstack/fuel/fuel-7.0/user-guide.html#create-a-new-openstack-environment>`_
|
||||
with `Ceilometer <https://docs.mirantis.com/openstack/fuel/fuel-7.0/user-guide.html#related-projects>`_ using the Fuel UI Wizard.
|
||||
So, you will need to `create a new OpenStack environment <https://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html#create-a-new-openstack-environment>`_
|
||||
with `Ceilometer <https://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html#related-projects>`_ using the Fuel UI Wizard.
|
||||
|
||||
|
||||
Plugin configuration
|
||||
--------------------
|
||||
Plugin configuration in MOS 8.0
|
||||
-------------------------------
|
||||
|
||||
#. First of all, make sure that plugin was successfully installed.
|
||||
Go to the *Plugins* tab. You should see the following:
|
||||
|
||||
.. image:: images/redis-plugin-on8.0.png
|
||||
:width: 100%
|
||||
|
||||
#. The next step is enable the plugin. Go to *Environments* tab and
|
||||
select the *Redis plugin for Ceilometer* checkbox:
|
||||
|
||||
.. image:: images/redis-plugin-8.0.png
|
||||
:width: 100%
|
||||
|
||||
#. When
|
||||
`adding nodes to environment and assigning roles to them <https://docs.mirantis.com/openstack/fuel/fuel-8.0/operations.html#adding-redeploying-and-replacing-nodes>`_, please consider using odd number of controllers as mentioned in `Limitations`_.
|
||||
|
||||
#. Finish
|
||||
`environment configuration <https://docs.mirantis.com/openstack/fuel/fuel-8.0/mos-planning-guide.html#fuel-reference-architecture-overview>`_
|
||||
|
||||
#. Run `network verification check <https://docs.mirantis.com/openstack/fuel/fuel-8.0/operations.html#network-issues>`_.
|
||||
|
||||
#. Press "Deploy button" to once you are done with environment configuration.
|
||||
|
||||
Plugin configuration in MOS 7.0
|
||||
-------------------------------
|
||||
|
||||
#. First of all, make sure that plugin was successfully installed.
|
||||
Go to the *Plugins* tab. You should see the following:
|
||||
|
@ -39,18 +65,21 @@ Plugin configuration
|
|||
#. Press `Deploy button <https://docs.mirantis.com/openstack/fuel/fuel-7.0/user-guide.html#deploy-changes>`_ to once you are done with environment configuration.
|
||||
|
||||
|
||||
|
||||
How to check that plugin works
|
||||
------------------------------
|
||||
#. Check that ceilometer-agent-central service is running on each controller. Run ``pcs resource``
|
||||
and you should see the following in the output::
|
||||
#. Check that ceilometer-agent-central and ceilometer-alarm-evaluator services are running
|
||||
on each controller. Run ``pcs resource`` and you should see the following in the output::
|
||||
|
||||
Clone Set: clone_p_ceilometer-agent-central [p_ceilometer-agent-central]
|
||||
Started: [ node-1.domain.tld node-2.domain.tld node-3.domain.tld ]
|
||||
Started: [ node-21.domain.tld node-27.domain.tld node-33.domain.tld ]
|
||||
|
||||
Clone Set: clone_p_ceilometer-alarm-evaluator [p_ceilometer-alarm-evaluator]
|
||||
Started: [ node-21.domain.tld node-27.domain.tld node-33.domain.tld ]
|
||||
|
||||
``Started`` list should contain all controllers.
|
||||
|
||||
#. Check that samples are not duplicated. For this purpose you may choose
|
||||
#. For the central agent: check that samples are not duplicated. For this purpose you may choose
|
||||
any metric collected by central agent. All these metrics may be found here
|
||||
`Measurements <http://docs.openstack.org/admin-guide-cloud/telemetry-measurements.html>`_ .
|
||||
You may choose any section *except* OpenStack Compute and then select metric with 'Pollster' Origin.
|
||||
|
@ -81,3 +110,16 @@ How to check that plugin works
|
|||
.... 2015-11-05T10:26:38 |
|
||||
.... 2015-11-05T10:26:26 |
|
||||
.... 2015-11-05T10:26:17 |
|
||||
|
||||
#. For the notification agent: Check that IPC queues are created and have consumers:
|
||||
ubuntu@ubuntu:/opt/stack/ceilometer$ sudo rabbitmqctl list_queues name messages consumers | grep ceilo
|
||||
ceilometer-pipe-meter_source:meter_sink-0.sample 0 1
|
||||
ceilometer-pipe-meter_source:meter_sink-1.sample 0 1
|
||||
ceilometer-pipe-meter_source:meter_sink-2.sample 0 1
|
||||
ceilometer-pipe-meter_source:meter_sink-3.sample 0 1
|
||||
ceilometer-pipe-meter_source:meter_sink-4.sample 0 1
|
||||
|
||||
By default, you should see 10 queues in this list. Every queue should have one and only one consumer.
|
||||
|
||||
#. For the alarm evaluator, it is possible to see that everything works as expected only from the logs. Grep the
|
||||
line "extract_my_subset". There should be different "My subset: [" results on each alarm evaluator instance.
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 82 KiB |
Binary file not shown.
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 102 KiB |
Binary file not shown.
After Width: | Height: | Size: 69 KiB |
Binary file not shown.
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 64 KiB |
|
@ -13,7 +13,7 @@ To install the Redis plugin:
|
|||
`Fuel Plugins Catalog <https://www.mirantis.com/products/openstack-drivers-and-plugins/fuel-plugins/>`_.
|
||||
|
||||
#. Move the plugin's rpm to the
|
||||
`Fuel Master node <https://docs.mirantis.com/openstack/fuel/fuel-7.0/quickstart-guide.html#quickstart-guide>`_ with secure copy (scp)::
|
||||
`Fuel Master node <https://docs.mirantis.com/openstack/fuel/fuel-8.0/quickstart-guide.html#quickstart-guide>`_ with secure copy (scp)::
|
||||
|
||||
scp fuel-plugin-ceilometer-redis/ceilometer-redis-1.0-1.0.0-1.noarch.rpm /
|
||||
root@:<the_Fuel_Master_node_IP address>:/tmp
|
||||
|
@ -31,7 +31,7 @@ To install the Redis plugin:
|
|||
[root@fuel-master ~]# fuel plugins list
|
||||
id | name | version | package_version
|
||||
---|------------------|---------------|----------------
|
||||
4 | ceilometer-redis | 1.0.0 | 2.0.0
|
||||
4 | ceilometer-redis | 1.0.2 | 3.0.0
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -3,9 +3,9 @@ name: ceilometer-redis
|
|||
# Human-readable name for your plugin
|
||||
title: Redis plugin for Ceilometer
|
||||
# Plugin version
|
||||
version: 1.0.1
|
||||
version: 1.0.2
|
||||
# Description
|
||||
description: Ceilometer extension that provide workload-partitioning and HA for ceilometer services
|
||||
description: Ceilometer extension that provides a workload-partitioning and HA for ceilometer services
|
||||
# Required fuel version
|
||||
fuel_version: ['7.0','8.0']
|
||||
# Specify license of your plugin
|
||||
|
|
Loading…
Reference in New Issue