Beautify, correct URLs in documentation files

- Beautify, re-indent, format code in a lot of doc files
- Use relative URLs instead of absolute github URLs
- Some absolute github urls are not corrected yet:
    + URL for enabling vitrage in devstack
    + URL for enabling vitrage in horizon
- Update year number in doc/source/config.py from 2013 to 2016

My thought: We should have a blueprint
    to create more concise and easy to access like other project
    (nova: http://docs.openstack.org/developer/nova/).
    Currently, that site for vitrage has not existed yet.

Notes: Change github URLs to relative URLs
    (or absolute URLs in docs.openstack.org/developers)
    will not work correctly
    if we do not have official documentation site.
    Hence, other people cannot follow the link to html page
    if they read vitrage documentation in github mirror.

Change-Id: Ifff8355c7e5291f68a7592d1617644053d790d5e
This commit is contained in:
Tovin Seven 2016-10-21 13:35:41 +07:00
parent e070c4a135
commit e2b21d516d
14 changed files with 196 additions and 191 deletions

View File

@ -8,12 +8,12 @@ Vitrage is the OpenStack RCA (Root Cause Analysis) Service for organizing, analy
Enabling Vitrage in DevStack Enabling Vitrage in DevStack
---------------------------- ----------------------------
see `README file <https://github.com/openstack/vitrage/blob/master/devstack/README.rst/>`_ More details in: `README file <devstack/README.rst>`_
Project Resources Project Resources
----------------- -----------------
* wiki page: https://wiki.openstack.org/wiki/Vitrage * Wiki page: https://wiki.openstack.org/wiki/Vitrage
* Launchpad: https://launchpad.net/vitrage * Launchpad: https://launchpad.net/vitrage
* Source: http://git.openstack.org/cgit/openstack/vitrage * Source: http://git.openstack.org/cgit/openstack/vitrage

View File

@ -9,19 +9,19 @@ In order to add a new datasource to Vitrage do the following steps:
1. Have your datasource enclosed in a package with the datasources' name and 1. Have your datasource enclosed in a package with the datasources' name and
put it under 'vitrage.datasources', For example: put it under 'vitrage.datasources', For example:
vitrage.datasource.cinder.volume. ``vitrage.datasource.cinder.volume``.
2. Under your datasource package, have both your datasources' driver class 2. Under your datasource package, have both your datasources' driver class
and your datasources' transformer class. See below for details on those and your datasources' transformer class. See below for details on those
classes. classes.
3. Under your datasources' package __init__.py you must import cfg 3. Under your datasources' package ``__init__.py`` you must import ``cfg``
from oslo_config and declare a list named OPTS. Under OPTS, you can define from ``oslo_config`` and declare a list named ``OPTS``. Under ``OPTS``, you can define
your needed options using the oslo_config.cfg module. your needed options using the ``oslo_config.cfg`` module.
There are three options you must have: There are three options you must have:
a. Driver and transformer with the path to your driver and transformer a. Driver and transformer with the path to your driver and transformer
classes respectively. classes respectively.
b. update_method property that describes the type of update mechanism for b. ``update_method`` property that describes the type of update mechanism for
this datasource. The options are: push, pull or none. this datasource. The options are (string): push, pull or none.
c. In addition to those three, you may add any other configuration options c. In addition to those three, you may add any other configuration options
you may need for your datasource. you may need for your datasource.
@ -32,19 +32,18 @@ In order to add a new datasource to Vitrage do the following steps:
devstack is installed, you need to add it to the 'types' property in the devstack is installed, you need to add it to the 'types' property in the
datasources section in the configuration. To do so, do the following: datasources section in the configuration. To do so, do the following:
a. add the datasource name to the types property in the "devstack.settings" a. add the datasource name to the types property in the ``devstack.settings``
file. file.
b. if the datasource is not one of the main and basic projects of devstack, b. if the datasource is not one of the main and basic projects of devstack,
add the following data in the "devstack.plugin.sh" file": add the following data in the ``devstack.plugin.sh`` file":
# remove <datasource_name> vitrage datasource if <datasource_name> .. code:: bash
datasource not installed
if ! is_service_enabled <datasource_name>; then # remove <datasource_name> vitrage datasource if <datasource_name> datasource not installed
disable_vitrage_datasource <datasource_name> if ! is_service_enabled <datasource_name>; then
disable_vitrage_datasource <datasource_name>
fi fi
6. You are done! 6. You are done!
@ -56,14 +55,14 @@ Entities in this context refer both to resources (physical, virtual,
applicative) and alarms (Aodh, Nagios, Zabbix, Monasca, etc.) applicative) and alarms (Aodh, Nagios, Zabbix, Monasca, etc.)
The datasource has two modes of action: The datasource has two modes of action:
1. get_all (snapshot): Query all entities and send events to the vitrage 1. ``get_all`` (snapshot): Query all entities and send events to the vitrage
events queue. events queue.
When done for the first time, send an "end" event to inform it has finished When done for the first time, send an "end" event to inform it has finished
the get_all for the datasource (because it is done asynchronously). the get_all for the datasource (because it is done asynchronously).
2. notify: Send an event to the vitrage events queue upon any change. 2. ``notify``: Send an event to the vitrage events queue upon any change.
This can be done in two ways: This can be done in two ways:
a. Built in polling mechanism called get_changes. a. Built in polling mechanism called ``get_changes``.
b. Built in pushing mechanism using the oslo bus. b. Built in pushing mechanism using the oslo bus.
A driver should inherit from 'vitrage.datasources.driver_base.DriverBase' class A driver should inherit from 'vitrage.datasources.driver_base.DriverBase' class
@ -88,7 +87,7 @@ _________________
The Transformer class understands the specific entity details and outputs a The Transformer class understands the specific entity details and outputs a
tuple with the following details: tuple with the following details:
1. The vertex with its new details to be added / updated / deleted. 1. The vertex with its new details to be added/updated/deleted.
2. List of tuples where each tuple consists of: 2. List of tuples where each tuple consists of:
a. Neighbor vertex with it's partial data so vitrage will know to where a. Neighbor vertex with it's partial data so vitrage will know to where
@ -97,7 +96,7 @@ tuple with the following details:
Note that for every driver there should be a matching Transformer. Note that for every driver there should be a matching Transformer.
A transformer should inherit from A transformer should inherit from
'vitrage.datasoures.transformer_base.TransformerBase' class and ``vitrage.datasoures.transformer_base.TransformerBase`` class and
must implement the following methods: must implement the following methods:
+----------------------------------+------------------------------------+----------------------------------------+ +----------------------------------+------------------------------------+----------------------------------------+
@ -138,7 +137,7 @@ Holds the following fields:
**Example** **Example**
Datasource __init__.py OPTS: Datasource ``__init__.py OPTS``:
.. code:: python .. code:: python
@ -168,23 +167,25 @@ Datasource __init__.py OPTS:
Instantiation flow Instantiation flow
------------------ ------------------
Now, when loading Vitrage, vitrage.datasources.launcher.Launcher Now, when loading Vitrage, ``vitrage.datasources.launcher.Launcher``
will get instantiated and will register all of the datasources will get instantiated and will register all of the datasources
into Vitrage. Note, that if you want your datasource to also run as a into Vitrage. **Note**: if you want your datasource to also run as a
service i.e. get changes every <interval> you need to set under your service i.e. get changes every <interval> you need to set under your
datasources' OPTS an Integer option named 'changes_interval'. datasources ``OPTS`` an ``Integer`` option named ``changes_interval``.
Additionally, vitrage.entity_graph.transformer_manager.TransformerManager
Additionally, ``vitrage.entity_graph.transformer_manager.TransformerManager``
will get instantiated and will register all of the datasources transformers will get instantiated and will register all of the datasources transformers
into Vitrage. into Vitrage.
These two steps are using your previously configured driver and These two steps are using your previously configured driver and
transformer path options under your datasources' package __init__.OPTS. transformer path options under your datasources' package ``__init__.OPTS``.
Datasource Configuration Options Datasource Configuration Options
-------------------------------- --------------------------------
Any option your datasource defined can be accessed using oslo_config.cfg Any option your datasource defined can be accessed using ``oslo_config.cfg``
or by configuring vitrage.conf. or by configuring ``vitrage.conf``.
**Example** **Example**
@ -195,26 +196,23 @@ or by configuring vitrage.conf.
**Example** **Example**
/etc/vitrage/vitrage.conf .. code::
# /etc/vitrage/vitrage.conf
... ...
[datasources] [datasources]
snapshots_interval = 300 snapshots_interval = 300
# Names of supported plugins (list value) # Names of supported plugins (list value)
types = nagios,zabbix,nova.host,nova.instance,nova.zone,static_physical,aodh,cinder.volume,neutron.network,neutron.port,heat.stack
types = nova.host,nova.instance,nova.zone,static_physical,nagios,aodh,cinder.volume,neutron.network,neutron.port,heat.stack
[zabbix] [zabbix]
url = http://<ip>/zabbix
url = http://135.248.18.30
password = zabbix password = zabbix
user = admin user = admin
config_file = /etc/vitrage/zabbix_conf.yaml config_file = /etc/vitrage/zabbix_conf.yaml
[nagios]
user = omdadmin
password = omd
url = http://<ip>:<port>/<site>/nagios/cgi-bin/status.cgi
config_file = /etc/vitrage/nagios_conf.yaml

View File

@ -16,8 +16,9 @@ Since each data-source might represent severity differently, for each
data-source we can supply it's own mapping to the aggregated severity supported data-source we can supply it's own mapping to the aggregated severity supported
in Vitrage. This way we can know which severity is more important. in Vitrage. This way we can know which severity is more important.
In addition we also normalize the severities for the horizon UI (called In addition we also normalize the severities for the horizon UI (called
operational_severity) in order for the UI to know what color to show in ``operational_severity``) in order for the UI to know what color to show in
Horizon. Horizon.
This page explains how to handle this mapping for a given This page explains how to handle this mapping for a given
data-source. data-source.
@ -66,12 +67,10 @@ Default Configuration
Default configurations for alarms severities will be installed with Vitrage for Default configurations for alarms severities will be installed with Vitrage for
all the pre-packaged data-sources. all the pre-packaged data-sources.
Format Format
++++++ ++++++
::
.. code:: yaml
category: ALARM category: ALARM
values: values:
@ -79,13 +78,11 @@ Format
priority: <Alarm severity priority - an integer> priority: <Alarm severity priority - an integer>
original values: original values:
- name: <Original alarm severity name> - name: <Original alarm severity name>
operational_value: <normalized alarm severity - from operational_value: <normalized alarm severity - from OperationalAlarmSeverity class>
OperationalAlarmSeverity class>
- name: ... # can list several severities for one aggregation - name: ... # can list several severities for one aggregation
- aggregated values: - aggregated values:
priority: ... # can list several aggregated severities priority: ... # can list several aggregated severities
... ...
... ...
@ -93,11 +90,14 @@ Example
+++++++ +++++++
The following file will map alarm severities. The following file will map alarm severities.
For aggregated severity with priority 40 we have 2 severities and each one of For aggregated severity with priority 40 we have 2 severities and each one of
them is mapped to operational severity CRITICAL. them is mapped to operational severity CRITICAL.
For aggregated severity with priority 30 we have 1 severity called WARNING and For aggregated severity with priority 30 we have 1 severity called WARNING and
it is mapped to operational severity WARNING, etc... it is mapped to operational severity WARNING, etc...
::
.. code:: yaml
category: ALARM category: ALARM
values: values:

View File

@ -38,7 +38,7 @@ master_doc = 'index'
# General information about the project. # General information about the project.
project = u'vitrage' project = u'vitrage'
copyright = u'2013, OpenStack Foundation' copyright = u'2016, OpenStack Foundation'
# If true, '()' will be appended to :func: etc. cross-reference text. # If true, '()' will be appended to :func: etc. cross-reference text.
add_function_parentheses = True add_function_parentheses = True

View File

@ -25,7 +25,7 @@ Developer Guide
--------------- ---------------
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
vitrage-first_steps vitrage-first_steps
vitrage-api vitrage-api
@ -36,7 +36,7 @@ Design Documents
---------------- ----------------
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
vitrage-graph-design vitrage-graph-design
scenario-evaluator scenario-evaluator

View File

@ -2,26 +2,30 @@
Installation Installation
============ ============
In order to enable Vitrage: -------------------------------
Enable Vitrage and data sources
-------------------------------
* `Enabling Vitrage in devstack <https://github.com/openstack/vitrage/blob/master/devstack/README.rst/>`_ * `Enabling Vitrage in devstack <https://github.com/openstack/vitrage/blob/master/devstack/README.rst>`_
* `Enabling Vitrage in horizon <https://github.com/openstack/vitrage-dashboard/blob/master/README.rst/>`_ * `Enabling Vitrage in horizon <https://github.com/openstack/vitrage-dashboard/blob/master/README.rst>`_
* `Nagios devstack installation <https://github.com/openstack/vitrage/blob/master/doc/source/nagios-devstack-installation.rst/>`_ * `Nagios devstack installation <http://docs.openstack.org/developer/vitrage/nagios-devstack-installation.html>`_
* `Zabbix devstack installation <http://docs.openstack.org/developer/vitrage/zabbix_vitrage.html>`_
------------- -------------
Configuration Configuration
------------- -------------
* `Nagios Plugin Configuration <https://github.com/openstack/vitrage/blob/master/doc/source/nagios-config.rst>`_ * `Nagios Plugin Configuration <http://docs.openstack.org/developer/vitrage/nagios-config.html>`_
* `Static Physical Plugin Configuration <https://github.com/openstack/vitrage/blob/master/doc/source/static-physical-config.rst>`_ * `Static Physical Plugin Configuration <http://docs.openstack.org/developer/vitrage/static-physical-config.html>`_
* `Resource State Configuration <https://github.com/openstack/vitrage/blob/master/doc/source/resource-state-config.rst>`_ * `Resource State Configuration <http://docs.openstack.org/developer/vitrage/resource-state-config.html>`_
* `Alarm State Configuration <https://github.com/openstack/vitrage/blob/master/doc/source/alarm-state-config.rst>`_ * `Alarm Severity Configuration <http://docs.openstack.org/developer/vitrage/alarm-severity-config.html>`_
* `Zabbix Configuration <https://github.com/openstack/vitrage/blob/master/doc/source/zabbix_vitrage.rst>`_ * `Zabbix Configuration <http://docs.openstack.org/developer/vitrage/zabbix_vitrage.html>`_

View File

@ -5,7 +5,7 @@ Nagios Plugin Configuration
Configure Access to Nagios Configure Access to Nagios
-------------------------- --------------------------
The following should be set in **/etc/vitrage/vitrage.conf**, under [nagios] section: The following should be set in ``/etc/vitrage/vitrage.conf``, under ``[nagios]`` section:
+------------------+---------------------------------------------------------+-------------------------------+ +------------------+---------------------------------------------------------+-------------------------------+
| Name | Description | Default Value | | Name | Description | Default Value |
@ -31,9 +31,9 @@ Nagios access configuration - example
When installing Nagios on devstack with IP 10.20.30.40, following When installing Nagios on devstack with IP 10.20.30.40, following
the instructions here_, this would be the correct configuration: the instructions here_, this would be the correct configuration:
.. _here: https://github.com/openstack/vitrage/blob/master/doc/source/nagios-devstack-installation.rst .. _here: nagios-devstack-installation.html
:: .. code::
[nagios] [nagios]
user = omdadmin user = omdadmin
@ -54,7 +54,7 @@ to map each Nagios host to a Vitrage resource.
Format Format
++++++ ++++++
:: .. code ::
nagios: nagios:
- nagios_host: <Host as appears in Nagios> - nagios_host: <Host as appears in Nagios>
@ -64,7 +64,6 @@ Format
- nagios_host: <Host as appears in Nagios> - nagios_host: <Host as appears in Nagios>
type: <resource type in Vitrage> type: <resource type in Vitrage>
name: <resource name in Vitrage> name: <resource name in Vitrage>
... ...
Note that for ease of use, there is support for wildcards in the "nagios_host" Note that for ease of use, there is support for wildcards in the "nagios_host"
@ -79,7 +78,7 @@ Example 1
The following example is for a system with two hosts. In nagios they are named The following example is for a system with two hosts. In nagios they are named
*compute-0, compute-1*, and in nova they are named *host-1, host-2*. *compute-0, compute-1*, and in nova they are named *host-1, host-2*.
:: .. code::
nagios: nagios:
- nagios_host: compute-0 - nagios_host: compute-0
@ -94,15 +93,15 @@ Example 2
+++++++++ +++++++++
The following file will The following file will
- map all Nagios hosts named host-*<some_suffix>* or *<some_prefix>*-devstack - map all Nagios hosts named ``host-<some_suffix>`` or ``<some_prefix>-devstack``
to resources of type nova.host with the same name. to resources of type ``nova.host`` with the same name.
- map all Nagios hosts named instance-*<some_suffix>* to nova.instance - map all Nagios hosts named ``instance-<some_suffix>`` to ``nova.instance``
resources. resources.
Note how the *${nagios_host}* references the instantiation of the regex defined Note how the ``${nagios_host}`` references the instantiation of the regex defined
in nagios_host. in ``nagios_host``.
:: .. code::
nagios: nagios:
- nagios_host: host-(.*) - nagios_host: host-(.*)

View File

@ -25,12 +25,14 @@ Installation
------------ ------------
1. Update your repo to include the OMD key: 1. Update your repo to include the OMD key:
::
.. code::
wget -q "https://labs.consol.de/repo/stable/RPM-GPG-KEY" -O - | sudo apt-key add - wget -q "https://labs.consol.de/repo/stable/RPM-GPG-KEY" -O - | sudo apt-key add -
2. Update your repo with the OMD site. For example, for ubuntu trusty release: 2. Update your repo with the OMD site. For example, for ubuntu trusty release:
::
.. code::
sudo bash -c "echo 'deb https://labs.consol.de/repo/stable/ubuntu trusty main' >> /etc/apt/sources.list" sudo bash -c "echo 'deb https://labs.consol.de/repo/stable/ubuntu trusty main' >> /etc/apt/sources.list"
sudo apt-get update sudo apt-get update
@ -38,21 +40,24 @@ Installation
For additional distros, see https://labs.consol.de/repo/stable/ For additional distros, see https://labs.consol.de/repo/stable/
3. Install OMD 3. Install OMD
::
.. code::
sudo apt-get install omd sudo apt-get install omd
4. Create a site for nagios with a name of your choosing, for example 4. Create a site for nagios with a name of your choosing, for example
"my_site". ``my_site``.
::
.. code::
sudo omd create my_site sudo omd create my_site
sudo omd config my_site set APACHE_TCP_PORT 54321 sudo omd config my_site set APACHE_TCP_PORT 54321
sudo omd config my_site set APACHE_TCP_ADDR 0.0.0.0 sudo omd config my_site set APACHE_TCP_ADDR 0.0.0.0
sudo omd start my_site sudo omd start my_site
You can now access your Nagios site here: *http://<devstack_ip>:54321/my_site/omd*. You can now access your Nagios site here: *http://<devstack_ip>:54321/my_site/omd/*.
::
.. code::
username: omdadmin username: omdadmin
password: omd password: omd
@ -67,17 +72,19 @@ Installation
- When using devstack, remember to stop omd apache2's sites - When using devstack, remember to stop omd apache2's sites
5. Install the Check_MK agent on devstack VM: 5. Install the Check_MK agent on devstack VM:
::
.. code::
sudo apt-get install check-mk-agent sudo apt-get install check-mk-agent
6. Activate the Check_MK agent, by editing */etc/xinetd.d/check_mk* and 6. Activate the Check_MK agent, by editing ``/etc/xinetd.d/check_mk`` and
**setting "disable" to "no"**, and then run **setting "disable" to "no"**, and then run
::
.. code::
sudo service xinetd restart sudo service xinetd restart
7. In your browser, go to *http://<devstack_ip>:<selected port>/my_site/omd* 7. In your browser, go to *http://<devstack_ip>:<selected port>/my_site/omd/*
and follow the instructions at this link_ (**"Configuring the first host and and follow the instructions at this link_ (**"Configuring the first host and
checks"** section) to configure the nagios host. checks"** section) to configure the nagios host.
@ -86,4 +93,4 @@ Installation
8. *Vitrage Support.* With Nagios installed, you can now configure a datasource 8. *Vitrage Support.* With Nagios installed, you can now configure a datasource
for it for Vitrage, by following the instructions here_. for it for Vitrage, by following the instructions here_.
.. _here: https://github.com/openstack/vitrage/blob/master/doc/source/nagios-config.rst .. _here: nagios-config.html

View File

@ -5,6 +5,7 @@ Vitrage Notifier plugins - AODH
Overview Overview
======== ========
The Evaluator performs root cause analysis on the Vitrage Graph and may determine that an alarm should be created, deleted or otherwise updated. The Evaluator performs root cause analysis on the Vitrage Graph and may determine that an alarm should be created, deleted or otherwise updated.
Other components are notified of such changes by the Vitrage Notifier service. Among others, Vitrage Notifier is responsible for handling Aodh Alarms. Other components are notified of such changes by the Vitrage Notifier service. Among others, Vitrage Notifier is responsible for handling Aodh Alarms.
This document describes the implementation of Vitrage Notifier infrastructure and specifically notifying Aodh on Vitrage alarms. This document describes the implementation of Vitrage Notifier infrastructure and specifically notifying Aodh on Vitrage alarms.
@ -49,15 +50,15 @@ Deduced Alarms bus notifications
Vitrage Evaluator will create a deduced alarm, sending it to the data source queue Vitrage Evaluator will create a deduced alarm, sending it to the data source queue
Vitrage Evaluator will use the **vitrage.graph** message bus topic, and will post messages as follows: Vitrage Evaluator will use the **vitrage.graph** message bus topic, and will post messages as follows:
- message of type **vitrage.deduced_alarm.activate** : - message of type ``vitrage.deduced_alarm.activate`` :
* name - is the alarm name in vitrage * ``name`` - is the alarm name in vitrage
* severity - is the alarm severity * ``severity`` - is the alarm severity
* affected_resource_id - is the openstack id of the resource on which the alarm was raised * ``affected_resource_id`` - is the openstack id of the resource on which the alarm was raised
- **vitrage.deduced_alarm.deactivate** - ``vitrage.deduced_alarm.deactivate``
* id - is the alarm id * ``id`` - is the alarm id
Notifier Notifier
======== ========
@ -71,9 +72,9 @@ Aodh Plugin
=========== ===========
Vitrage alarms should be reflected as possible in Aodh. The aodh plugin has ceilometer client by which it can send rest calls to aodh Vitrage alarms should be reflected as possible in Aodh. The aodh plugin has ceilometer client by which it can send rest calls to aodh
Handle vitrage.deduced_alarm.activate: Handle ``vitrage.deduced_alarm.activate``
------------------------------------- -----------------------------------------
Create an event alarm with the specified severity, where the alarm name is vitrage_alarm_name+resource_id so to be unique Create an event alarm with the specified severity, where the alarm name is ``vitrage_alarm_name+resource_id`` so to be unique
- Message does not contain aodh alarm id: - Message does not contain aodh alarm id:
@ -86,8 +87,8 @@ Create an event alarm with the specified severity, where the alarm name is vitra
* plugin will **update** the aodh alarm status to alarm * plugin will **update** the aodh alarm status to alarm
Handle vitrage.deduced_alarm.deactivate: Handle ``vitrage.deduced_alarm.deactivate``
--------------------------------------- -------------------------------------------
delete an event alarm with the specified id Delete an event alarm with the specified id
* message will contain the aodh alarm id - plugin will **update** the alarm status to ok * message will contain the aodh alarm id - plugin will **update** the alarm status to ok

View File

@ -25,7 +25,7 @@ Configure Access to Resource State
---------------------------------- ----------------------------------
The resource state configuration is handled via config files. The location of The resource state configuration is handled via config files. The location of
these files can be determined in **/etc/vitrage/vitrage.conf**. Under the these files can be determined in ``/etc/vitrage/vitrage.conf``. Under the
[entity_graph] section, set: [entity_graph] section, set:
+------------------------+------------------------------------+----------------------------------+ +------------------------+------------------------------------+----------------------------------+
@ -65,27 +65,22 @@ Default Configuration
Default configurations for resource states will be installed with Vitrage for Default configurations for resource states will be installed with Vitrage for
all the pre-packaged data-sources. all the pre-packaged data-sources.
Format Format
++++++ ++++++
::
category: RESOURCE
values:
- aggregated values:
priority: <Resource state priority - an integer>
original values:
- name: <Original resource state name>
operational_value: <normalized resource state - from
OperationalResourceState class>
- name: ... # can list several states for one aggregation
- aggregated values:
priority: ... # can list several aggregated states
...
.. code:: yaml
category: RESOURCE
values:
- aggregated values:
priority: <Resource state priority - an integer>
original values:
- name: <Original resource state name>
operational_value: <normalized resource state - from OperationalResourceState class>
- name: ... # can list several states for one aggregation
- aggregated values:
priority: ... # can list several aggregated states
...
... ...
@ -93,12 +88,14 @@ Example
+++++++ +++++++
The following file will map resource states. The following file will map resource states.
For aggregated state with priority 40 we have 4 states and each one of them is For aggregated state with priority 40 we have 4 states and each one of them is
mapped to operational severity ERROR. mapped to operational severity ERROR.
For aggregated state with priority 30 we have 6 states and each one of them is For aggregated state with priority 30 we have 6 states and each one of them is
mapped to operational severity TRANSIENT, etc... mapped to operational severity TRANSIENT, etc...
:: .. code :: yaml
category: RESOURCE category: RESOURCE
values: values:

View File

@ -88,7 +88,7 @@ Template Loading
Scenarios are written up in configuration files called *templates*. The format Scenarios are written up in configuration files called *templates*. The format
and specification of these can be seen here_. and specification of these can be seen here_.
.. _here: https://github.com/openstack/vitrage/blob/master/doc/source/vitrage-template-format.rst .. _here: vitrage-template-format.html
Templates should all be located in the *<vitrage folder>/templates* folder. Templates should all be located in the *<vitrage folder>/templates* folder.

View File

@ -9,13 +9,13 @@ The Static Physical datasource allows users to integrate the physical topology
into Vitrage. Physical topology includes switches and their connection to into Vitrage. Physical topology includes switches and their connection to
other switches and physical hosts. other switches and physical hosts.
This datasource is static - pre-configured in a file. This is sufficient in This datasource is static - pre-configured in a file. This is sufficient in
many cases where the physical topology is relatively unchanging. many cases where the physical topology is relatively unchanging.
Configure Access to Static Physical Configure Access to Static Physical
----------------------------------- -----------------------------------
The following should be set in **/etc/vitrage/vitrage.conf**, under The following should be set in **/etc/vitrage/vitrage.conf**, under
[static_physical] section: [static_physical] section:
+------------------+---------------------------------------------------------+----------------------------------+ +------------------+---------------------------------------------------------+----------------------------------+
@ -32,41 +32,40 @@ The following should be set in **/etc/vitrage/vitrage.conf**, under
Configure Static Physical Mapping Configure Static Physical Mapping
--------------------------------- ---------------------------------
Physical configuration is made for configuring statically physical entities, Physical configuration is made for configuring statically physical entities,
and their relationships to other entities in the topology. and their relationships to other entities in the topology.
Some physical entities, such as switches, can not be retrieved from OpenStack, Some physical entities, such as switches, can not be retrieved from OpenStack,
and so are defined here. and so are defined here.
There may be more than one configuration file. All files will be read from There may be more than one configuration file. All files will be read from
*/etc/vitrage/static_datasources/*. See previous section on how to configure this */etc/vitrage/static_datasources/*. See previous section on how to configure this
location. location.
Format Format
++++++ ++++++
:: .. code::
entities:
- name: <Physical entity name as appears in configuration>
id: <Physical entity id as appears in configuration>
type: <Physical entity type - see below for details>
state: <default resource state>
relationships:
- type: <Physical entity type it is connected to - see below for details>
name: <Name of physical entity as appears in configuration>
id: <Id of physical entity as appears in configuration>
relation_type: <Relation name>
- type: ...
entities:
- name: <Physical entity name as appears in configuration>
id: <Physical entity id as appears in configuration>
type: <Physical entity type - see below for details>
state: <default resource state>
relationships:
- type: <Physical entity type it is connected to - see below for details>
name: <Name of physical entity as appears in configuration>
id: <Id of physical entity as appears in configuration>
relation_type: <Relation name>
- type: ...
... ...
Notes: Notes:
- The "type" key must match the name of a type from an existing datasource. - The "type" key must match the name of a type from an existing datasource.
Type names appear, for each datasource, in its __init__.py file. For example - Type names appear, for each datasource, in its __init__.py file.
see */workspace/dev/vitrage/vitrage/datasources/nova/host/__init__.py* - For example see */workspace/dev/vitrage/vitrage/datasources/nova/host/__init__.py*
Example Example
+++++++ +++++++
@ -74,20 +73,20 @@ Example
The following will define a switch that is attached to host-1 and is a backup The following will define a switch that is attached to host-1 and is a backup
of switch-2 of switch-2
:: .. code::
entities: entities:
- type: switch - type: switch
name: switch-1 name: switch-1
id: switch-1 # should be same as name id: switch-1 # should be same as name
state: available state: available
relationships: relationships:
- type: nova.host - type: nova.host
name: host-1 name: host-1
id: host-1 # should be same as name id: host-1 # should be same as name
relation_type: attached relation_type: attached
- type: switch - type: switch
name: switch-2 name: switch-2
id: switch-2 # should be same as name id: switch-2 # should be same as name
relation_type: backup relation_type: backup

View File

@ -11,9 +11,9 @@ Before you start
Installation Installation
============ ============
- `Enable Vitrage in devstack <https://github.com/openstack/vitrage/blob/master/devstack/README.rst/>`_ - `Enable Vitrage in devstack <https://github.com/openstack/vitrage/blob/master/devstack/README.rst>`_
- `Enable Vitrage in horizon <https://github.com/openstack/vitrage-dashboard/blob/master/README.rst/>`_ - `Enable Vitrage in horizon <https://github.com/openstack/vitrage-dashboard/blob/master/README.rst>`_
- run ./stack.sh - run ``./stack.sh``
Nagios Installation & Configuration Nagios Installation & Configuration
@ -27,8 +27,8 @@ as the trigger for deduced alarms, states and RCA templates in Vitrage.
.. _Nagios: https://www.nagios.org/ .. _Nagios: https://www.nagios.org/
- `Install Nagios on your devstack <https://github.com/openstack/vitrage/blob/master/doc/source/nagios-devstack-installation.rst/>`_ - `Install Nagios on your devstack <http://docs.openstack.org/developer/vitrage/nagios-devstack-installation.html>`_
- `Configure Nagios datasource <https://github.com/openstack/vitrage/blob/master/doc/source/nagios-config.rst>`_ - `Configure Nagios datasource <http://docs.openstack.org/developer/vitrage/nagios-config.html>`_
Vitrage in action Vitrage in action
@ -37,7 +37,7 @@ Vitrage in action
In order to see Vitrage in action, you should place your templates under In order to see Vitrage in action, you should place your templates under
*/etc/vitrage/templates*. See template_ example. */etc/vitrage/templates*. See template_ example.
.. _template: https://github.com/openstack/vitrage/blob/master/doc/source/host_high_memory_consumption.yaml .. _template: host_high_memory_consumption.yaml
In the example shown here, we will cause Nagios to report high memory usage on In the example shown here, we will cause Nagios to report high memory usage on
the devstack host. As a result and as defined in our sample template, Vitrage the devstack host. As a result and as defined in our sample template, Vitrage
@ -114,12 +114,12 @@ differently, for each data-source you can define it's own mapping to the
*normalized* states/severities supported in Vitrage. This will impact UI and *normalized* states/severities supported in Vitrage. This will impact UI and
templates behavior that depends on these fields. templates behavior that depends on these fields.
- `Resource state configuration <https://github.com/openstack/vitrage/blob/master/doc/source/resource-state-config.rst/>`_ - `Resource state configuration <http://docs.openstack.org/developer/vitrage/resource-state-config.html>`_
- `Alarm severity configuration <https://github.com/openstack/vitrage/blob/master/doc/source/alarm-state-config.rst/>`_ - `Alarm severity configuration <http://docs.openstack.org/developer/vitrage/alarm-severity-config.html>`_
Writing your own templates Writing your own templates
-------------------------- --------------------------
For more information regarding Vitrage templates, their format and how to add For more information regarding Vitrage templates, their format and how to add
them, see here_. them, see here_.
.. _here: https://github.com/openstack/vitrage/blob/master/doc/source/vitrage-template-format.rst .. _here: http://docs.openstack.org/developer/vitrage/vitrage-template-format.html

View File

@ -7,9 +7,9 @@ Consolidate Zabbix alerts from across multiple sites into a single "at-a-glance"
Installation Installation
------------ ------------
**Note:** Don't try to use zabbix with docker image to test, because `zabbix_vitrage.py` require some openstack libraries (`oslo.messaging` and `oslo.config`). **Note:** Don't try to use zabbix with docker image to test, because ``zabbix_vitrage.py`` requires some openstack libraries (``oslo.messaging`` and ``oslo.config``).
Copy the `zabbix_vitrage.py` script into the Zabbix servers' `AlertScriptsPath` directory which is by default `/usr/lib/zabbix/alertscripts` and make it executable: Copy the ``zabbix_vitrage.py`` script into the Zabbix servers' ``AlertScriptsPath`` directory which is by default ``/usr/lib/zabbix/alertscripts`` and make it executable:
.. code-block:: bash .. code-block:: bash
@ -17,7 +17,7 @@ Copy the `zabbix_vitrage.py` script into the Zabbix servers' `AlertScriptsPath`
$ cp zabbix_vitrage.py /usr/lib/zabbix/alertscripts/ $ cp zabbix_vitrage.py /usr/lib/zabbix/alertscripts/
$ chmod 755 /usr/lib/zabbix/alertscripts/zabbix_vitrage.py $ chmod 755 /usr/lib/zabbix/alertscripts/zabbix_vitrage.py
Install `oslo.messaging` and `oslo.config` to zabbix host (may require root): Install ``oslo.messaging`` and ``oslo.config`` to zabbix host (may require root):
.. code:: bash .. code:: bash
@ -30,35 +30,35 @@ To forward zabbix events to Vitrage a new media script needs to be created and a
1. Create a new media type [Admininstration > Media Types > Create Media Type] 1. Create a new media type [Admininstration > Media Types > Create Media Type]
| Name: Vitrage Notifications | **Name:** Vitrage Notifications
| Type: Script | **Type:** Script
| Script name: zabbix_vitrage.py | **Script name:** zabbix_vitrage.py
| Script parameters: | **Script parameters**:
| 1st line: {ALERT.SENDTO} | **1st line:** {ALERT.SENDTO}
| 2nd line: {ALERT.SUBJECT} | **2nd line:** {ALERT.SUBJECT}
| 3rd line: {ALERT.MESSAGE} | **3rd line:** {ALERT.MESSAGE}
2. Modify the Media for the Admin user [Administration > Users] 2. Modify the Media for the Admin user [Administration > Users]
| Type: vitrage Notifications | **Type:** Vitrage Notifications
| Send to: rabbit://rabbit_user:rabbit_pass@127.0.0.1:5672/ <--- Vitrage message bus url | **Send to:** ``rabbit://rabbit_user:rabbit_pass@127.0.0.1:5672/`` <--- Vitrage message bus url
| When active: 1-7,00:00-24:00 | **When active:** 1-7,00:00-24:00
| Use if severity: tick all options | **Use if severity:** tick all options
| Status: Enabled | **Status:** Enabled
**Note:** Default rabbit_user/rabbit_pass for devstack rabbitmq is `stackrabbit/secret` **Note:** Default ``rabbit_user/rabbit_pass`` for devstack rabbitmq is ``stackrabbit/secret``
3. Configure Action [Configuration > Actions > Create Action > Action] 3. Configure Action [Configuration > Actions > Create Action > Action]
| Name: Forward to Vitrage | **Name:** Forward to Vitrage
| Default Subject: {TRIGGER.STATUS} | **Default Subject:** {TRIGGER.STATUS}
| Add an operation: | **Add an operation:**
| Send to Users: Admin | **Send to Users:** Admin
| Send only to: Vitrage Notifications | **Send only to:** Vitrage Notifications
| Default Message: | **Default Message:**
| host={HOST.NAME1} | host={HOST.NAME1}
| hostid={HOST.ID1} | hostid={HOST.ID1}
| hostip={HOST.IP1} | hostip={HOST.IP1}
@ -70,35 +70,35 @@ To forward zabbix events to Vitrage a new media script needs to be created and a
| priority={TRIGGER.NSEVERITY} | priority={TRIGGER.NSEVERITY}
| lastchange={EVENT.DATE} {EVENT.TIME} | lastchange={EVENT.DATE} {EVENT.TIME}
| To send events add under the Conditions tab: | **To send events add under the Conditions tab:**
| (A) Maintenance status not in `maintenance` | (A) Maintenance status not in `maintenance`
For a full list of trigger macros see https://www.zabbix.com/documentation/3.0/manual/appendix/macros/supported_by_location For a full list of trigger macros see https://www.zabbix.com/documentation/3.0/manual/appendix/macros/supported_by_location
To test zabbix events and vitrage alarms, please see zabbix trgger documentation: https://www.zabbix.com/documentation/3.2/manual/config/triggers/trigger To test zabbix events and vitrage alarms, please see zabbix trigger documentation: https://www.zabbix.com/documentation/3.2/manual/config/triggers/trigger
Vitrage configuration Vitrage configuration
--------------------- ---------------------
1. Add zabbix to list of datasources in /etc/vitrage/vitrage.conf 1. Add zabbix to list of datasources in ``/etc/vitrage/vitrage.conf``
.. code:: .. code::
[datasources] [datasources]
types = zabbix,nova.host,nova.instance,nova.zone,static_physical,aodh,cinder.volume,neutron.network,neutron.port,heat.stack types = zabbix,nova.host,nova.instance,nova.zone,static_physical,aodh,cinder.volume,neutron.network,neutron.port,heat.stack
2. Add following section to /etc/vitrage/vitrage.conf 2. Add following section to ``/etc/vitrage/vitrage.conf``
.. code:: .. code::
[zabbix] [zabbix]
url = http://135.248.18.30 # URL to zabbix url = http://<ip>/zabbix # URL to zabbix
password = zabbix password = zabbix
user = admin user = admin
config_file = /etc/vitrage/zabbix_conf.yaml config_file = /etc/vitrage/zabbix_conf.yaml
2. Create /etc/vitrage/zabbix_conf.yaml with this content 2. Create ``/etc/vitrage/zabbix_conf.yaml`` with this content
.. code :: .. code ::