OpenStack: Implementing the Ceilometer Metering Service
Jump to navigation
Jump to search
- Install
[root@server2-a ~]# yum -y install *ceilometer* mongodb-server mongodb
<syntaxhighlight>
* Prepare '''mongodb-server''' for use with Ceilometer. Add/edit the following line in '''<code>/etc/sysconfig/mongod</code>''':
<syntaxhighlight>
OPTIONS="--smallfiles --quiet -f /etc/mongodb.conf"
<syntaxhighlight>
* Edit '''<code>/etc/mongodb.conf</code>'''. Replace '''bind_ip''' value with server2-a IP address:
<syntaxhighlight>
bind_ip = 172.25.2.10- Start mongodb:
[root@server2-a ~]# systemctl start mongod
[root@server2-a ~]# systemctl enable mongod
ln -s '/usr/lib/systemd/system/mongod.service' '/etc/systemd/system/multi-user.target.wants/mongod.service'- Connect to the mongodb database and create the ceilometer database and the ceilometer user:
[root@server2-a ~]# mongo 172.25.2.10
MongoDB shell version: 2.4.9
connecting to: 172.25.2.10/test
Welcome to the MongoDB shell.
For interactive help, type "help".
> use ceilometer;
switched to db ceilometer
> db.addUser({user: "ceilometer", pwd: "redhat", roles: [ "readWrite", "dbAdmin" ]})
{
"user" : "ceilometer",
"pwd" : "ded81a60f1f2adc0d4266ed8f1d31709",
"roles" : [
"readWrite",
"dbAdmin"
],
"_id" : ObjectId("5541ff6f607ca12c91f987d8")
}
> exit
bye- Backup files:
[root@server2-a ~]# cp /etc/ceilometer/ceilometer.conf /etc/ceilometer/ceilometer.conf.orig- Update the database connection setting in
/etc/ceilometer/ceilometer.conf:
[root@server2-a ~]# crudini --set /etc/ceilometer/ceilometer.conf database connection mongodb://ceilometer:redhat@172.25.2.10:27017/ceilometer- Use
opensslto generate a token to use as the metering_secret:
[root@server2-a ~]# export TOKEN=`openssl rand -hex 10`
[root@server2-a ~]# crudini --set /etc/ceilometer/ceilometer.conf publisher metering_secret $TOKEN- Configure Keystone authentication:
[root@server2-a ~]# crudini --set /etc/ceilometer/ceilometer.conf keystone_authtoken auth_host 172.25.2.10
[root@server2-a ~]# crudini --set /etc/ceilometer/ceilometer.conf keystone_authtoken auth_port 35357
[root@server2-a ~]# crudini --set /etc/ceilometer/ceilometer.conf keystone_authtoken auth_protocol http
[root@server2-a ~]# crudini --set /etc/ceilometer/ceilometer.conf keystone_authtoken admin_tenant_name services
[root@server2-a ~]# crudini --set /etc/ceilometer/ceilometer.conf keystone_authtoken admin_user ceilometer
[root@server2-a ~]# crudini --set /etc/ceilometer/ceilometer.conf keystone_authtoken admin_password redhat- Add the AMQP server so Ceilometer can gather telemetry:
[root@server2-a ~]# crudini --set /etc/ceilometer/ceilometer.conf DEFAULT rabbit_host 172.25.2.10- Also set service credentials:
[root@server2-a ~]# crudini --set /etc/ceilometer/ceilometer.conf service_credentials os_auth_url http://172.25.2.10:35357/v2.0
[root@server2-a ~]# crudini --set /etc/ceilometer/ceilometer.conf service_credentials os_tenant_name services
[root@server2-a ~]# crudini --set /etc/ceilometer/ceilometer.conf service_credentials os_username ceilometer
[root@server2-a ~]# crudini --set /etc/ceilometer/ceilometer.conf service_credentials os_password redhat- Source
keystonerc_adminfile:
[root@server2-a ~]# source /root/keystonerc_admin
[root@server2-a ~(keystone_admin)]#- Create the ceilometer user in Keystone:
[root@server2-a ~(keystone_admin)]# keystone user-create --name ceilometer --pass redhat
+----------+----------------------------------+
| Property | Value |
+----------+----------------------------------+
| email | |
| enabled | True |
| id | de3d7d596b0d45b4a89db2ffe122fc89 |
| name | ceilometer |
| username | ceilometer |
+----------+----------------------------------+- Give the admin role to the ceilometer user within the services tenant:
[root@server2-a ~(keystone_admin)]# keystone user-role-add --tenant services --user ceilometer --role admin- Add the Ceilometer service catalog and verify it has been created properly by listing all services in the catalog:
[root@server2-a ~(keystone_admin)]# keystone service-create --name ceilometer --type metering --description "Ceilometer Telemetry Service"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| description | Ceilometer Telemetry Service |
| enabled | True |
| id | 80256b9bd6f24f42b3a2cb7ca6f93126 |
| name | ceilometer |
| type | metering |
+-------------+----------------------------------+- Create the service endpoint for Ceilometer:
[root@server2-a ~(keystone_admin)]# keystone endpoint-create --region RegionOne --service-id 80256b9bd6f24f42b3a2cb7ca6f93126 --publicurl "http://172.25.2.10:8777/" --adminurl "http://172.25.2.10:8777/" --internalurl "http://172.25.2.10:8777/"
+-------------+----------------------------------+
| Property | Value |
+-------------+----------------------------------+
| adminurl | http://172.25.2.10:8777/ |
| id | adca516d55e24e07ad5c960fe45c2b16 |
| internalurl | http://172.25.2.10:8777/ |
| publicurl | http://172.25.2.10:8777/ |
| region | RegionOne |
| service_id | 80256b9bd6f24f42b3a2cb7ca6f93126 |
+-------------+----------------------------------+- Start the Ceilometer services and check for errors:
systemctl start openstack-ceilometer-compute
systemctl start openstack-ceilometer-central
systemctl start openstack-ceilometer-collector
systemctl start openstack-ceilometer-api
grep ERROR /var/log/ceilometer/*- Enable Ceilometer:
[root@server2-a ~(keystone_admin)]# systemctl enable openstack-ceilometer-compute
ln -s '/usr/lib/systemd/system/openstack-ceilometer-compute.service' '/etc/systemd/system/multi-user.target.wants/openstack-ceilometer-compute.service'
[root@server2-a ~(keystone_admin)]# systemctl enable openstack-ceilometer-central
ln -s '/usr/lib/systemd/system/openstack-ceilometer-central.service' '/etc/systemd/system/multi-user.target.wants/openstack-ceilometer-central.service'
[root@server2-a ~(keystone_admin)]# systemctl enable openstack-ceilometer-collector
ln -s '/usr/lib/systemd/system/openstack-ceilometer-collector.service' '/etc/systemd/system/multi-user.target.wants/openstack-ceilometer-collector.service'
[root@server2-a ~(keystone_admin)]# systemctl enable openstack-ceilometer-api
ln -s '/usr/lib/systemd/system/openstack-ceilometer-api.service' '/etc/systemd/system/multi-user.target.wants/openstack-ceilometer-api.service'