[docs] Edits the InfluxDB-Grafana plugin
Edits the StackLight InfluxDB-Grafana plugin documentation. This is the final PDF build: https://drive.google.com/a/mirantis.com/file/d/0B30Lksc8WVCRM3NHWFpQLUpXOFE/view?usp=sharing Change-Id: I604aa3f6f859fcc0e2d77a042a5513371a07dfc8
This commit is contained in:
parent
31fcd5f49d
commit
0b0aba09ec
|
@ -5,7 +5,7 @@ source_suffix = '.rst'
|
||||||
|
|
||||||
master_doc = 'index'
|
master_doc = 'index'
|
||||||
|
|
||||||
project = u'The StackLight InfluxDB-Grafana plugin for Fuel'
|
project = u'The StackLight InfluxDB-Grafana Plugin for Fuel'
|
||||||
copyright = u'2016, Mirantis Inc.'
|
copyright = u'2016, Mirantis Inc.'
|
||||||
|
|
||||||
version = '0.10'
|
version = '0.10'
|
||||||
|
@ -19,7 +19,7 @@ html_theme = 'default'
|
||||||
html_static_path = ['_static']
|
html_static_path = ['_static']
|
||||||
|
|
||||||
latex_documents = [
|
latex_documents = [
|
||||||
('index', 'InfluxDBGrafana.tex', u'The StackLight InfluxDB-Grafana plugin for Fuel Documentation',
|
('index', 'InfluxDBGrafana.tex', u'The StackLight InfluxDB-Grafana Plugin for Fuel Documentation',
|
||||||
u'Mirantis Inc.', 'manual'),
|
u'Mirantis Inc.', 'manual'),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
@ -1,135 +1,147 @@
|
||||||
.. _plugin_configuration:
|
.. _plugin_configuration:
|
||||||
|
|
||||||
|
.. raw:: latex
|
||||||
|
|
||||||
|
\pagebreak
|
||||||
|
|
||||||
Plugin configuration
|
Plugin configuration
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
To configure the **StackLight InfluxDB-Grafana Plugin**, you need to follow these steps:
|
**To configure the StackLight InfluxDB-Grafana plugin:**
|
||||||
|
|
||||||
1. `Create a new environment
|
#. Create a new environment as described in `Create a new OpenStack environment
|
||||||
<http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide/create-environment/start-create-env.html>`_.
|
<http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide/create-environment/start-create-env.html>`_.
|
||||||
|
|
||||||
2. Click on the *Settings* tab of the Fuel web UI and select the *Other* category.
|
#. In the Fuel web UI, click the :guilabel:`Settings` tab and select the
|
||||||
|
:guilabel:`Other` category.
|
||||||
|
|
||||||
3. Scroll down through the settings until you find the **InfluxDB-Grafana Server
|
#. Scroll down through the settings until you find
|
||||||
Plugin** section. You should see a page like this:
|
:guilabel:`The InfluxDB-Grafana Server Plugin` section. You should see a
|
||||||
|
page like this:
|
||||||
|
|
||||||
.. image:: ../images/influx_grafana_settings.png
|
.. image:: ../images/influx_grafana_settings.png
|
||||||
:width: 800
|
:width: 450pt
|
||||||
|
|
||||||
4. Tick the **InfluxDB-Grafana Plugin** box and fill-in the required fields as indicated below.
|
#. Select :guilabel:`The InfluxDB-Grafana Server Plugin` and fill in the
|
||||||
|
required fields as indicated below.
|
||||||
|
|
||||||
a. Specify the number of days of retention for your data.
|
a. Specify the number of days of retention for your data.
|
||||||
b. Specify the InfluxDB admin password (called root password in the InfluxDB documentation).
|
#. Specify the InfluxDB admin password (called root password in the InfluxDB
|
||||||
c. Specify the database name (default is lma).
|
documentation.
|
||||||
d. Specify the InfluxDB username and password.
|
#. Specify the database name (the default is ``lma``).
|
||||||
e. Specify the Grafana username and password.
|
#. Specify the InfluxDB username and password.
|
||||||
|
#. Specify the Grafana username and password.
|
||||||
|
|
||||||
5. Since the introduction of Grafana 2.6.0, the plugin now uses a MySQL database
|
#. The plugin uses a MySQL database to store its configuration data, such as
|
||||||
to store its configuration data such as the dashboard templates.
|
the dashboard templates.
|
||||||
|
|
||||||
a. Select **Local MySQL** if you want to create the Grafana database using the MySQL server
|
a. Select :guilabel:`Local MySQL` if you want to create the Grafana
|
||||||
of the OpenStack control-plane. Otherwise, select **Remote server** and specify
|
database using the MySQL server of the OpenStack control plane.
|
||||||
the fully qualified name or IP address of the MySQL server you want to use.
|
Otherwise, select :guilabel:`Remote server` and specify the fully
|
||||||
b. Then, specify the MySQL database name, username and password that will be used
|
qualified name or the IP address of the MySQL server you want to use.
|
||||||
|
#. Specify the MySQL database name, username, and password that will be used
|
||||||
to access that database.
|
to access that database.
|
||||||
|
|
||||||
6. Tick the *Enable TLS for Grafana* box if you want to encrypt your
|
#. Select :guilabel:`Enable TLS for Grafana` if you want to encrypt your
|
||||||
Grafana credentials (username, password). Then, fill-in the required
|
Grafana credentials (username, password). Then, fill in the required
|
||||||
fields as indicated below.
|
fields as indicated below.
|
||||||
|
|
||||||
.. image:: ../images/tls_settings.png
|
.. image:: ../images/tls_settings.png
|
||||||
:width: 800
|
:width: 450pt
|
||||||
|
|
||||||
a. Specify the DNS name of the Grafana server. This parameter is used
|
a. Specify the DNS name of the Grafana server. This parameter is used to
|
||||||
to create a link in the Fuel dashboard to the Grafana server.
|
create a link in the Fuel dashboard to the Grafana server.
|
||||||
#. Specify the location of a PEM file that contains the certificate
|
#. Specify the location of a PEM file that contains the certificate and the
|
||||||
and the private key of the Grafana server that will be used in TLS handchecks
|
private key of the Grafana server that will be used in TLS handchecks
|
||||||
with the client.
|
with the client.
|
||||||
|
|
||||||
7. Tick the *Use LDAP for Grafana authentication* box if you want to authenticate
|
#. Select :guilabel:`Use LDAP for Grafana authentication` if you want to
|
||||||
via LDAP to Grafana. Then, fill-in the required fields as indicated below.
|
authenticate to Grafana through LDAP. Then, fill in the required fields as
|
||||||
|
indicated below.
|
||||||
|
|
||||||
.. image:: ../images/ldap_auth.png
|
.. image:: ../images/ldap_auth.png
|
||||||
:width: 800
|
:width: 450pt
|
||||||
|
|
||||||
a. Select the *LDAPS* button if you want to enable LDAP authentication
|
a. Select :guilabel:`LDAPS` if you want to enable LDAP authentication over
|
||||||
over SSL.
|
SSL.
|
||||||
#. Specify one or several LDAP server addresses separated by a space. Those
|
#. Specify one or several LDAP server addresses separated by space. These
|
||||||
addresses must be accessible from the node where Grafana is installed.
|
addresses must be accessible from the node where Grafana is installed.
|
||||||
Note that addresses external to the *management network* are not routable
|
Addresses outside the *management network* are not routable by default
|
||||||
by default (see the note below).
|
(see the note below).
|
||||||
#. Specify the LDAP server port number or leave it empty to use the defaults.
|
#. Specify the LDAP server port number or leave it empty to use the
|
||||||
#. Specify the *Bind DN* of a user who has search priviliges on the LDAP server.
|
defaults.
|
||||||
#. Specify the password of the user identified by the *Bind DN* above.
|
#. Specify the :guilabel:`Bind DN` of a user who has search privileges on
|
||||||
#. Specify the *Base DN* in the Directory Information Tree (DIT) from where
|
the LDAP server.
|
||||||
to search for users.
|
#. Specify the password of the user identified by the :guilabel:`Bind DN`
|
||||||
#. Specify a valid user search filter (ex. (uid=%s)).
|
above.
|
||||||
The result of the search should return a unique user entry.
|
#. Specify the :guilabel:`User search base DN` in the Directory Information
|
||||||
#. Specify a valid search filter to search for users.
|
Tree (DIT) from where to search for users.
|
||||||
Example ``(uid=%s)``
|
#. Specify a valid user search filter, for example, ``(uid=%s)``. The
|
||||||
|
result of the search should be a unique user entry.
|
||||||
|
|
||||||
You can further restrict access to Grafana to those users who
|
You can further restrict access to Grafana to those users who are members
|
||||||
are member of a specific LDAP group.
|
of a specific LDAP group.
|
||||||
|
|
||||||
a. Tick the *Enable group-based authorization*.
|
a. Select :guilabel:`Enable group-based authorization`.
|
||||||
#. Specify the LDAP group *Base DN* in the DIT from where to search
|
#. Specify the LDAP group :guilabel:`Base DN` in the DIT from where to
|
||||||
for groups.
|
search for groups.
|
||||||
#. Specify the LDAP group search filter.
|
#. Specify the LDAP group search filter. For example,
|
||||||
Example ``(&(objectClass=posixGroup)(memberUid=%s))``
|
``(&(objectClass=posixGroup)(memberUid=%s))``.
|
||||||
#. Specify the CN of the LDAP group that will be mapped to the *admin role*
|
#. Specify the CN of the LDAP group that will be mapped to the *admin role*.
|
||||||
#. Specify the CN of the LDAP group that will be mapped to the *viewer role*
|
#. Specify the CN of the LDAP group that will be mapped to the *viewer role*.
|
||||||
|
|
||||||
Users who have the *admin role* can modify the Grafana dashboards
|
Users who have the *admin role* can modify the Grafana dashboards or create
|
||||||
or create new ones. Users who have the *viewer role* can only
|
new ones. Users who have the *viewer role* can only visualize the Grafana
|
||||||
visualise the Grafana dashboards.
|
dashboards.
|
||||||
|
|
||||||
7. `Configure your environment
|
#. Configure your environment as described in `Configure your Environment
|
||||||
<http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide/configure-environment.html>`_.
|
<http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide/configure-environment.html>`_.
|
||||||
|
|
||||||
.. note:: By default, StackLight is configured to use the *management network*,
|
.. note:: By default, StackLight is configured to use the *management
|
||||||
of the so-called `Default Node Network Group
|
network* of the so-called `Default Node Network Group
|
||||||
<http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide/configure-environment/network-settings.html>`_.
|
<http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide/configure-environment/network-settings.html>`_.
|
||||||
While this default setup may be appropriate for small deployments or
|
While this default setup may be appropriate for small deployments or
|
||||||
evaluation purposes, it is recommended not to use this network
|
evaluation purposes, it is recommended that you not use this network for
|
||||||
for StackLight in production. It is instead recommended to create a network
|
StackLight in production. Instead, create a network dedicated to
|
||||||
dedicated to StackLight using the `networking templates
|
StackLight using the `networking templates
|
||||||
<https://docs.mirantis.com/openstack/fuel/fuel-8.0/operations.html#using-networking-templates>`_
|
<https://docs.mirantis.com/openstack/fuel/fuel-9.0/operations.html#using-networking-templates>`_
|
||||||
capability of Fuel. Using a dedicated network for StackLight will
|
Fuel capability. Using a dedicated network for StackLight will improve
|
||||||
improve performances and reduce the monitoring footprint on the
|
performance and reduce the monitoring footprint on the control plane. It
|
||||||
control-plane. It will also facilitate access to the Gafana UI
|
will also facilitate access to the Gafana UI after deployment, as the
|
||||||
after deployment as the *management network* is not routable.
|
*management network* is not routable.
|
||||||
|
|
||||||
8. Click the *Nodes* tab and assign the *InfluxDB_Grafana* role
|
#. Click the :guilabel:`Nodes` tab and assign the :guilabel:`InfluxDB_Grafana`
|
||||||
to the node(s) where you want to install the plugin.
|
role to the node or multiple nodes where you want to install the plugin.
|
||||||
|
|
||||||
You can see in the example below that the *InfluxDB_Grafana*
|
The example below shows that the :guilabel:`InfluxDB_Grafana` role is
|
||||||
role is assigned to three nodes along side with the
|
assigned to three nodes alongside with the
|
||||||
*Alerting_Infrastructure* and the *Elasticsearch_Kibana* roles.
|
:guilabel:`Alerting_Infrastructure` and the
|
||||||
Here, the three plugins of the LMA toolchain backend servers are
|
:guilabel:`Elasticsearch_Kibana` roles. The three plugins of the LMA
|
||||||
installed on the same nodes. You can assign the *InfluxDB_Grafana*
|
toolchain back-end servers are installed on the same nodes. You can assign
|
||||||
role to either one node (standalone install) or three nodes for HA.
|
the :guilabel:`InfluxDB_Grafana` role to either one node (standalone
|
||||||
|
install) or three nodes for HA.
|
||||||
|
|
||||||
.. image:: ../images/influx_grafana_role.png
|
.. image:: ../images/influx_grafana_role.png
|
||||||
:width: 800
|
:width: 450pt
|
||||||
|
|
||||||
.. note:: Installing the InfluxDB server on more than three nodes
|
.. note:: Currently, installing the InfluxDB server on more than three
|
||||||
is currently not possible using the Fuel plugin.
|
nodes is not possible using the Fuel plugin. Similarly, installing the
|
||||||
Similarly, installing the InfluxDB server on two nodes
|
InfluxDB server on two nodes is not recommended to avoid split-brain
|
||||||
is not recommended to avoid split-brain situations in the Raft
|
situations in the Raft consensus of the InfluxDB cluster, as well as the
|
||||||
consensus of the InfluxDB cluster as well as the *Pacemaker* cluster
|
*Pacemaker* cluster, which is responsible for the VIP address failover.
|
||||||
which is responsible of the VIP address failover.
|
It is possible to add or remove nodes with the
|
||||||
To be also noted that it is possible to add or remove nodes
|
:guilabel:`InfluxDB_Grafana` role in the cluster after deployment.
|
||||||
with the *InfluxDB_Grafana* role in the cluster after deployment.
|
|
||||||
|
|
||||||
9. `Adjust the disk partitioning if necessary
|
#. If required, adjust the disk partitioning as described in
|
||||||
|
`Configure disk partitioning
|
||||||
<http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide/configure-environment/customize-partitions.html>`_.
|
<http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide/configure-environment/customize-partitions.html>`_.
|
||||||
|
|
||||||
By default, the InfluxDB-Grafana Plugin allocates:
|
By default, the InfluxDB-Grafana Plugin allocates:
|
||||||
|
|
||||||
* 20% of the first available disk for the operating system by honoring
|
* 20% of the first available disk for the operating system by honoring
|
||||||
a range of 15GB minimum to 50GB maximum.
|
a range of 15 GB minimum to 50 GB maximum.
|
||||||
* 10GB for */var/log*.
|
* 10 GB for ``/var/log``.
|
||||||
* At least 30 GB for the InfluxDB database in */var/lib/influxdb*.
|
* At least 30 GB for the InfluxDB database in ``/var/lib/influxdb``.
|
||||||
|
|
||||||
10. `Deploy your environment
|
#. Deploy your environment as described in `Deploy an OpenStack environment
|
||||||
<http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide/deploy-environment.html>`_.
|
<http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide/deploy-environment.html>`_.
|
|
@ -3,8 +3,8 @@
|
||||||
Key terms
|
Key terms
|
||||||
---------
|
---------
|
||||||
|
|
||||||
The table below lists the key terms and acronyms that are used
|
The table below lists the key terms and acronyms that are used in this
|
||||||
in this document.
|
document.
|
||||||
|
|
||||||
+---------------------+-------------------------------------------------------+
|
+---------------------+-------------------------------------------------------+
|
||||||
| **Terms & acronyms**| **Definition** |
|
| **Terms & acronyms**| **Definition** |
|
||||||
|
@ -17,13 +17,13 @@ in this document.
|
||||||
| | open-source database (MIT license). It is written in |
|
| | open-source database (MIT license). It is written in |
|
||||||
| | Go and has no external dependencies. |
|
| | Go and has no external dependencies. |
|
||||||
| | InfluxDB is targeted at use cases for DevOps, metrics,|
|
| | InfluxDB is targeted at use cases for DevOps, metrics,|
|
||||||
| | sensor data, and real-time analytics. |
|
| | sensor data, and real-time analytics. |
|
||||||
+---------------------+-------------------------------------------------------+
|
+---------------------+-------------------------------------------------------+
|
||||||
| Grafana | Grafana is an Apache 2.0 licensed general purpose |
|
| Grafana | Grafana is a general-purpose dashboard and graph |
|
||||||
| | dashboard and graph composer. It is focused on |
|
| | composer. It is focused on providing rich ways to |
|
||||||
| | providing rich ways to visualize metrics time-series, |
|
| | visualize metrics time-series mainly through graphs |
|
||||||
| | mainly though graphs but supports other ways to |
|
| | but supports other ways to visualize data through a |
|
||||||
| | visualize data through a pluggable panel architecture.|
|
| | pluggable panel architecture. |
|
||||||
| | |
|
| | |
|
||||||
| | It has rich support for Graphite, InfluxDB, and |
|
| | It has rich support for Graphite, InfluxDB, and |
|
||||||
| | OpenTSDB and also supports other data sources through |
|
| | OpenTSDB and also supports other data sources through |
|
||||||
|
|
|
@ -22,7 +22,6 @@ Installing and configuring StackLight InfluxDB-Grafana plugin
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 1
|
:maxdepth: 1
|
||||||
|
|
||||||
install_intro
|
|
||||||
install
|
install
|
||||||
configure_plugin
|
configure_plugin
|
||||||
verification
|
verification
|
||||||
|
|
|
@ -1,78 +1,126 @@
|
||||||
.. _user_installation:
|
.. _user_installation:
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
------------
|
||||||
|
|
||||||
|
You can install the StackLight InfluxDB-Grafana plugin using one of the
|
||||||
|
following options:
|
||||||
|
|
||||||
|
• Install using the RPM file
|
||||||
|
• Install from source
|
||||||
|
|
||||||
|
The following is a list of software components installed by the StackLight
|
||||||
|
InfluxDB-Grafana plugin:
|
||||||
|
|
||||||
|
+----------------+-------------------------------------+
|
||||||
|
| Components | Version |
|
||||||
|
+================+=====================================+
|
||||||
|
| InfluxDB | v0.11.1 for Ubuntu (64-bit) |
|
||||||
|
+----------------+-------------------------------------+
|
||||||
|
| Grafana | v3.0.4 for Ubuntu (64-bit) |
|
||||||
|
+----------------+-------------------------------------+
|
||||||
|
|
||||||
Install using the RPM file of the Fuel plugins catalog
|
Install using the RPM file of the Fuel plugins catalog
|
||||||
------------------------------------------------------
|
------------------------------------------------------
|
||||||
|
|
||||||
To install the StackLight InfluxDB-Grafana Fuel Plugin using the RPM file of the Fuel Plugins
|
**To install the StackLight InfluxDB-Grafana Fuel plugin using the RPM file of
|
||||||
Catalog, you need to follow these steps:
|
the Fuel plugins catalog:**
|
||||||
|
|
||||||
1. Select, using the MONITORING category and the Mirantis OpenStack version you are using,
|
#. Go to the `Fuel Plugins Catalog
|
||||||
the RPM file you want to download from the `Fuel Plugins Catalog
|
|
||||||
<https://www.mirantis.com/validated-solution-integrations/fuel-plugins>`_.
|
<https://www.mirantis.com/validated-solution-integrations/fuel-plugins>`_.
|
||||||
|
|
||||||
2. Copy the RPM file to the Fuel Master node::
|
#. From the :guilabel:`Filter` drop-down menu, select the Mirantis OpenStack
|
||||||
|
version you are using and the :guilabel:`Monitoring` category.
|
||||||
|
|
||||||
[root@home ~]# scp influxdb_grafana-0.10-0.10.0-1.noarch.rpm \
|
#. Download the RPM file.
|
||||||
root@<Fuel Master node IP address>:
|
|
||||||
|
|
||||||
3. Install the plugin using the `Fuel CLI
|
#. Copy the RPM file to the Fuel Master node:
|
||||||
<http://docs.mirantis.com/openstack/fuel/fuel-8.0/user-guide.html#using-fuel-cli>`_::
|
|
||||||
|
|
||||||
[root@fuel ~]# fuel plugins --install influxdb_grafana-0.10-0.10.0-1.noarch.rpm
|
.. code-block:: console
|
||||||
|
|
||||||
4. Verify that the plugin is installed correctly::
|
[root@home ~]# scp influxdb_grafana-0.10-0.10.0-1.noarch.rpm \
|
||||||
|
root@<Fuel Master node IP address>:
|
||||||
|
|
||||||
[root@fuel ~]# fuel plugins --list
|
#. Install the plugin using the `Fuel Plugins CLI
|
||||||
id | name | version | package_version
|
<http://docs.openstack.org/developer/fuel-docs/userdocs/fuel-user-guide/cli/cli_plugins.html>`_:
|
||||||
---|----------------------|----------|----------------
|
|
||||||
1 | influxdb_grafana | 0.10.0 | 4.0.0
|
.. code-block:: console
|
||||||
|
|
||||||
|
[root@fuel ~]# fuel plugins --install influxdb_grafana-0.10-0.10.0-1.noarch.rpm
|
||||||
|
|
||||||
|
#. Verify that the plugin is installed correctly:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
[root@fuel ~]# fuel plugins --list
|
||||||
|
id | name | version | package_version
|
||||||
|
---|----------------------|----------|----------------
|
||||||
|
1 | influxdb_grafana | 0.10.0 | 4.0.0
|
||||||
|
|
||||||
Install from source
|
Install from source
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
Alternatively, you may want to build the RPM file of the plugin from source if,
|
Alternatively, you may want to build the RPM file of the plugin from source if,
|
||||||
for example, you want to test the latest features of the master branch or customize the plugin.
|
for example, you want to test the latest features of the master branch or
|
||||||
|
customize the plugin.
|
||||||
|
|
||||||
.. note:: Be aware that running a Fuel plugin that you built yourself is at your
|
.. note:: Running a Fuel plugin that you built yourself is at your own risk
|
||||||
own risk and will not be supported.
|
and will not be supported.
|
||||||
|
|
||||||
To install the StackLight InfluxDB-Grafana Plugin from source,
|
To install the StackLight InfluxDB-Grafana Plugin from source, first prepare
|
||||||
you first need to prepare an environment to build the RPM file.
|
an environment to build the RPM file. The recommended approach is to build the
|
||||||
The recommended approach is to build the RPM file directly onto the Fuel Master
|
RPM file directly onto the Fuel Master node so that you will not have to copy
|
||||||
node so that you won't have to copy that file later on.
|
that file later on.
|
||||||
|
|
||||||
**Preparing an environment for building the plugin on the Fuel Master Node**
|
**To prepare an environment and build the plugin:**
|
||||||
|
|
||||||
1. Install the standard Linux development tools::
|
#. Install the standard Linux development tools:
|
||||||
|
|
||||||
[root@home ~] yum install createrepo rpm rpm-build dpkg-devel
|
.. code-block:: console
|
||||||
|
|
||||||
2. Install the Fuel Plugin Builder. To do that, you should first get pip::
|
[root@home ~] yum install createrepo rpm rpm-build dpkg-devel
|
||||||
|
|
||||||
[root@home ~] easy_install pip
|
#. Install the Fuel Plugin Builder. To do that, first get pip:
|
||||||
|
|
||||||
3. Then install the Fuel Plugin Builder (the `fpb` command line) with `pip`::
|
.. code-block:: console
|
||||||
|
|
||||||
[root@home ~] pip install fuel-plugin-builder
|
[root@home ~] easy_install pip
|
||||||
|
|
||||||
.. note:: You may also need to build the Fuel Plugin Builder if the package version of the
|
#. Then install the Fuel Plugin Builder (the `fpb` command line) with `pip`:
|
||||||
plugin is higher than the package version supported by the Fuel Plugin Builder you get from `pypi`.
|
|
||||||
In this case, please refer to the section "Preparing an environment for plugin development"
|
|
||||||
of the `Fuel Plugins wiki <https://wiki.openstack.org/wiki/Fuel/Plugins>`_
|
|
||||||
if you need further instructions about how to build the Fuel Plugin Builder.
|
|
||||||
|
|
||||||
4. Clone the plugin git repository::
|
.. code-block:: console
|
||||||
|
|
||||||
[root@home ~] git clone https://github.com/openstack/fuel-plugin-influxdb-grafana.git
|
[root@home ~] pip install fuel-plugin-builder
|
||||||
|
|
||||||
5. Check that the plugin is valid::
|
.. note:: You may also need to build the Fuel Plugin Builder if the package
|
||||||
|
version of the plugin is higher than the package version supported by
|
||||||
|
the Fuel Plugin Builder you get from `pypi`. For instructions on how to
|
||||||
|
build the Fuel Plugin Builder, see the *Install Fuel Plugin Builder*
|
||||||
|
section of the `Fuel Plugin SDK Guide <http://docs.openstack.org/developer/fuel-docs/plugindocs/fuel-plugin-sdk-guide/create-plugin/install-plugin-builder.html>`_.
|
||||||
|
|
||||||
[root@home ~] fpb --check ./fuel-plugin-influxdb-grafana
|
#. Clone the plugin repository:
|
||||||
|
|
||||||
6. And finally, build the plugin::
|
.. code-block:: console
|
||||||
|
|
||||||
[root@home ~] fpb --build ./fuel-plugin-influxdb-grafana
|
[root@home ~] git clone https://github.com/openstack/fuel-plugin-influxdb-grafana.git
|
||||||
|
|
||||||
7. Now that you have created the RPM file, you can install the plugin using the `fuel plugins --install` command::
|
#. Verify that the plugin is valid:
|
||||||
|
|
||||||
[root@fuel ~] fuel plugins --install ./fuel-plugin-influxdb-grafana/*.noarch.rpm
|
.. code-block:: console
|
||||||
|
|
||||||
|
[root@home ~] fpb --check ./fuel-plugin-influxdb-grafana
|
||||||
|
|
||||||
|
#. Build the plugin:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
[root@home ~] fpb --build ./fuel-plugin-influxdb-grafana
|
||||||
|
|
||||||
|
**To install the plugin:**
|
||||||
|
|
||||||
|
Now that you have created the RPM file, install the plugin using the
|
||||||
|
:command:`fuel plugins --install` command:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
[root@fuel ~] fuel plugins --install ./fuel-plugin-influxdb-grafana/*.noarch.rpm
|
|
@ -1,19 +0,0 @@
|
||||||
Introduction
|
|
||||||
------------
|
|
||||||
|
|
||||||
You can install the StackLight InfluxDB-Grafana plugin using one of the
|
|
||||||
following options:
|
|
||||||
|
|
||||||
• Install using the RPM file
|
|
||||||
• Install from source
|
|
||||||
|
|
||||||
The following is a list of software components installed by the StackLight
|
|
||||||
InfluxDB-Grafana plugin:
|
|
||||||
|
|
||||||
+----------------+-------------------------------------+
|
|
||||||
| Components | Version |
|
|
||||||
+================+=====================================+
|
|
||||||
| InfluxDB | v0.11.1 for Ubuntu (64-bit) |
|
|
||||||
+----------------+-------------------------------------+
|
|
||||||
| Grafana | v3.0.4 for Ubuntu (64-bit) |
|
|
||||||
+----------------+-------------------------------------+
|
|
|
@ -3,26 +3,25 @@
|
||||||
Introduction
|
Introduction
|
||||||
------------
|
------------
|
||||||
|
|
||||||
The **StackLight InfluxDB-Grafana Fuel Plugin** is used to install and configure
|
The **StackLight InfluxDB-Grafana Plugin for Fuel** is used to install and
|
||||||
InfluxDB and Grafana which collectively provide access to the
|
configure InfluxDB and Grafana, which collectively provide access to the
|
||||||
metrics analytics of Mirantis OpenStack.
|
metrics analytics of Mirantis OpenStack. InfluxDB is a powerful distributed
|
||||||
InfluxDB is a powerful distributed time-series database
|
time-series database to store and search metrics time-series. The metrics
|
||||||
to store and search metrics time-series. The metrics analytics are used to
|
analytics are used to visualize the time-series and the annotations produced
|
||||||
visualize the time-series and the annotations produced by the StackLight Collector.
|
by the StackLight Collector. The annotations contain insightful information
|
||||||
The annotations contain insightful information about the faults and anomalies
|
about the faults and anomalies that resulted in a change of state for the
|
||||||
that resulted in a change of state for the clusters of nodes and services
|
clusters of nodes and services of the OpenStack environment.
|
||||||
of the OpenStack environment.
|
|
||||||
|
|
||||||
The InfluxDB-Grafana Plugin is an indispensable tool to answering
|
The InfluxDB-Grafana plugin is an indispensable tool to answer the questions
|
||||||
the questions "what has changed in my OpenStack environment, when and why?".
|
of what has changed in your OpenStack environment, when, and why. Grafana is
|
||||||
Grafana is installed with a collection of predefined dashboards for each
|
installed with a collection of predefined dashboards for each of the OpenStack
|
||||||
of the OpenStack services that are monitored.
|
services that are monitored. Among those dashboards, the *Main Dashboard*
|
||||||
Among those dashboards, the *Main Dashboard* provides a single pane of glass
|
provides a single pane of glass overview of your OpenStack environment status.
|
||||||
overview of your OpenStack environment status.
|
|
||||||
|
|
||||||
InfluxDB and Grafana are key components
|
InfluxDB and Grafana are the key components of the
|
||||||
of the `LMA Toolchain project <https://launchpad.net/lma-toolchain>`_
|
`LMA Toolchain project <https://launchpad.net/lma-toolchain>`_ as shown in the figure below.
|
||||||
as shown in the figure below.
|
|
||||||
|
|
||||||
.. image:: ../images/toolchain_map.png
|
.. image:: ../images/toolchain_map.png
|
||||||
:width: 430pt
|
:width: 445pt
|
||||||
|
:align: center
|
||||||
|
|
|
@ -1,13 +1,17 @@
|
||||||
.. _licenses:
|
.. _licenses:
|
||||||
|
|
||||||
|
.. raw:: latex
|
||||||
|
|
||||||
|
\pagebreak
|
||||||
|
|
||||||
Licenses
|
Licenses
|
||||||
--------
|
--------
|
||||||
|
|
||||||
Third Party Components
|
Third-party components
|
||||||
++++++++++++++++++++++
|
++++++++++++++++++++++
|
||||||
|
|
||||||
+----------+-----------------------+-----------+
|
+----------+-----------------------+-----------+
|
||||||
| Name | Project Web Site | License |
|
| Name | Project website | License |
|
||||||
+==========+=======================+===========+
|
+==========+=======================+===========+
|
||||||
| InfluxDB | https://influxdb.com/ | MIT |
|
| InfluxDB | https://influxdb.com/ | MIT |
|
||||||
+----------+-----------------------+-----------+
|
+----------+-----------------------+-----------+
|
||||||
|
@ -18,13 +22,13 @@ Puppet modules
|
||||||
++++++++++++++
|
++++++++++++++
|
||||||
|
|
||||||
+---------+--------------------------------------------------+-----------+
|
+---------+--------------------------------------------------+-----------+
|
||||||
| Name | Project Web Site | License |
|
| Name | Project website | License |
|
||||||
+=========+==================================================+===========+
|
+=========+==================================================+===========+
|
||||||
| Apt | https://github.com/puppetlabs/puppetlabs-apt | Apache V2 |
|
| Apt | https://github.com/puppetlabs/puppetlabs-apt | Apache v2 |
|
||||||
+---------+--------------------------------------------------+-----------+
|
+---------+--------------------------------------------------+-----------+
|
||||||
| Concat | https://github.com/puppetlabs/puppetlabs-concat | Apache V2 |
|
| Concat | https://github.com/puppetlabs/puppetlabs-concat | Apache v2 |
|
||||||
+---------+--------------------------------------------------+-----------+
|
+---------+--------------------------------------------------+-----------+
|
||||||
| Stdlib | https://github.com/puppetlabs/puppetlabs-stdlib | Apache V2 |
|
| Stdlib | https://github.com/puppetlabs/puppetlabs-stdlib | Apache v2 |
|
||||||
+---------+--------------------------------------------------+-----------+
|
+---------+--------------------------------------------------+-----------+
|
||||||
| IniFile | https://github.com/puppetlabs/puppetlabs-inifile | Apache v2 |
|
| IniFile | https://github.com/puppetlabs/puppetlabs-inifile | Apache v2 |
|
||||||
+---------+--------------------------------------------------+-----------+
|
+---------+--------------------------------------------------+-----------+
|
||||||
|
|
|
@ -3,7 +3,10 @@
|
||||||
Limitations
|
Limitations
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
Currently, the size of an InfluxDB cluster the Fuel plugin can deploy is limited to three nodes. In addition to this,
|
The StackLight InfluxDB-Grafana plugin 0.10.0 has the following limitation:
|
||||||
each node of the InfluxDB cluster is configured to run under the *meta* node role and the *data* node role. Therefore,
|
|
||||||
it is not possible to separate the nodes participating in the Raft consensus cluster from
|
* The size of an InfluxDB cluster the Fuel plugin can deploy is limited to
|
||||||
the nodes accessing the data replicas.
|
three nodes. Additionally, each node of the InfluxDB cluster is configured to
|
||||||
|
run under the *meta* node role and the *data* node role. Therefore, it is not
|
||||||
|
possible to separate the nodes participating in the Raft consensus cluster
|
||||||
|
from the nodes accessing the data replicas.
|
|
@ -3,42 +3,45 @@
|
||||||
Release notes
|
Release notes
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
0.10.0
|
Version 0.10.0
|
||||||
++++++
|
++++++++++++++
|
||||||
|
|
||||||
* Changes
|
The StackLight InfluxDB-Grafana plugin 0.10.0 contains the following updates:
|
||||||
|
|
||||||
* Add support for LDAP(S) authentication to access Grafana.
|
* Added support for LDAP(S) authentication to access Grafana.
|
||||||
* Add support for TLS encryption to access Grafana.
|
* Added support for TLS encryption to access Grafana. A PEM file obtained by
|
||||||
A PEM file obtained by concatenating the SSL certificate with the private key
|
concatenating the SSL certificate with the private key of the server must be
|
||||||
of the server must be provided in the settings of the plugin to configure the
|
provided in the settings of the plugin to configure the TLS termination.
|
||||||
TLS termination.
|
* Upgraded to InfluxDB v0.11.1.
|
||||||
* Upgrade to InfluxDB v0.11.1.
|
* Upgraded to Grafana v3.0.4.
|
||||||
* Upgrade to Grafana v3.0.4.
|
|
||||||
|
|
||||||
0.9.0
|
Version 0.9.0
|
||||||
+++++
|
+++++++++++++
|
||||||
|
|
||||||
- A new dashboard for hypervisor metrics.
|
The StackLight InfluxDB-Grafana plugin 0.9.0 contains the following updates:
|
||||||
- A new dashboard for InfluxDB cluster.
|
|
||||||
- A new dashboard for Elasticsearch cluster.
|
|
||||||
- Upgrade to Grafana 2.6.0.
|
|
||||||
- Upgrade to InfluxDB 0.10.0.
|
|
||||||
- Add support for InfluxDB clustering (beta state).
|
|
||||||
- Use MySQL as Grafana backend to support HA.
|
|
||||||
|
|
||||||
0.8.0
|
* Added a new dashboard for hypervisor metrics.
|
||||||
+++++
|
* Added a new dashboard for InfluxDB cluster.
|
||||||
|
* Added a new dashboard for Elasticsearch cluster.
|
||||||
|
* Upgraded to Grafana 2.6.0.
|
||||||
|
* Upgraded to InfluxDB 0.10.0.
|
||||||
|
* Added support for InfluxDB clustering (beta state).
|
||||||
|
* Added the capability to use MySQL as Grafana back end to support HA.
|
||||||
|
|
||||||
- Add support for the "influxdb_grafana" Fuel Plugin role instead of
|
Version 0.8.0
|
||||||
the "base-os" role which had several limitations.
|
+++++++++++++
|
||||||
- Add support for retention policy configuration.
|
|
||||||
- Upgrade to InfluxDB 0.9.4 which brings metrics time-series with tagging.
|
|
||||||
- Upgrade to Grafana 2.5.0.
|
|
||||||
- Several dashboard visualisation improvements.
|
|
||||||
- A new self-monitoring dashboard.
|
|
||||||
|
|
||||||
0.7.0
|
The StackLight InfluxDB-Grafana plugin 0.8.0 contains the following updates:
|
||||||
+++++
|
|
||||||
|
|
||||||
- Initial release of the plugin. This is a beta version.
|
* Added support for the ``influxdb_grafana`` Fuel plugin role instead of the
|
||||||
|
``base-os`` role which had several limitations.
|
||||||
|
* Added support for retention policy configuration.
|
||||||
|
* Upgraded to InfluxDB 0.9.4 which brings metrics time-series with tagging.
|
||||||
|
* Upgraded to Grafana 2.5.0.
|
||||||
|
* Improved dashboard visualization.
|
||||||
|
* Added a new self-monitoring dashboard.
|
||||||
|
|
||||||
|
Version 0.7.0
|
||||||
|
+++++++++++++
|
||||||
|
|
||||||
|
The initial release of the plugin. This is a beta version.
|
|
@ -3,25 +3,25 @@
|
||||||
Requirements
|
Requirements
|
||||||
------------
|
------------
|
||||||
|
|
||||||
+-----------------------+-----------------------------------------------------------------------+
|
+-----------------------+------------------------------------------------------------------------+
|
||||||
| **Requirement** | **Version/Comment** |
|
| **Requirement** | **Version/Comment** |
|
||||||
+=======================+=======================================================================+
|
+=======================+========================================================================+
|
||||||
| Disk space | The plugin’s specification requires to provision at least 15GB of disk|
|
| Disk space | The plugin’s specification requires provisioning at least 15 GB of disk|
|
||||||
| | spase for the system, 10GB for the logs and 30GB for the database. The|
|
| | space for the system, 10 GB for the logs, and 30 GB for the database. |
|
||||||
| | installation of the plugin will fail if there is less than 55GB of |
|
| | Therefore, the installation of the plugin will fail if there is less |
|
||||||
| | disk space available on the node. |
|
| | than 55 GB of disk space available on the node. |
|
||||||
+-----------------------+-----------------------------------------------------------------------+
|
+-----------------------+------------------------------------------------------------------------+
|
||||||
| Mirantis OpenStack | 8.0, 9.0 |
|
| Mirantis OpenStack | 8.0, 9.0 |
|
||||||
+-----------------------+-----------------------------------------------------------------------+
|
+-----------------------+------------------------------------------------------------------------+
|
||||||
| Hardware configuration| The hardware configuration (RAM, CPU, disk(s)) required by this plugin|
|
| Hardware configuration| The hardware configuration (RAM, CPU, disk(s)) required by this plugin |
|
||||||
| | depends on the size of your cloud environment and other factors like |
|
| | depends on the size of your cloud environment and other factors like |
|
||||||
| | the retention policy. An average setup would require a quad-core |
|
| | the retention policy. An average setup would require a quad-core |
|
||||||
| | server with 8 GB of RAM and access to a 500-1000 IOPS disk. |
|
| | server with 8 GB of RAM and access to a 500-1000 IOPS disk. |
|
||||||
| | See the `InfluxDB Hardware Sizing Guide |
|
| | See the `InfluxDB Hardware Sizing Guide |
|
||||||
| | <https://docs.influxdata.com/influxdb/v0.10/guides/hardware_sizing/>`_|
|
| | <https://docs.influxdata.com/influxdb/v0.10/guides/hardware_sizing/>`_ |
|
||||||
| | for additional sizing information. |
|
| | for additional sizing information. |
|
||||||
| | |
|
| | |
|
||||||
| | It is also highly recommended to use a dedicated disk for your data |
|
| | It is highly recommended that you use a dedicated disk for your data |
|
||||||
| | storage. Otherwise, the InfluxDB-Grafana Plugin will use the root |
|
| | storage. Otherwise, the InfluxDB-Grafana Plugin will use the root |
|
||||||
| | filesystem by default. |
|
| | file system by default. |
|
||||||
+-----------------------+-----------------------------------------------------------------------+
|
+-----------------------+------------------------------------------------------------------------+
|
|
@ -3,49 +3,67 @@
|
||||||
Troubleshooting
|
Troubleshooting
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
If you get no data in Grafana, follow these troubleshooting tips.
|
If Grafana contains no data, use the following troubleshooting tips:
|
||||||
|
|
||||||
#. First, check that the LMA Collector is running properly by following the
|
#. Verify that the StackLight Collector is running properly by following the
|
||||||
LMA Collector troubleshooting instructions in the
|
troubleshooting instructions in the
|
||||||
`LMA Collector Fuel Plugin User Guide <http://fuel-plugin-lma-collector.readthedocs.org/>`_.
|
`StackLight Collector Fuel plugin documentation <http://fuel-plugin-lma-collector.readthedocs.org/>`_.
|
||||||
|
|
||||||
#. Check that the nodes are able to connect to the InfluxDB cluster via the VIP address
|
#. Verify that the nodes are able to connect to the InfluxDB cluster through
|
||||||
(see above how to get the InfluxDB cluster VIP address) on port *8086*::
|
the VIP address (See the *Verify InfluxDB* section for instructions on how
|
||||||
|
to get the InfluxDB cluster VIP address) on port *8086*:
|
||||||
|
|
||||||
root@node-2:~# curl -I http://<VIP>:8086/ping
|
.. code-block:: console
|
||||||
|
|
||||||
The server should return a 204 HTTP status::
|
root@node-2:~# curl -I http://<VIP>:8086/ping
|
||||||
|
|
||||||
HTTP/1.1 204 No Content
|
The server should return a 204 HTTP status:
|
||||||
Request-Id: cdc3c545-d19d-11e5-b457-000000000000
|
|
||||||
X-Influxdb-Version: 0.10.0
|
|
||||||
Date: Fri, 12 Feb 2016 15:32:19 GMT
|
|
||||||
|
|
||||||
#. Check that InfluxDB cluster VIP address is up and running::
|
.. code-block:: console
|
||||||
|
|
||||||
root@node-1:~# crm resource status vip__influxdb
|
HTTP/1.1 204 No Content
|
||||||
resource vip__influxdb is running on: node-1.test.domain.local
|
Request-Id: cdc3c545-d19d-11e5-b457-000000000000
|
||||||
|
X-Influxdb-Version: 0.10.0
|
||||||
|
Date: Fri, 12 Feb 2016 15:32:19 GMT
|
||||||
|
|
||||||
#. Check that the InfluxDB service is started on all nodes of the cluster::
|
#. Verify that InfluxDB cluster VIP address is up and running:
|
||||||
|
|
||||||
root@node-1:~# service influxdb status
|
.. code-block:: console
|
||||||
influxdb Process is running [ OK ]
|
|
||||||
|
|
||||||
#. If not, (re)start it::
|
root@node-1:~# crm resource status vip__influxdb
|
||||||
|
resource vip__influxdb is running on: node-1.test.domain.local
|
||||||
|
|
||||||
root@node-1:~# service influxdb start
|
#. Verify that the InfluxDB service is running on all nodes of the cluster:
|
||||||
Starting the process influxdb [ OK ]
|
|
||||||
influxdb process was started [ OK ]
|
|
||||||
|
|
||||||
#. Check that Grafana server is running::
|
.. code-block:: console
|
||||||
|
|
||||||
root@node-1:~# service grafana-server status
|
root@node-1:~# service influxdb status
|
||||||
* grafana is running
|
influxdb Process is running [ OK ]
|
||||||
|
|
||||||
#. If not, (re)start it::
|
#. If the InfluxDB service is not running, restart it:
|
||||||
|
|
||||||
root@node-1:~# service grafana-server start
|
.. code-block:: console
|
||||||
* Starting Grafana Server
|
|
||||||
|
|
||||||
#. If none of the above solves the problem, check the logs in ``/var/log/influxdb/influxdb.log``
|
root@node-1:~# service influxdb start
|
||||||
and ``/var/log/grafana/grafana.log`` to find out what might have gone wrong.
|
Starting the process influxdb [ OK ]
|
||||||
|
influxdb process was started [ OK ]
|
||||||
|
|
||||||
|
#. Verify that the Grafana server is running:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
root@node-1:~# service grafana-server status
|
||||||
|
* grafana is running
|
||||||
|
|
||||||
|
#. If the Grafana server is not running, restart it:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
root@node-1:~# service grafana-server start
|
||||||
|
* Starting Grafana Server
|
||||||
|
|
||||||
|
#. If none of the above solves the issue, look for errors in the following log
|
||||||
|
files:
|
||||||
|
|
||||||
|
* InfluxDB -- ``/var/log/influxdb/influxdb.log``
|
||||||
|
* Grafana -- ``/var/log/grafana/grafana.log``
|
|
@ -3,215 +3,193 @@
|
||||||
Exploring your time-series with Grafana
|
Exploring your time-series with Grafana
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
The InfluxDB-Grafana Plugin comes with a collection of predefined
|
The InfluxDB-Grafana Plugin comes with a collection of predefined dashboards
|
||||||
dashboards you can use to visualize the time-series stored in InfluxDB.
|
you can use to visualize the time-series stored in InfluxDB.
|
||||||
|
|
||||||
Please check the LMA Collector documentation for a complete list of all the
|
For a complete list of all the metrics time-series that are collected and
|
||||||
`metrics time-series <http://fuel-plugin-lma-collector.readthedocs.org/en/latest/appendix_b.html>`_
|
stored in InfluxDB, see the `List of metrics` section of the
|
||||||
that are collected and stored in InfluxDB.
|
`StackLight Collector documentation <http://fuel-plugin-lma-collector.readthedocs.org/en/latest/>`_.
|
||||||
|
|
||||||
The Main Dashboard
|
The Main dashboard
|
||||||
++++++++++++++++++
|
++++++++++++++++++
|
||||||
|
|
||||||
We suggest you start with the **Main Dashboard**, as shown
|
We recommend that you start with the **Main dashboard**, as shown below, as an
|
||||||
below, as an entry to the other dashboards.
|
entry to other dashboards. The **Main dashboard** provides a single pane of
|
||||||
The **Main Dashboard** provides a single pane of glass from where you can visualize the
|
glass from where you can visualize the overall health status of your OpenStack
|
||||||
overall health status of your OpenStack services such as Nova and Cinder
|
services, such as Nova, Cinder, HAProxy, MySQL, RabbitMQ, and others.
|
||||||
but also HAProxy, MySQL and RabbitMQ to name a few..
|
|
||||||
|
|
||||||
.. image:: ../images/grafana_main.png
|
.. image:: ../images/grafana_main.png
|
||||||
:width: 800
|
:width: 450pt
|
||||||
|
|
||||||
As you can see, the **Main Dashboard** (as most dashboards) provides
|
The **Main dashboard**, like most dashboards, provides a drop-down menu in the
|
||||||
a drop down menu list in the upper left corner of the window
|
upper left corner from where you can pick a particular metric dimension, such
|
||||||
from where you can pick a particular metric dimension such as
|
as the *controller name* or the *device name* you want to select.
|
||||||
the *controller name* or the *device name* you want to select.
|
|
||||||
|
|
||||||
In the example above, the system metrics of *node-48* are
|
In the example above, the dashboard displays the system metrics of *node-48*.
|
||||||
being displayed in the dashboard.
|
|
||||||
|
|
||||||
Within the **OpenStack Services** row, each of the services
|
Within the **OpenStack Services** section, each of the services represented
|
||||||
represented can be assigned five different status.
|
can be assigned five different statuses.
|
||||||
|
|
||||||
.. note:: The precise determination of a service health status depends
|
.. note:: The precise determination of a service health status depends on the
|
||||||
on the correlation policies implemented for that service by a `Global Status Evaluation (GSE)
|
correlation policies implemented for that service by a Global Status
|
||||||
plugin <http://fuel-plugin-lma-collector.readthedocs.org/en/latest/alarms.html#cluster-policies>`_.
|
Evaluation (GSE) plugin. See the `Configuring alarms` section in the
|
||||||
|
`StackLight Collector documentation <http://fuel-plugin-lma-collector.readthedocs.org/en/latest/>`_.
|
||||||
|
|
||||||
The meaning associated with a service health status is the following:
|
The service health statuses can be as follows:
|
||||||
|
|
||||||
- **Down**: One or several primary functions of a service
|
* **Down**: One or several primary functions of a service cluster has failed.
|
||||||
cluster has failed. For example,
|
For example, all API endpoints of a service cluster like Nova or Cinder
|
||||||
all API endpoints of a service cluster like Nova
|
failed.
|
||||||
or Cinder are failed.
|
* **Critical**: One or several primary functions of a service cluster are
|
||||||
- **Critical**: One or several primary functions of a
|
severely degraded. The quality of service delivered to the end user is
|
||||||
service cluster are severely degraded. The quality
|
severely impacted.
|
||||||
of service delivered to the end-user should be severely
|
* **Warning**: One or several primary functions of a service cluster are
|
||||||
impacted.
|
slightly degraded. The quality of service delivered to the end user is
|
||||||
- **Warning**: One or several primary functions of a
|
slightly impacted.
|
||||||
service cluster are slightly degraded. The quality
|
* **Unknown**: There is not enough data to infer the actual health status of a
|
||||||
of service delivered to the end-user should be slightly
|
service cluster.
|
||||||
impacted.
|
* **Okay**: None of the above was found to be true.
|
||||||
- **Unknown**: There is not enough data to infer the actual
|
|
||||||
health status of a service cluster.
|
|
||||||
- **Okay**: None of the above was found to be true.
|
|
||||||
|
|
||||||
The **Virtual Compute Resources** row provides an overview of
|
The **Virtual compute resources** section provides an overview of the amount
|
||||||
the amount of virtual resources being used by the compute nodes
|
of virtual resources being used by the compute nodes including the number of
|
||||||
including the number of virtual CPUs, the amount of memory
|
virtual CPUs, the amount of memory and disk space being used, as well as the
|
||||||
and disk space being used as well as the amount of virtual
|
amount of virtual resources remaining available to create new instances.
|
||||||
resources remaining available to create new instances.
|
|
||||||
|
|
||||||
The "System" row provides an overview of the amount of physical
|
The **System** section provides an overview of the amount of physical
|
||||||
resources being used on the control plane (the controller cluster).
|
resources being used on the control plane (the controller cluster). You can
|
||||||
You can select a specific controller using the
|
select a specific controller using the controller's drop-down list in the left
|
||||||
controller's drop down list in the left corner of the toolbar.
|
corner of the toolbar.
|
||||||
|
|
||||||
The "Ceph" row provides an overview of the resources usage
|
The **Ceph** section provides an overview of the resources usage and current
|
||||||
and current health status of the Ceph cluster when it is deployed
|
health status of the Ceph cluster when it is deployed in the OpenStack
|
||||||
in the OpenStack environment.
|
environment.
|
||||||
|
|
||||||
The **Main Dashboard** is also an entry point to access more detailed
|
The **Main dashboard** is also an entry point to access more detailed
|
||||||
dashboards for each of the OpenStack services that are monitored.
|
dashboards for each of the OpenStack services that are monitored. For example,
|
||||||
For example, if you click on the *Nova box*, the **Nova
|
if you click the **Nova** box, the **Nova dashboard** is displayed.
|
||||||
Dashboard** is displayed.
|
|
||||||
|
|
||||||
.. image:: ../images/grafana_nova.png
|
.. image:: ../images/grafana_nova.png
|
||||||
:width: 800
|
:width: 450pt
|
||||||
|
|
||||||
The Nova dashboard
|
The Nova dashboard
|
||||||
++++++++++++++++++
|
++++++++++++++++++
|
||||||
|
|
||||||
The **Nova Dashboard** provides a detailed view of the
|
The **Nova** dashboard provides a detailed view of the Nova service's related
|
||||||
Nova service's related metrics.
|
metrics and consists of the following sections:
|
||||||
|
|
||||||
The **Service Status** row provides information about the Nova service
|
**Service status** -- information about the Nova service cluster
|
||||||
cluster health status as a whole including the status of the API frontend
|
overall health status, including the status of the API front end (the HAProxy
|
||||||
(the HAProxy public VIP), a counter of HTTP 5xx errors,
|
public VIP), a counter of HTTP 5xx errors, the HTTP requests response time and
|
||||||
the HTTP requests response time and status code.
|
status code.
|
||||||
|
|
||||||
The **Nova API** row provides information about the current health status of
|
**Nova API** -- information about the current health status of the API
|
||||||
the API backends (nova-api, ec2-api, ...).
|
back ends, for example, nova-api, ec2-api, and others.
|
||||||
|
|
||||||
The **Nova Services** row provides information about the current and
|
**Nova services** -- information about the current and historical status
|
||||||
historical status of the Nova *workers*.
|
of the Nova *workers*.
|
||||||
|
|
||||||
The **Instances** row provides information about the number of active
|
**Instances** -- information about the number of active instances in
|
||||||
instances in error and instances creation time statistics.
|
error and instances creation time statistics.
|
||||||
|
|
||||||
The **Resources** row provides various virtual resources usage indicators.
|
**Resources** -- various virtual resources usage indicators.
|
||||||
|
|
||||||
Self-monitoring dashboards
|
Self-monitoring dashboards
|
||||||
++++++++++++++++++++++++++
|
++++++++++++++++++++++++++
|
||||||
|
|
||||||
The first **Self-Monitoring Dashboard** was introduced in LMA 0.8.
|
The **Self-Monitoring** dashboard brings operational insights about the
|
||||||
The intent of the self-monitoring dashboards is to bring operational
|
overall monitoring system (the toolchain) performance. It provides information
|
||||||
insights about how the monitoring system itself (the toolchain) performs overall.
|
about the *hekad* and *collectd* processes. In particular, the
|
||||||
|
**Self-Monitoring** dashboard provides information about the amount of system
|
||||||
|
resources consumed by these processes, the time allocated to the Lua plugins
|
||||||
|
running within *hekad*, the number of messages being processed, and the time
|
||||||
|
it takes to process those messages.
|
||||||
|
|
||||||
The **Self-Monitoring Dashboard**, provides information about the *hekad*
|
You can select a particular node view using the drop-down menu.
|
||||||
and *collectd* processes.
|
|
||||||
In particular, it gives information about the amount of system resources
|
|
||||||
consumed by these processes, the time allocated to the Lua plugins
|
|
||||||
running within *hekad*, the amount of messages being processed and
|
|
||||||
the time it takes to process those messages.
|
|
||||||
|
|
||||||
Again, it is possible to select a particular node view using the drop down
|
Since StackLight 0.9, there are two new dashboards:
|
||||||
menu list.
|
|
||||||
|
|
||||||
With LMA 0.9, we have introduced two new dashboards.
|
* The **Elasticsearch Cluster** dashboard provides information about the
|
||||||
|
overall health status of the Elasticsearch cluster including the state of
|
||||||
#. The **Elasticsearch Cluster Dashboard** provides information about
|
the shards, the number of pending tasks, and various resources usage metrics.
|
||||||
the overall health status of the Elasticsearch cluster including
|
|
||||||
the state of the shards, the number of pending tasks and various resources
|
|
||||||
usage metrics.
|
|
||||||
|
|
||||||
#. The **InfluxDB Cluster Dashboard** provides statistics about the InfluxDB
|
|
||||||
processes running in the InfluxDB cluster including various resources usage metrics.
|
|
||||||
|
|
||||||
|
* The **InfluxDB Cluster** dashboard provides statistics about the InfluxDB
|
||||||
|
processes running in the InfluxDB cluster including various resources usage
|
||||||
|
metrics.
|
||||||
|
|
||||||
The hypervisor dashboard
|
The hypervisor dashboard
|
||||||
++++++++++++++++++++++++
|
++++++++++++++++++++++++
|
||||||
|
|
||||||
LMA 0.9 introduces a new **Hypervisor Dashboard** which brings operational
|
The **Hypervisor** dashboard brings operational insights about the virtual
|
||||||
insights about the virtual instances managed through *libvirt*.
|
instances managed through *libvirt*. As shown in the figure below, the
|
||||||
As shown in the figure below, the **Hypervisor Dashboard** assembles a
|
**Hypervisor** dashboard assembles a view of various *libvirt* metrics. Use
|
||||||
view of various *libvirt* metrics. A dropdown menu list allows to pick
|
the drop-down menu to pick a particular instance UUID running on a particular
|
||||||
a particular instance UUID running on a particular node. In the
|
node. The example below shows the metrics for the instance ID
|
||||||
example below, the metrics for the instance id *ba844a75-b9db-4c2f-9cb9-0b083fe03fb7*
|
``ba844a75-b9db-4c2f-9cb9-0b083fe03fb7`` running on *node-4*.
|
||||||
running on *node-4* are displayed.
|
|
||||||
|
|
||||||
.. image:: ../images/grafana_hypervisor.png
|
.. image:: ../images/grafana_hypervisor.png
|
||||||
:width: 800
|
:width: 450pt
|
||||||
|
|
||||||
Check the LMA Collector documentation for additional information about the
|
For additional information on the *libvirt* metrics that are displayed in the
|
||||||
`*libvirt* metrics <http://fuel-plugin-lma-collector.readthedocs.org/en/latest/appendix_b.html#libvirt>`_
|
**Hypervisor** dashboard, see the `List of metrics` section of the
|
||||||
that are displayed in the **Hypervisor Dashboard**.
|
`StackLight Collector documentation <http://fuel-plugin-lma-collector.readthedocs.org/en/latest/>`_.
|
||||||
|
|
||||||
Other dashboards
|
Other dashboards
|
||||||
++++++++++++++++
|
++++++++++++++++
|
||||||
|
|
||||||
In total there are 19 different dashboards you can use to
|
There are 19 different dashboards in total that you can use to explore
|
||||||
explore different time-series facets of your OpenStack environment.
|
different time-series facets of your OpenStack environment.
|
||||||
|
|
||||||
Viewing faults and anomalies
|
Viewing faults and anomalies
|
||||||
++++++++++++++++++++++++++++
|
++++++++++++++++++++++++++++
|
||||||
|
|
||||||
The LMA Toolchain is capable of detecting a number of service-affecting
|
The LMA Toolchain is capable of detecting a number of service-affecting
|
||||||
conditions such as the faults and anomalies that occured in your OpenStack
|
conditions, such as the faults and anomalies that occurred in your OpenStack
|
||||||
environment.
|
environment. These conditions are reported in annotations that are displayed in
|
||||||
Those conditions are reported in annotations that are displayed in
|
Grafana. The Grafana annotations contain a textual representation of the alarm
|
||||||
Grafana. The Grafana annotations contain a textual
|
(or set of alarms) that were triggered by the Collectors for a service.
|
||||||
representation of the alarm (or set of alarms) that were triggered
|
In other words, the annotations contain valuable insights that you can use to
|
||||||
by the Collectors for a service.
|
diagnose and troubleshoot issues. Furthermore, with the Grafana annotations,
|
||||||
In other words, the annotations contain valuable insights
|
the system makes a distinction between what is estimated as a direct root
|
||||||
that you could use to diagnose and
|
cause versus what is estimated as an indirect root cause. This is internally
|
||||||
troubleshoot problems. Furthermore, with the Grafana annotations,
|
represented in a dependency graph. There are first degree dependencies used to
|
||||||
the system makes a distinction between what is estimated as a
|
describe situations, whereby the health status of an entity strictly depends on
|
||||||
direct root cause versus what is estimated as an indirect
|
the health status of another entity. For example, Nova as a service has
|
||||||
root cause. This is internally represented in a dependency graph.
|
first-degree dependencies with the nova-api endpoints and the nova-scheduler
|
||||||
There are first degree dependencies used to describe situations
|
workers. But there are also second-degree dependencies, whereby the health
|
||||||
whereby the health status of an entity
|
status of an entity does not strictly depend on the health status of another
|
||||||
strictly depends on the health status of another entity. For
|
entity, although it might, depending on other operations being performed. For
|
||||||
example Nova as a service has first degree dependencies
|
example, by default, we declared that Nova has a second-degree dependency with
|
||||||
with the nova-api endpoints and the nova-scheduler workers. But
|
Neutron. As a result, the health status of Nova will not be directly impacted
|
||||||
there are also second degree dependencies whereby the health
|
by the health status of Neutron, but the annotation will provide a root cause
|
||||||
status of an entity doesn't strictly depends on the health status
|
analysis hint. Consider a situation where Nova has changed from *okay* to
|
||||||
of another entity, although it might, depending on other operations
|
the *critical* status (because of 5xx HTTP errors) and that Neutron has been
|
||||||
being performed. For example, by default we declared that Nova
|
in the *down* status for a while. In this case, the Nova dashboard will
|
||||||
has a second degree dependency with Neutron. As a result, the
|
display an annotation showing that Nova has changed to a *warning* status
|
||||||
health status of Nova will not be directly impacted by the health
|
because the system has detected 5xx errors and that it may be due to the fact
|
||||||
status of Neutron but the annotation will provide
|
that Neutron is *down*. Below is an example of an annotation, which shows that
|
||||||
a root cause analysis hint. Let's assume a situation
|
the health status of Nova is *down* because there is no *nova-api* service
|
||||||
where Nova has changed from *okay* to *critical* status (because of
|
back end (viewed from HAProxy) that is *up*.
|
||||||
5xx HTTP errors) and that Neutron has been in *down* status for a while.
|
|
||||||
In this case, the Nova dashboard will display an annotation showing that
|
|
||||||
Nova has changed to a *warning* status because the system has detected
|
|
||||||
5xx errors and that it may be due to the fact that Neutron is *down*.
|
|
||||||
An example of what an annotation looks like is shown below.
|
|
||||||
|
|
||||||
.. image:: ../images/grafana_nova_annot.png
|
.. image:: ../images/grafana_nova_annot.png
|
||||||
:width: 800
|
:width: 450pt
|
||||||
|
|
||||||
This annotation shows that the health status of Nova is *down*
|
|
||||||
because there is no *nova-api* service backend (viewed from HAProxy)
|
|
||||||
that is *up*.
|
|
||||||
|
|
||||||
Hiding nodes from dashboards
|
Hiding nodes from dashboards
|
||||||
++++++++++++++++++++++++++++
|
++++++++++++++++++++++++++++
|
||||||
|
|
||||||
When you remove a node from the environment, it is still displayed in
|
When you remove a node from the environment, it is still displayed in the
|
||||||
the 'server' and 'controller' drop-down lists. To hide it from the list
|
:guilabel:`server` and :guilabel:`controller` drop-down lists. To hide it from
|
||||||
you need to edit the associated InfluxDB query in the *templating* section.
|
the list, edit the associated InfluxDB query in the *Templating* section. For
|
||||||
For example, if you want to remove *node-1*, you need to add the following
|
example, if you want to remove *node-1*, add the following condition to the
|
||||||
condition to the *where* clause::
|
*where* clause::
|
||||||
|
|
||||||
and hostname != 'node-1'
|
and hostname != 'node-1'
|
||||||
|
|
||||||
|
|
||||||
.. image:: ../images/remove_controllers_from_templating.png
|
.. image:: ../images/remove_controllers_from_templating.png
|
||||||
|
:width: 450pt
|
||||||
|
|
||||||
If you want to hide more than one node you can add more conditions like this::
|
To hide more than one node, add more conditions. For example::
|
||||||
|
|
||||||
and hostname != 'node-1' and hostname != 'node-2'
|
and hostname != 'node-1' and hostname != 'node-2'
|
||||||
|
|
||||||
This should be done for all dashboards that display the deleted node and you
|
Perform these actions for all dashboards that display the deleted node and
|
||||||
need to save them afterwards.
|
save them afterward.
|
|
@ -3,90 +3,100 @@
|
||||||
Plugin verification
|
Plugin verification
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
Be aware that depending on the number of nodes and deployment setup,
|
Depending on the number of nodes and deployment setup, deploying a Mirantis
|
||||||
deploying a Mirantis OpenStack environment can typically take anything
|
OpenStack environment may take 30 minutes to several hours. Once the
|
||||||
from 30 minutes to several hours. But once your deployment is complete,
|
deployment is complete, you should see a deployment success notification
|
||||||
you should see a notification message indicating that you deployment
|
with a link to the Grafana web UI as shown below.
|
||||||
successfully completed as in the figure below.
|
|
||||||
|
|
||||||
.. image:: ../images/deployment_notification.png
|
.. image:: ../images/deployment_notification.png
|
||||||
:width: 800
|
:width: 460pt
|
||||||
|
|
||||||
Verifying InfluxDB
|
Verify InfluxDB
|
||||||
~~~~~~~~~~~~~~~~~~
|
+++++++++++++++
|
||||||
|
|
||||||
You should verify that the InfluxDB cluster is running properly.
|
To verify that the InfluxDB cluster is running properly, first retrieve the
|
||||||
First, you need first to retreive the InfluxDB cluster VIP address.
|
InfluxDB cluster VIP address:
|
||||||
Here is how to proceed.
|
|
||||||
|
|
||||||
#. On the Fuel Master node, find the IP address of a node where the InfluxDB
|
#. On the Fuel Master node, find the IP address of a node where the InfluxDB
|
||||||
server is installed using the following command::
|
server is installed using the :command:`fuel nodes` command. For example:
|
||||||
|
|
||||||
[root@fuel ~]# fuel nodes
|
.. code-block::
|
||||||
id | status | name | cluster | ip | mac | roles |
|
|
||||||
---|----------|------------------|---------|------------|-----|------------------|
|
[root@fuel ~]# fuel nodes
|
||||||
1 | ready | Untitled (fa:87) | 1 | 10.109.0.8 | ... | influxdb_grafana |
|
id | status | name | cluster | ip | mac | roles |
|
||||||
2 | ready | Untitled (12:aa) | 1 | 10.109.0.3 | ... | influxdb_grafana |
|
---|----------|------------------|---------|------------|-----|------------------|
|
||||||
3 | ready | Untitled (4e:6e) | 1 | 10.109.0.7 | ... | influxdb_grafana |
|
1 | ready | Untitled (fa:87) | 1 | 10.109.0.8 | ... | influxdb_grafana |
|
||||||
|
2 | ready | Untitled (12:aa) | 1 | 10.109.0.3 | ... | influxdb_grafana |
|
||||||
|
3 | ready | Untitled (4e:6e) | 1 | 10.109.0.7 | ... | influxdb_grafana |
|
||||||
|
|
||||||
|
|
||||||
#. Then `ssh` to anyone of these nodes (ex. *node-1*) and type the command::
|
#. Log in to any of these nodes through SSH, for example, to ``node-1``
|
||||||
|
#. Run the following command:
|
||||||
|
|
||||||
root@node-1:~# hiera lma::influxdb::vip
|
.. code-block:: console
|
||||||
10.109.1.4
|
|
||||||
|
|
||||||
This tells you that the VIP address of your InfluxDB cluster is *10.109.1.4*.
|
root@node-1:~# hiera lma::influxdb::vip
|
||||||
|
10.109.1.4
|
||||||
|
|
||||||
#. With that VIP address type the command::
|
Where ``10.109.1.4`` is the virtual IP address (VIP) of your InfluxDB
|
||||||
|
cluster.
|
||||||
|
|
||||||
root@node-1:~# /usr/bin/influx -database lma -password lmapass \
|
#. Using that VIP address, run the following command:
|
||||||
--username root -host 10.109.1.4 -port 8086
|
|
||||||
Visit https://enterprise.influxdata.com to register for updates,
|
|
||||||
InfluxDB server management, and monitoring.
|
|
||||||
Connected to http://10.109.1.4:8086 version 0.10.0
|
|
||||||
InfluxDB shell 0.10.0
|
|
||||||
>
|
|
||||||
|
|
||||||
As you can see, executing */usr/bin/influx* will start an interactive CLI and automatically connect to
|
.. code-block:: console
|
||||||
the InfluxDB server. Then if you type::
|
|
||||||
|
|
||||||
> show series
|
root@node-1:~# /usr/bin/influx -database lma -password lmapass \
|
||||||
|
--username root -host 10.109.1.4 -port 8086
|
||||||
|
Visit https://enterprise.influxdata.com to register for updates,
|
||||||
|
InfluxDB server management, and monitoring.
|
||||||
|
Connected to http://10.109.1.4:8086 version 0.10.0
|
||||||
|
InfluxDB shell 0.10.0
|
||||||
|
>
|
||||||
|
|
||||||
You should see a dump of all the time-series collected so far.
|
The example above shows that executing ``/usr/bin/influx`` starts an
|
||||||
Then, if you type::
|
interactive CLI and automatically connects to the InfluxDB server. Then
|
||||||
|
run the following command:
|
||||||
|
|
||||||
> show servers
|
.. code-block:: console
|
||||||
name: data_nodes
|
|
||||||
----------------
|
|
||||||
id http_addr tcp_addr
|
|
||||||
1 node-1:8086 node-1:8088
|
|
||||||
3 node-2:8086 node-2:8088
|
|
||||||
5 node-3:8086 node-3:8088
|
|
||||||
|
|
||||||
name: meta_nodes
|
> show series
|
||||||
----------------
|
|
||||||
id http_addr tcp_addr
|
|
||||||
1 node-1:8091 node-1:8088
|
|
||||||
2 node-2:8091 node-2:8088
|
|
||||||
4 node-3:8091 node-3:8088
|
|
||||||
|
|
||||||
You should see a list of the nodes participating in the `InfluxDB cluster
|
You should see a dump of all the time-series collected so far. Then run:
|
||||||
<https://docs.influxdata.com/influxdb/v0.10/guides/clustering/>`_ with their roles (data or meta).
|
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
Verifying Grafana
|
> show servers
|
||||||
~~~~~~~~~~~~~~~~~
|
name: data_nodes
|
||||||
|
----------------
|
||||||
|
id http_addr tcp_addr
|
||||||
|
1 node-1:8086 node-1:8088
|
||||||
|
3 node-2:8086 node-2:8088
|
||||||
|
5 node-3:8086 node-3:8088
|
||||||
|
|
||||||
From the Fuel dDashboard, click on the **Grafana** link (or enter the IP address
|
name: meta_nodes
|
||||||
and port number if your DNS is not setup).
|
----------------
|
||||||
The first time you access Grafana, you are requested to
|
id http_addr tcp_addr
|
||||||
authenticate using your credentials.
|
1 node-1:8091 node-1:8088
|
||||||
|
2 node-2:8091 node-2:8088
|
||||||
|
4 node-3:8091 node-3:8088
|
||||||
|
|
||||||
|
You should see a list of nodes participating in the `InfluxDB cluster
|
||||||
|
<https://docs.influxdata.com/influxdb/v0.10/guides/clustering/>`_ with
|
||||||
|
their roles (data or meta).
|
||||||
|
|
||||||
|
Verify Grafana
|
||||||
|
++++++++++++++
|
||||||
|
|
||||||
|
#. Log in to the Fuel web UI.
|
||||||
|
#. In the :guilabel:`Dashboard` tab, click :guilabel:`Grafana`. If your DNS is
|
||||||
|
not set up, enter the IP address and the port number.
|
||||||
|
#. Authenticate using your credentials.
|
||||||
|
|
||||||
.. image:: ../images/grafana_login.png
|
.. image:: ../images/grafana_login.png
|
||||||
:width: 800
|
:width: 400pt
|
||||||
|
|
||||||
Then you should be redirected to the *Grafana Home Page*
|
You should be redirected to the :guilabel:`Grafana Home Page` where you can
|
||||||
from where you can select a dashboard as shown below.
|
select a dashboard as shown below.
|
||||||
|
|
||||||
.. image:: ../images/grafana_home.png
|
.. image:: ../images/grafana_home.png
|
||||||
:width: 800
|
:width: 400pt
|
Loading…
Reference in New Issue