首先要把必备组件安装好,因为OpenStack Grizzly是基于Ubuntu包安装的,所以Ceilometer也依赖这种方式
OpenStack具体Grizzly搭建方式参考OpenStack Grizzly Multihost部署文档
所有节点都必须安装以下两个包,它们是Ceilometer的基础依赖
apt-get install python-ceilometer
apt-get install ceilometer-common
首先将MongoDB安装在控制节点,方便数据存取
apt-get install mongodb
控制节点需要安装Collector和Api服务
apt-get install ceilometer-api
apt-get install ceilometer-collector
另外把Agent Central也装在控制节点
apt-get install ceilometer-agent-central
最后还有Ceilometer的Client部分,用来执行CLI命令
apt-get install python-ceilometerclient
计算节点只需要再安装Agent Compute即可
apt-get install ceilometer-agent-compute
安装过程相对简单,但是如何获取监控数据以及如何进行存取呢?
首先得对OpenStack进行配置,让它们将Ceilometer所需数据通过notification发送到消息队列中,然后再对Ceilometer进行设定,实现各个服务之间的正常通信
我的环境中使用的是rabbit,所以修改glance-api.conf配置:
notifier_strategy = rabbit
修改cinder.conf配置:
notification_driver=cinder.openstack.common.notifier.rabbit_notifier
control_exchange=cinder
修改nova.conf配置:
instance_usage_audit=True
instance_usage_audit_period=hour
notify_on_state_change=vm_and_task_state
notification_driver=nova.openstack.common.notifier.rpc_notifier
notification_driver=ceilometer.compute.nova_notifier
创建ceilometer的server
keystone service-create --name=ceilometer \
--type=metering \
--description="Ceilometer Service"
创建一个ceilometer的endpoint
keystone endpoint-create --region RegionOne \
--service_id $CEILOMETER_SERVICE \
--publicurl "http://$SERVICE_HOST:8777/" \
--adminurl "http://$SERVICE_HOST:8777/" \
--internalurl "http://$SERVICE_HOST:8777/"
修改ceilometer.conf的配置
debug=true
verbose=true
auth_strategy=noauth
rabbit_host=$CONTROLLER_HOST
database_connection=mongodb://localhost:27017/ceilometer
os_username=$ADMIN_USERNAME
os_tenant_name=$TENANT_NAME
os_password=$ADMIN_PASSWORD
os_auth_url=http://${CONTROLLER_HOS}:5000/v2.0/
重启三个服务
service ceilometer-agent-central restart
service ceilometer-api restart
service ceilometer-collector restart
重启服务
service ceilometer-agent-compute restart
整个过程安装比较顺利,但是配置的时候可能会出现通信问题,这个时候好好研究研究文档是正事。
这个配置仅限于测试环境,对于生产环境安装和配置都根据情况来改变