User Tools

Site Tools


progetti:cloud-areapd:operations:preproduction_cloud:ceilometer

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
progetti:cloud-areapd:operations:preproduction_cloud:ceilometer [2015/01/30 14:49] – [Backup and purge ceilometer backend] verlato@infn.itprogetti:cloud-areapd:operations:preproduction_cloud:ceilometer [2016/03/29 09:02] (current) verlato@infn.it
Line 1: Line 1:
 +====== Ceilometer ======
 +Installation instructions for Havana on:
 +  * http://docs.openstack.org/havana/install-guide/install/yum/content/ch_ceilometer.html 
 +  * https://openstack.redhat.com/CeilometerQuickStart
 +Graphic interface available in Horizon: 
 +  * https://cloudpp-areapd.pd.infn.it:8443/dashboard/admin/metering/
 +===== Installation on Controller =====
 +<code bash>
 +[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
 +</code>
 +
 +===== Installation on Compute Nodes =====
 +<code bash>
 +[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/
 +</code>
 +===== Testing from Controller =====
 +<code bash>
 +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
 +</code>
 +
 +===== Backup and purge ceilometer backend =====
 +  * Follow the instructions [[http://blog.zhaw.ch/icclab/managing-ceilometer-data-in-openstack/|here]]
 +<code bash>
 +# 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
 +</code>
 +  * Backup the data and purge the DB
 +<code bash>
 +[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" ]})'
 +</code>

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki