对于一个云环境来说,我们不但能够虚拟化出相关的虚拟机来,我们也需要来检测相关虚拟机对象的信息,例如CPU、内存、IO等,那么Openstack有一个ceilometer组件可以帮助我们获得这些信息。
测量 (Metering):Ceilometer。像一个漏斗一样,能把OpenStack内部发生的几乎所有的事件都收集起来,然后为计费和监控以及其它服务提供数据支撑。自Havana版本集成到项目中。Ceilometer作为OpenStack内部 notification的最大消费者,OpenStack内部发生的一些事件都会发出对应的notification消息,比如说创建和删除instance,这些 信息是计量/计费的重要信息,因此第一种方式是Ceilometer第一数据来源,但是有些计量信息通过notification消息是获取不到的, 比如说instance的CPU的运行时间,或者是CPU的使用率,这些信息不会通过notification消息发送出来,因此Ceilometer增加了第二种 方式,周期性的调用相关的API去获取这些信息。
下面先介绍一下怎么安装Ceilometer组件
一、在控制节点上做以下操作(192.168.3.180)
1、安装组件
sudo aptitude install ceilometer-api ceilometer-collector ceilometer-agent-central ceilometer-agent-notification ceilometer-alarm-evaluator ceilometer-alarm-notifier python-ceilometerclient
2、安装mongodb
与其他组件安装在MySQL不同的是,Ceilometer组件存储的数据在MongoDB,个人认为可能这些数据量比较大,而且需要实时获取,MongoDB效率方面较MySQL会好一些。
sudo apt-get install mongodb-server
3、编辑MongoDB的配置文件
sudo vi /etc/mongodb.conf
更新服务器IP信息:bind_ip = 192.168.3.180
4、 重启MongoDB服务
sudo service mongodb restart
5、创建数据库和ceilometer数据库用户
库名: ceilometer
账户: ceilometerdbadmin
密码: ceilometer4smtest
sudo mongo --host 192.168.3.180 --eval '
db = db.getSiblingDB("ceilometer");
db.addUser({user: "ceilometerdbadmin",
pwd: "ceilometer4smtest",
roles: [ "readWrite", "dbAdmin" ]})'
sm@controller:~$ sudo mongo --host 192.168.3.180 --eval '
> db = db.getSiblingDB("ceilometer");
> db.addUs