Difference between revisions of "OpenStack: Implementing the Ceilometer Metering Service"

From Define Wiki
Jump to navigation Jump to search
(Created page with "* Install <syntaxhighlight> [root@server2-a ~]# yum -y install *ceilometer* mongodb-server mongodb <syntaxhighlight> * Prepare '''mongodb-server''' for use with Ceilometer. Add/edit the following ...")
 
(No difference)

Latest revision as of 10:39, 30 April 2015

  • 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 openssl to 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_admin file:
[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'