Install and configure for Ubuntu

This section describes how to install and configure the Telemetry service, code-named ceilometer, on the controller node.

Prerequisites

Before you install and configure the Telemetry service, you must configure a target to send metering data to. The recommended endpoint is Gnocchi.

  1. Source the admin credentials to gain access to admin-only CLI commands:

    $ . admin-openrc
    
  2. To create the service credentials, complete these steps:

    • Create the ceilometer user:

      $ openstack user create --domain default --password-prompt ceilometer
      User Password:
      Repeat User Password:
      +-----------+----------------------------------+
      | Field     | Value                            |
      +-----------+----------------------------------+
      | domain_id | e0353a670a9e496da891347c589539e9 |
      | enabled   | True                             |
      | id        | c859c96f57bd4989a8ea1a0b1d8ff7cd |
      | name      | ceilometer                       |
      +-----------+----------------------------------+
      
    • Add the admin role to the ceilometer user.

      $ openstack role add --project service --user ceilometer admin
      

      Note

      This command provides no output.

  3. Register Gnocchi service in Keystone:

    • Create the gnocchi user:

      $ openstack user create --domain default --password-prompt gnocchi
      User Password:
      Repeat User Password:
      +-----------+----------------------------------+
      | Field     | Value                            |
      +-----------+----------------------------------+
      | domain_id | e0353a670a9e496da891347c589539e9 |
      | enabled   | True                             |
      | id        | 8bacd064f6434ef2b6bbfbedb79b0318 |
      | name      | gnocchi                          |
      +-----------+----------------------------------+
      
    • Create the gnocchi service entity:

      $ openstack service create --name gnocchi \
        --description "Metric Service" metric
      +-------------+----------------------------------+
      | Field       | Value                            |
      +-------------+----------------------------------+
      | description | Metric Service                   |
      | enabled     | True                             |
      | id          | 205978b411674e5a9990428f81d69384 |
      | name        | gnocchi                          |
      | type        | metric                           |
      +-------------+----------------------------------+
      
    • Add the admin role to the gnocchi user.

      $ openstack role add --project service --user gnocchi admin
      

      Note

      This command provides no output.

    • Create the Metric service API endpoints:

      $ openstack endpoint create --region RegionOne \
        metric public http://controller:8041
      +--------------+----------------------------------+
      | Field        | Value                            |
      +--------------+----------------------------------+
      | enabled      | True                             |
      | id           | b808b67b848d443e9eaaa5e5d796970c |
      | interface    | public                           |
      | region       | RegionOne                        |
      | region_id    | RegionOne                        |
      | service_id   | 205978b411674e5a9990428f81d69384 |
      | service_name | gnocchi                          |
      | service_type | metric                           |
      | url          | http://controller:8041           |
      +--------------+----------------------------------+
      
      $ openstack endpoint create --region RegionOne \
        metric internal http://controller:8041
      +--------------+----------------------------------+
      | Field        | Value                            |
      +--------------+----------------------------------+
      | enabled      | True                             |
      | id           | c7009b1c2ee54b71b771fa3d0ae4f948 |
      | interface    | internal                         |
      | region       | RegionOne                        |
      | region_id    | RegionOne                        |
      | service_id   | 205978b411674e5a9990428f81d69384 |
      | service_name | gnocchi                          |
      | service_type | metric                           |
      | url          | http://controller:8041           |
      +--------------+----------------------------------+
      
      $ openstack endpoint create --region RegionOne \
        metric admin http://controller:8041
      +--------------+----------------------------------+
      | Field        | Value                            |
      +--------------+----------------------------------+
      | enabled      | True                             |
      | id           | b2c00566d0604551b5fe1540c699db3d |
      | interface    | admin                            |
      | region       | RegionOne                        |
      | region_id    | RegionOne                        |
      | service_id   | 205978b411674e5a9990428f81d69384 |
      | service_name | gnocchi                          |
      | service_type | metric                           |
      | url          | http://controller:8041           |
      +--------------+----------------------------------+
      

Install Gnocchi

  1. Install the Gnocchi packages. Alternatively, Gnocchi can be install using pip:

    # apt-get install gnocchi-api gnocchi-metricd python-gnocchiclient
    

    Note

    Depending on your environment size, consider installing Gnocchi separately as it makes extensive use of the cpu.

  1. Create the database for Gnocchi’s indexer:

    • Use the database access client to connect to the database server as the root user:

      $ mysql -u root -p
      
    • Create the gnocchi database:

      CREATE DATABASE gnocchi;
      
    • Grant proper access to the gnocchi database:

      GRANT ALL PRIVILEGES ON gnocchi.* TO 'gnocchi'@'localhost' \
        IDENTIFIED BY 'GNOCCHI_DBPASS';
      GRANT ALL PRIVILEGES ON gnocchi.* TO 'gnocchi'@'%' \
        IDENTIFIED BY 'GNOCCHI_DBPASS';
      

      Replace GNOCCHI_DBPASS with a suitable password.

    • Exit the database access client.

  2. Edit the /etc/gnocchi/gnocchi.conf file and add Keystone options:

    • In the [api] section, configure gnocchi to use keystone:

      [api]
      auth_mode = keystone
      
    • In the [keystone_authtoken] section, configure keystone authentication:

      [keystone_authtoken]
      ...
      auth_type = password
      auth_url = http://controller:5000/v3
      project_domain_name = Default
      user_domain_name = Default
      project_name = service
      username = gnocchi
      password = GNOCCHI_PASS
      interface = internalURL
      region_name = RegionOne
      

      Replace GNOCCHI_PASS with the password you chose for the gnocchi user in the Identity service.

    • In the [indexer] section, configure database access:

      [indexer]
      url = mysql+pymysql://gnocchi:GNOCCHI_DBPASS@controller/gnocchi
      

      Replace GNOCCHI_DBPASS with the password you chose for Gnocchi’s indexer database.

    • In the [storage] section, configure location to store metric data. In this case, we will store it to the local file system. See Gnocchi documenation for a list of more durable and performant drivers:

      [storage]
      # coordination_url is not required but specifying one will improve
      # performance with better workload division across workers.
      coordination_url = redis://controller:6379
      file_basepath = /var/lib/gnocchi
      driver = file
      
  3. Initialize Gnocchi:

    gnocchi-upgrade
    

Finalize Gnocchi installation

  1. Restart the Gnocchi services:

    # service gnocchi-api restart
    # service gnocchi-metricd restart
    

Install and configure components

  1. Install the ceilometer packages:

    # apt-get install ceilometer-agent-notification \
      ceilometer-agent-central
    
  1. Edit the /etc/ceilometer/pipeline.yaml file and complete the following section:

    • Configure Gnocchi connection:

      publishers:
          # set address of Gnocchi
          # + filter out Gnocchi-related activity meters (Swift driver)
          # + set default archive policy
          - gnocchi://?filter_project=service&archive_policy=low
      
  2. Edit the /etc/ceilometer/ceilometer.conf file and complete the following actions:

    • In the [DEFAULT] section, configure RabbitMQ message queue access:

      [DEFAULT]
      ...
      transport_url = rabbit://openstack:RABBIT_PASS@controller
      

      Replace RABBIT_PASS with the password you chose for the openstack account in RabbitMQ.

    • In the [service_credentials] section, configure service credentials:

      [service_credentials]
      ...
      auth_type = password
      auth_url = http://controller:5000/v3
      project_domain_id = default
      user_domain_id = default
      project_name = service
      username = ceilometer
      password = CEILOMETER_PASS
      interface = internalURL
      region_name = RegionOne
      

      Replace CEILOMETER_PASS with the password you chose for the ceilometer user in the Identity service.

  3. Create Ceilometer resources in Gnocchi. Gnocchi should be running by this stage:

    # ceilometer-upgrade
    

Finalize installation

  1. Restart the Telemetry services:

    # service ceilometer-agent-central restart
    # service ceilometer-agent-notification restart