Install and configure for Red Hat Enterprise Linux and CentOS¶
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.
Source the
admin
credentials to gain access to admin-only CLI commands:$ . admin-openrc
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 theceilometer
user.$ openstack role add --project service --user ceilometer admin
Note
This command provides no output.
Create the
ceilometer
service entity:$ openstack service create --name ceilometer \ --description "Telemetry" metering +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | Telemetry | | enabled | True | | id | 5fb7fd1bb2954fddb378d4031c28c0e4 | | name | ceilometer | | type | metering | +-------------+----------------------------------+
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 thegnocchi
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¶
Install the Gnocchi packages. Alternatively, Gnocchi can be install using pip:
# yum install openstack-gnocchi-api openstack-gnocchi-metricd \ python-gnocchiclient
Note
Depending on your environment size, consider installing Gnocchi separately as it makes extensive use of the cpu.
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.
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 thegnocchi
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
Initialize Gnocchi:
gnocchi-upgrade
Finalize Gnocchi installation¶
Start the Gnocchi services and configure them to start when the system boots:
# systemctl enable openstack-gnocchi-api.service \ openstack-gnocchi-metricd.service # systemctl start openstack-gnocchi-api.service \ openstack-gnocchi-metricd.service
Install and configure components¶
Install the Ceilometer packages:
# yum install openstack-ceilometer-notification \ openstack-ceilometer-central
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
Edit the
/etc/ceilometer/ceilometer.conf
file and complete the following actions:In the
[DEFAULT]
section, configureRabbitMQ
message queue access:[DEFAULT] ... transport_url = rabbit://openstack:RABBIT_PASS@controller
Replace
RABBIT_PASS
with the password you chose for theopenstack
account inRabbitMQ
.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 theceilometer
user in the Identity service.
Create Ceilometer resources in Gnocchi. Gnocchi should be running by this stage:
# ceilometer-upgrade
Finalize installation¶
Start the Telemetry services and configure them to start when the system boots:
# systemctl enable openstack-ceilometer-notification.service \ openstack-ceilometer-central.service # systemctl start openstack-ceilometer-notification.service \ openstack-ceilometer-central.service