deb-gnocchi/doc/source/install.rst
gord chung bfac71ad35 add note to clear backlog before upgrade
upgrade is a single process, even with threads, it will be slow
as hell to upgrade unprocessed measures versus just clearing it with
tens or hundreds of metricd

Change-Id: Ife3b58105d7cd17a824119f7ef3c369ad1b419a0
2017-05-10 20:33:11 +00:00

6.1 KiB
Raw Blame History

Installation

Installation

To install Gnocchi using pip, just type:

pip install gnocchi

Depending on the drivers and features you want to use (see architecture for which driver to pick), you need to install extra variants using, for example:

pip install gnocchi[postgresql,ceph,keystone]

This would install PostgreSQL support for the indexer, Ceph support for storage, and Keystone support for authentication and authorization.

The list of variants available is:

  • keystone provides Keystone authentication support
  • mysql - provides MySQL indexer support
  • postgresql provides PostgreSQL indexer support
  • swift provides OpenStack Swift storage support
  • s3 provides Amazon S3 storage support
  • ceph provides common part of Ceph storage support
  • ceph_recommended_lib provides Ceph (>=0.80) storage support
  • ceph_alternative_lib provides Ceph (>=10.1.0) storage support
  • file provides file driver support
  • redis provides Redis storage support
  • doc documentation building support
  • test unit and functional tests support

To install Gnocchi from source, run the standard Python installation procedure:

pip install -e .

Again, depending on the drivers and features you want to use, you need to install extra variants using, for example:

pip install -e .[postgresql,ceph,ceph_recommended_lib]

Ceph requirements

The ceph driver needs to have a Ceph user and a pool already created. They can be created for example with:

ceph osd pool create metrics 8 8
ceph auth get-or-create client.gnocchi mon "allow r" osd "allow rwx pool=metrics"

Gnocchi leverages some librados features (omap, async, operation context) available in python binding only since python-rados >= 10.1.0. To handle this, Gnocchi uses 'cradox' python library which has exactly the same API but works with Ceph >= 0.80.0.

If Ceph and python-rados are >= 10.1.0, cradox python library becomes optional but is still recommended.

Configuration

Configuration file

By default, gnocchi looks for its configuration file in the following places, in order:

  • ~/.gnocchi/gnocchi.conf
  • ~/gnocchi.conf
  • /etc/gnocchi/gnocchi.conf
  • /etc/gnocchi.conf
  • ~/gnocchi/gnocchi.conf.d
  • ~/gnocchi.conf.d
  • /etc/gnocchi/gnocchi.conf.d
  • /etc/gnocchi.conf.d

No config file is provided with the source code; it will be created during the installation. In case where no configuration file was installed, one can be easily created by running:

gnocchi-config-generator > /path/to/gnocchi.conf

Configure Gnocchi by editing the appropriate file.

The configuration file should be pretty explicit, but here are some of the base options you want to change and configure:

Option name Help
storage.driver The storage driver for metrics.
indexer.url URL to your indexer.
storage.file* Configuration options to store files if you use the file storage driver.
storage.swift* Configuration options to access Swift if you use the Swift storage driver.
storage.ceph* Configuration options to access Ceph if you use the Ceph storage driver.
storage.s3* Configuration options to access S3 if you use the S3 storage driver.
storage.redis* Configuration options to access Redis if you use the Redis storage driver.

Configuring authentication

The API server supports different authentication methods: basic (the default) which uses the standard HTTP Authorization header or keystone to use OpenStack Keystone. If you successfully installed the keystone flavor using pip (see installation), you can set api.auth_mode to keystone to enable Keystone authentication.

Initialization

Once you have configured Gnocchi properly you need to initialize the indexer and storage:

gnocchi-upgrade

Upgrading

In order to upgrade from a previous version of Gnocchi, you need to make sure that your indexer and storage are properly upgraded. Run the following:

  1. Stop the old version of Gnocchi API server and gnocchi-statsd daemon
  2. Stop the old version of gnocchi-metricd daemon

Note

Data in backlog is never migrated between versions. Ensure the backlog is empty before any upgrade to ensure data is not lost.

  1. Install the new version of Gnocchi
  2. Run gnocchi-upgrade This can take several hours depending on the size of your index and storage.
  3. Start the new Gnocchi API server, gnocchi-metricd and gnocchi-statsd daemons

Installation Using Devstack

To enable Gnocchi in devstack, add the following to local.conf:

enable_plugin gnocchi https://github.com/openstack/gnocchi master

To enable Grafana support in devstack, you can also enable `gnocchi-grafana`:

enable_service gnocchi-grafana

Then, you can start devstack:

./stack.sh