aodh/doc/source/install.rst
Doug Hellmann a90958085c Update manual installation instructions
Update the instructions for installing ceilometer by hand
instead of using devstack.

bug 1070404
bug 1071494

Change-Id: I617e0467b40f218e5811da7b39db76c6eb466da6
Signed-off-by: Doug Hellmann <doug.hellmann@dreamhost.com>
2013-03-07 13:53:04 -05:00

12 KiB

Install

Installing and Running the Development Version

Ceilometer has four daemons. The compute agent runs on the Nova compute node(s) while the central agent and collector run on the cloud's management node(s). In a development environment created by devstack, these two are typically the same server. They do not have to be, though, so some of the instructions below are duplicated. Skip the steps you have already done.

Configuring Devstack

double: installing; devstack

  1. Create a localrc file as input to devstack.
  2. Ceilometer makes extensive use of the messaging bus, but has not yet been tested with ZeroMQ. We recommend using Rabbit or qpid for now.
  3. Nova does not generate the periodic notifications for all known instances by default. To enable these auditing events, set instance_usage_audit to true in the nova configuration file.
  4. The ceilometer services are not enabled by default, so they must be enabled in localrc before running stack.sh.

This example localrc file shows all of the settings required for ceilometer:

# Enable the ceilometer services
enable_service ceilometer-acompute,ceilometer-acentral,ceilometer-collector,ceilometer-api

Installing Manually

Installing the Collector

double: installing; collector

  1. If you want to be able to retrieve image counters, you need to instruct Glance to send notifications to the bus by changing notifier_strategy to rabbit or qpid in glance-api.conf and restarting the service.

  2. 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:

    $ keystone role-create --name=ResellerAdmin
    +----------+----------------------------------+
    | Property |              Value               |
    +----------+----------------------------------+
    |    id    | 462fa46c13fd4798a95a3bfbe27b5e54 |
    |   name   |          ResellerAdmin           |
    +----------+----------------------------------+
    
    $ keystone user-role-add --tenant_id $SERVICE_TENANT \
                             --user_id $CEILOMETER_USER \
                             --role_id 462fa46c13fd4798a95a3bfbe27b5e54

    You'll also need to add the Ceilometer middleware to Swift to account for incoming and outgoing traffic, adding this lines to /etc/swift/proxy-server.conf:

    [filter:ceilometer]
    use = egg:ceilometer#swift

    And adding ceilometer in the pipeline of that same file.

  3. Install MongoDB.

    Follow the instructions to install the MongoDB package for your operating system, then start the service.

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

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

    $ cd ceilometer
    $ sudo python setup.py install
  6. Copy the sample configuration files from the source tree to their final location.

    $ mkdir -p /etc/ceilometer
    $ cp etc/ceilometer/*.json /etc/ceilometer
    $ cp etc/ceilometer/*.yaml /etc/ceilometer
    $ cp etc/ceilometer/ceilometer.conf.sample /etc/ceilometer/ceilometer.conf
  7. Edit /etc/ceilometer/ceilometer.conf

    1. Configure RPC

      Set the RPC-related options correctly so ceilometer's daemons can communicate with each other and receive notifications from the other projects.

      In particular, look for the *_control_exchange options and make sure the names are correct. If you did not change the control_exchange settings for the other components, the defaults should be correct.

      Note

      Ceilometer makes extensive use of the messaging bus, but has not yet been tested with ZeroMQ. We recommend using Rabbit or qpid for now.

    2. Set the metering_secret value.

      Set the metering_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.

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

  8. Start the collector.

    $ ./bin/ceilometer-collector

    Note

    The default development configuration of the collector 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 Compute Agent

double: installing; compute agent

Note

The compute agent must be installed on each nova compute node.

  1. Configure nova.

    The nova compute service needs the following configuration to be set in nova.conf:

    # nova-compute configuration for ceilometer
    instance_usage_audit=True
    instance_usage_audit_period=hour
    notification_driver=nova.openstack.common.notifier.rpc_notifier
    notification_driver=ceilometer.compute.nova_notifier
  2. Clone the ceilometer git repository to the server:

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

    $ cd ceilometer
    $ sudo python setup.py install
  4. Copy the sample configuration files from the source tree to their final location.

    $ mkdir -p /etc/ceilometer
    $ cp etc/ceilometer/*.json /etc/ceilometer
    $ cp etc/ceilometer/*.yaml /etc/ceilometer
    $ cp etc/ceilometer/ceilometer.conf.sample /etc/ceilometer/ceilometer.conf
  5. Edit /etc/ceilometer/ceilometer.conf

    1. Configure RPC

      Set the RPC-related options correctly so ceilometer's daemons can communicate with each other and receive notifications from the other projects.

      In particular, look for the *_control_exchange options and make sure the names are correct. If you did not change the control_exchange settings for the other components, the defaults should be correct.

      Note

      Ceilometer makes extensive use of the messaging bus, but has not yet been tested with ZeroMQ. We recommend using Rabbit or qpid for now.

    2. Set the metering_secret value.

      Set the metering_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.

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

  6. Start the agent.

    $ ./bin/ceilometer-agent-compute

    Note

    The default development configuration of the agent 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 Central Agent

double: installing; agent

Note

The central agent needs to be able to talk to keystone and any of the services being polled for updates.

  1. Clone the ceilometer git repository to the server:

    $ cd /opt/stack
    $ git clone https://github.com/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. Copy the sample configuration files from the source tree to their final location.

    $ mkdir -p /etc/ceilometer
    $ cp etc/ceilometer/*.json /etc/ceilometer
    $ cp etc/ceilometer/*.yaml /etc/ceilometer
    $ cp etc/ceilometer/ceilometer.conf.sample /etc/ceilometer/ceilometer.conf
  4. Edit /etc/ceilometer/ceilometer.conf

    1. Configure RPC

      Set the RPC-related options correctly so ceilometer's daemons can communicate with each other and receive notifications from the other projects.

      In particular, look for the *_control_exchange options and make sure the names are correct. If you did not change the control_exchange settings for the other components, the defaults should be correct.

      Note

      Ceilometer makes extensive use of the messaging bus, but has not yet been tested with ZeroMQ. We recommend using Rabbit or qpid for now.

    2. Set the metering_secret value.

      Set the metering_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.

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

  5. Start the agent

    $ ./bin/ceilometer-agent-central

Installing the API Server

double: installing; API

Note

The API server needs to be able to talk to keystone and ceilometer's database.

  1. Clone the ceilometer git repository to the server:

    $ cd /opt/stack
    $ git clone https://github.com/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. Copy the sample configuration files from the source tree to their final location.

    $ mkdir -p /etc/ceilometer
    $ cp etc/ceilometer/*.json /etc/ceilometer
    $ cp etc/ceilometer/*.yaml /etc/ceilometer
    $ cp etc/ceilometer/ceilometer.conf.sample /etc/ceilometer/ceilometer.conf
  4. Edit /etc/ceilometer/ceilometer.conf

    1. Configure RPC

      Set the RPC-related options correctly so ceilometer's daemons can communicate with each other and receive notifications from the other projects.

      In particular, look for the *_control_exchange options and make sure the names are correct. If you did not change the control_exchange settings for the other components, the defaults should be correct.

      Note

      Ceilometer makes extensive use of the messaging bus, but has not yet been tested with ZeroMQ. We recommend using Rabbit or qpid for now.

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

  5. Start the API server.

    $ ./bin/ceilometer-api

Note

The development version of the API server 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.