gord chung 5de896dfa1 switch dispatcher references to publisher
disptacher is a very collector-centric term. switch all references
to publisher

Change-Id: Ibc8f1e68dc733051518fab73d00c05cc30fb253c
2017-02-27 15:30:43 +00:00

9.2 KiB

Installing Manually

Note

Ceilometer collector service is deprecated. Configure dispatchers under publisher in pipeline to push data instead. For more details about how to configure publishers in the publisher-configuration.

Storage Backend Installation

Gnocchi

  1. Follow Gnocchi installation instructions

  2. Initialize Gnocchi for Ceilometer:

    $ gnocchi-upgrade --create-legacy-resource-types

    Note

    Prior to Gnocchi 2.1, Ceilometer resource types were included, therefore --create-legacy-resource-types flag is not needed.

  3. Edit /etc/ceilometer/ceilometer.conf for the collector service:

    • With Keystone authentication enabled:

      [dispatcher_gnocchi]
      filter_service_activity = False # Enable if using swift backend
      filter_project = <project name associated with gnocchi user> # if using swift backend
      
      [service_credentials]
      auth_url = <auth_url>:5000
      region_name = RegionOne
      password = password
      username = ceilometer
      project_name = service
      project_domain_id = default
      user_domain_id = default
      auth_type = password
    • In somes cases, it is possible to disable keystone authentication for Gnocchi to remove the overhead of token creation/verification when request authentication doesn't matter. This will increase the performance of Gnocchi:

      [dispatcher_gnocchi]
      filter_service_activity = False # Enable if using swift backend
      filter_project = <project name associated with gnocchi user> # if using swift backend
      auth_section=service_credentials_gnocchi
      
      [service_credentials_gnocchi]
      auth_type=gnocchi-noauth
      roles = admin
      user_id = <ceilometer_user_id>
      project_id = <ceilometer_project_id>
      endpoint = <gnocchi_endpoint>
  4. Copy gnocchi_resources.yaml to config directory (e.g./etc/ceilometer)

  5. To minimize data requests, caching and batch processing should be enabled:

    1. Enable resource caching (oslo.cache should be installed):

      [cache]
      backend_argument = redis_expiration_time:600
      backend_argument = db:0
      backend_argument = distributed_lock:True
      backend_argument = url:redis://localhost:6379
      backend = dogpile.cache.redis
    2. Enable batch processing:

      [notification]
      batch_size = 100
      batch_timeout = 5
  6. Start notification service

Installing the notification agent

double: installing; agent-notification

  1. Clone the ceilometer git repository to the management server:

    $ cd /opt/stack
    $ git clone https://git.openstack.org/openstack/ceilometer.git
  2. As a user with root permissions or sudo privileges, run the ceilometer installer:

    $ cd ceilometer
    $ sudo python setup.py install
  3. Generate configuration file:

    $ tox -egenconfig
  4. Copy the sample configuration files from the source tree to their final location:

    $ mkdir -p /etc/ceilometer
    $ cp etc/ceilometer/ceilometer.conf /etc/ceilometer
  5. Edit /etc/ceilometer/ceilometer.conf

    1. Configure messaging:

      [oslo_messaging_notifications]
      topics = notifications
      
      [oslo_messaging_rabbit]
      rabbit_userid = stackrabbit
      rabbit_password = openstack1
      rabbit_hosts = 10.0.2.15
    2. Set the telemetry_secret value.

      Set the telemetry_secret value to a large, random, value. Use the same value in all ceilometer configuration files, on all nodes, so that messages passing between the nodes can be validated. This value can be left empty to disable message signing.

      Note

      Disabling signing will improve message handling performance

    Refer to /configuration for details about any other options you might want to modify before starting the service.

  6. Edit /etc/ceilometer/ceilometer.conf:

    Change publisher endpoints to expected targets. By default, it pushes to a metering.sample topic on the oslo.messaging queue. Available publishers are listed in pipeline-publishers section.

  7. Start the notification daemon:

    $ ceilometer-agent-notification

    Note

    The default development configuration of the notification logs to stderr, so you may want to run this step using a screen session or other tool for maintaining a long-running program in the background.

Installing the Polling Agent

double: installing; agent

Note

The polling agent needs to be able to talk to Keystone and any of the services being polled for updates. It also needs to run on your compute nodes to poll instances.

  1. Clone the ceilometer git repository to the server:

    $ cd /opt/stack
    $ git clone https://git.openstack.org/openstack/ceilometer.git
  2. As a user with root permissions or sudo privileges, run the ceilometer installer:

    $ cd ceilometer
    $ sudo python setup.py install
  3. Generate configuration file:

    $ tox -egenconfig
  4. Copy the sample configuration files from the source tree to their final location:

    $ mkdir -p /etc/ceilometer
    $ cp etc/ceilometer/ceilometer.conf /etc/ceilometer/ceilometer.conf
  5. Configure messaging by editing /etc/ceilometer/ceilometer.conf:

    [oslo_messaging_rabbit]
    rabbit_userid = stackrabbit
    rabbit_password = openstack1
    rabbit_hosts = 10.0.2.15
  6. In order to retrieve object store statistics, ceilometer needs access to swift with ResellerAdmin role. You should give this role to your os_username user for tenant os_tenant_name:

    $ openstack role create ResellerAdmin
    +-----------+----------------------------------+
    | Field     | Value                            |
    +-----------+----------------------------------+
    | domain_id | None                             |
    | id        | f5153dae801244e8bb4948f0a6fb73b7 |
    | name      | ResellerAdmin                    |
    +-----------+----------------------------------+
    
    $ openstack role add f5153dae801244e8bb4948f0a6fb73b7 \
                         --project $SERVICE_TENANT \
                         --user $CEILOMETER_USER
  7. Start the agent:

    $ ceilometer-polling
  8. By default, the polling agent polls the compute and central namespaces. You can specify which namespace to poll in the ceilometer.conf configuration file or on the command line:

    $ ceilometer-polling --polling-namespaces central,ipmi

Installing the API Server

double: installing; API

Note

The Ceilometer's API service is no longer supported. Data storage should be handled by a separate service such as Gnocchi.

Enabling Service Notifications

Cinder

Edit cinder.conf to include:

[oslo_messaging_notifications]
driver = messagingv2

Glance

Edit glance.conf to include:

[oslo_messaging_notifications]
driver = messagingv2

Heat

Configure the driver in heat.conf:

[oslo_messaging_notifications]
driver=messagingv2

Neutron ------

Edit neutron.conf to include:

[oslo_messaging_notifications]
driver = messagingv2

Nova

Edit nova.conf to include:

[DEFAULT]
instance_usage_audit=True
instance_usage_audit_period=hour
notify_on_state_change=vm_and_task_state

[oslo_messaging_notifications]
driver=messagingv2

Sahara

Configure the driver in sahara.conf:

[DEFAULT]
enable_notifications=true

[oslo_messaging_notifications]
driver=messagingv2

Swift

Edit proxy-server.conf to include:

[filter:ceilometer]
topic = notifications
driver = messaging
url = rabbit://stackrabbit:openstack1@10.0.2.15:5672/
control_exchange = swift
paste.filter_factory = ceilometermiddleware.swift:filter_factory
set log_level = WARN

and edit [pipeline:main] to include the ceilometer middleware before the application:

[pipeline:main]
pipeline = catch_errors ... ... ceilometer proxy-server

Also, you need to configure messaging related options correctly as written above for other parts of installation guide. Refer to /configuration for details about any other options you might want to modify before starting the service.