User Tools

Site Tools


progetti:cloud-areapd:operations:preproduction_cloud:ceilometer

Ceilometer

Installation on Controller

[root@cloudpp-areapd ~]# cat ceilo-ctl.sh 
export CEILOHOST=cloudpp-areapd
export DBHOST=cld-nagios
export CEILOHOSTIP=90.147.77.39
export CEILOHOSTMGIP=192.168.60.111
export KEYHOSTIP=90.147.77.39
#
yum install -y openstack-ceilometer-api openstack-ceilometer-collector openstack-ceilometer-central python-ceilometerclient
 
## the lines below to be executed on $DBHOST
#yum install -y mongodb-server mongodb
#service mongod start
#chkconfig mongod on
#mongo --host $DBHOST --eval 'db = db.getSiblingDB("ceilometer"); db.addUser({user: "ceilometer",pwd: "CEILOMETER_DBPASS",roles: [ "readWrite", "dbAdmin" ]})'
## end of $DBHOST stuff
 
openstack-config --set /etc/ceilometer/ceilometer.conf database \ 
  connection mongodb://ceilometer:CEILOMETER_DBPASS@$DBHOST:27017/ceilometer
#
CEILOMETER_TOKEN=$(openssl rand -hex 10)
echo $CEILOMETER_TOKEN
openstack-config --set /etc/ceilometer/ceilometer.conf publisher_rpc \ 
  metering_secret $CEILOMETER_TOKEN
openstack-config --set /etc/ceilometer/ceilometer.conf DEFAULT \
  rpc_backend ceilometer.openstack.common.rpc.impl_kombu
#
source keystone_admin.sh
keystone user-create --name=ceilometer --pass=CEILOMETER_PASS --email=ceilometer@example.com
keystone user-role-add --user=ceilometer --tenant=services --role=admin
keystone service-create --name=ceilometer --type=metering   --description="Ceilometer Telemetry Service"
keystone endpoint-create --service-id=$(keystone service-list | awk '/ metering / {print $2}') \
--publicurl=http://$CEILOHOSTIP:8777 --internalurl=http://$CEILOHOSTMGIP:8777 --adminurl=http://$CEILOHOSTMGIP:8777
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken \ 
  auth_host $KEYHOSTIP
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken \ 
  admin_user ceilometer
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken \
  admin_tenant_name services
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken \ 
  auth_protocol http
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken \
  auth_uri http://$KEYHOSTIP:5000
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken \
  admin_password CEILOMETER_PASS
openstack-config --set /etc/ceilometer/ceilometer.conf service_credentials \ 
  os_username ceilometer
openstack-config --set /etc/ceilometer/ceilometer.conf service_credentials \ 
  os_tenant_name services
openstack-config --set /etc/ceilometer/ceilometer.conf service_credentials \
  os_password CEILOMETER_PASS
#
openstack-config --set /etc/cinder/cinder.conf DEFAULT control_exchange cinder
openstack-config --set /etc/cinder/cinder.conf DEFAULT notification_driver cinder.openstack.common.notifier.rpc_notifier
service openstack-cinder-api restart
openstack-cinder-volume restart
#
openstack-config --set /etc/glance/glance-api.conf DEFAULT notifier_strategy rabbit
service openstack-glance-api restart
service openstack-glance-registry restart
#
for i in `ls /etc/rc.d/init.d/openstack-ceilometer-*` ; do $i start; done

Installation on Compute Nodes

[root@cld-np-02 ~]# cat ceilo-cmp.sh 
yum install -y openstack-ceilometer-compute
#
# 1) do not forget to add in nova.conf:
#[DEFAULT]
#...
#notification_driver = nova.openstack.common.notifier.rpc_notifier
#notification_driver = ceilometer.compute.nova_notifier
#
# 2) use the same $CEILOMETER_TOKEN created on the Controller Node
#
export CEILOHOSTMGIP=192.168.60.111
export KEYHOSTMGIP=192.168.60.111
export RABBITMGIP=192.168.60.111
openstack-config --set /etc/nova/nova.conf DEFAULT \
  instance_usage_audit True
openstack-config --set /etc/nova/nova.conf DEFAULT \
  instance_usage_audit_period hour
openstack-config --set /etc/nova/nova.conf DEFAULT \
  notify_on_state_change vm_and_task_state
openstack-config --set /etc/ceilometer/ceilometer.conf DEFAULT \
  rpc_backend ceilometer.openstack.common.rpc.impl_kombu
openstack-config --set /etc/ceilometer/ceilometer.conf DEFAULT \
  rabbit_host $RABBITMGIP
openstack-config --set /etc/ceilometer/ceilometer.conf publisher_rpc \
  metering_secret $CEILOMETER_TOKEN
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken \ 
  auth_host $KEYHOSTMGIP
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken \
  admin_user ceilometer
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken \
  admin_tenant_name services
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken \ 
  auth_protocol http
openstack-config --set /etc/ceilometer/ceilometer.conf keystone_authtoken \
  admin_password CEILOMETER_PASS
openstack-config --set /etc/ceilometer/ceilometer.conf service_credentials \ 
  os_username ceilometer
openstack-config --set /etc/ceilometer/ceilometer.conf service_credentials \ 
  os_tenant_name services
openstack-config --set /etc/ceilometer/ceilometer.conf service_credentials \ 
  os_password CEILOMETER_PASS
openstack-config --set /etc/ceilometer/ceilometer.conf service_credentials \
  os_auth_url http://$KEYHOSTMGIP:5000/v2.0
service openstack-ceilometer-compute start
chkconfig openstack-ceilometer-compute on
service openstack-ceilometer-compute status
ls -l /var/log/ceilometer/

Testing from Controller

source keystone_admin.sh 
ceilometer meter-list
ceilometer resource-list 
ceilometer statistics -m cpu
ceilometer statistics -m cpu.hours
ceilometer statistics -m cpu_util
ceilometer sample-list -m cpu

Backup and purge ceilometer backend

  • Follow the instructions here
# set time_to_live to 32 days
[root@cloudpp-areapd ~]# openstack-config --set /etc/ceilometer/ceilometer.conf DEFAULT \
 time_to_live 2764800
[root@cloudpp-areapd ~]# for i in `ls /etc/rc.d/init.d/openstack-ceilometer-*` ; do $i restart; done
# copying the mongo_backup.py script
[root@cloudpp-areapd ~]# git clone https://github.com/icclab/arcus-energy-monitoring-tool/
[root@cloudpp-areapd ~]# useradd ceilobackup
[root@cloudpp-areapd ~]# cp arcus-energy-monitoring-tool/Tools/mongo_backup.py /home/ceilobackup/
[root@cloudpp-areapd ~]# chown ceilobackup.ceilobackup /home/ceilobackup/mongo_backup.py
  • Backup the data and purge the DB
[root@cloudpp-areapd ~]# su - ceilobackup
# edit mongo_backup.py and set properly the DB host_ip and ceilometer username password, then execute
[ceilobackup@cloudpp-areapd ~]$ python mongo_backup.py
# backup files go in zip directory
[ceilobackup@cloudpp-areapd ~]$ ls -lh zip/
total 32M
-rw-rw-r-- 1 ceilobackup ceilobackup 32M Jan 30 14:14 backup-2015-0.zip
# purge the DB by executing:
[ceilobackup@cloudpp-areapd ~]$ mongo --host $DBHOST --eval "db.adminCommand('listDatabases').databases.forEach(function(d){if(d.name!='admin' && d.name!='local' && d.name!='config'){db.getSiblingDB(d.name).dropDatabase();}});"
# re-create ceilometer DB and user
[ceilobackup@cloudpp-areapd ~]$ mongo --host $DBHOST --eval 'db = db.getSiblingDB("ceilometer"); db.addUser({user: "ceilometer",pwd: "CEILOMETER_DBPASS",roles: [ "readWrite", "dbAdmin" ]})'
progetti/cloud-areapd/operations/preproduction_cloud/ceilometer.txt · Last modified: 2016/03/29 09:02 by verlato@infn.it

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki