[部署篇11]VMWare搭建Openstack——Ceilometer的安装与配置

对于一个云环境来说,我们不但能够虚拟化出相关的虚拟机来,我们也需要来检测相关虚拟机对象的信息,例如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.addUser({user: "ceilometerdbadmin",
> pwd: "ceilometer4smtest",
> roles: [ "readWrite", "dbAdmin" ]})'
MongoDB shell version: 2.4.9
connecting to: 192.168.3.180:27017/test
{
        "user" : "ceilometerdbadmin",
        "pwd" : "693449936c0cdcf9d0da2d3c2246122d",
        "roles" : [
                "readWrite",
                "dbAdmin"
        ],
        "_id" : ObjectId("55419f02f1437115033e6bb6")
}

6、配置数据库信息
sudo vi /etc/ceilometer/ceilometer.conf
[database]
# The SQLAlchemy connection string used to connect to the
# database (string value)
connection = mongodb://ceilometerdbadmin:[email protected]:27017/ceilometer

7、定义一个key

sudo openssl rand -hex 10
sm@controller:~$ sudo openssl rand -hex 10
80f7bb8ca173a3fd8fab

sudo vi /etc/ceilometer/ceilometer.conf
[publisher]
# Secret value for signing metering messages (string value)
metering_secret = 80f7bb8ca173a3fd8fab

8、配置消息信息
sudo vi /etc/ceilometer/ceilometer.conf
[DEFAULT]
rpc_backend = ceilometer.openstack.common.rpc.impl_kombu
rabbit_host = 192.168.3.180
rabbit_port = 5672
rabbit_userid = guest
rabbit_password = mq4smtest

9、配置日志目录
sudo vi /etc/ceilometer/ceilometer.conf
[DEFAULT]
log_dir = /var/log/ceilometer

10、keystone创建ceilometer服务用户和角色


keystone user-create --name=ceilometer --pass=ceilometer4smtest [email protected]
sm@controller:~$ keystone user-create --name=ceilometer --pass=ceilometer4smtest [email protected]
+----------+----------------------------------+
| Property |              Value               |
+----------+----------------------------------+
|  email   |             [email protected]           |
| enabled  |               True               |
|    id    | 4fd9cbdca36f414590adf65cfe343743 |
|   name   |            ceilometer            |
| username |            ceilometer            |
+----------+----------------------------------+

keystone user-role-add --user=ceilometer --tenant=service --role=admin


11、更新配置文件的keystone信息

sudo vi /etc/ceilometer/ceilometer.conf
[DEFAULT]
auth_strategy = keystone
[keystone_authtoken]
auth_uri = http://192.168.3.180:5000
auth_host = 192.168.3.180
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = ceilometer
admin_password = ceilometer4smtest

添加如下section
[service_credentials]
os_auth_url = http://192.168.3.180:5000/v2.0
os_username = ceilometer
os_tenant_name = service
os_password = ceilometer4smtest

12、创建服务
keystone service-create --name=ceilometer --type=metering \
--description="Telemetry"
sm@controller:~$ keystone service-create --name=ceilometer --type=metering \
> --description="Telemetry"
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
| description |            Telemetry             |
|   enabled   |               True               |
|      id     | 8add6525e59c4c4cb62b04065dd0f353 |
|     name    |            ceilometer            |
|     type    |             metering             |
+-------------+----------------------------------+

keystone endpoint-create \
--service-id=$(keystone service-list | awk '/ metering / {print $2}') \
--publicurl=http://192.168.3.180:8777 \
--internalurl=http://192.168.3.180:8777 \
--adminurl=http://192.168.3.180:8777
sm@controller:~$ keystone endpoint-create \
> --service-id=$(keystone service-list | awk '/ metering / {print $2}') \
> --publicurl=http://192.168.3.180:8777 \
> --internalurl=http://192.168.3.180:8777 \
> --adminurl=http://192.168.3.180:8777
+-------------+----------------------------------+
|   Property  |              Value               |
+-------------+----------------------------------+
|   adminurl  |    http://192.168.3.180:8777     |
|      id     | 31f58a6be962408bbd280cf2b5dd747c |
| internalurl |    http://192.168.3.180:8777     |
|  publicurl  |    http://192.168.3.180:8777     |
|    region   |            regionOne             |
|  service_id | 8add6525e59c4c4cb62b04065dd0f353 |
+-------------+----------------------------------+

13、重启服务

sudo service ceilometer-agent-central restart
sudo service ceilometer-agent-notification restart
sudo service ceilometer-api restart
sudo service ceilometer-collector restart
sudo service ceilometer-alarm-evaluator restart
sudo service ceilometer-alarm-notifier restart



二、所有的计算节点,做如下安装

1、sudo apt-get install ceilometer-agent-compute

2、sudo vi /etc/nova/nova.conf
[DEFAULT]
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

3、重启计算服务
sudo service nova-compute restart


4、定义一个key

如果控制节点和计算节点是一台物理机,该Key无需再生成,如果不是,在计算节点需要重新生成)

sudo openssl rand -hex 10

sm@controller:~$ sudo openssl rand -hex 10
80f7bb8ca173a3fd8fab
sudo vi /etc/ceilometer/ceilometer.conf   
[publisher]
# Secret value for signing metering messages (string value)
metering_secret = 80f7bb8ca173a3fd8fab

5、配置消息信息
sudo vi /etc/ceilometer/ceilometer.conf
[DEFAULT]
rpc_backend = ceilometer.openstack.common.rpc.impl_kombu
rabbit_host = 192.168.3.180
rabbit_port = 5672
rabbit_userid = guest
rabbit_password = mq4smtest

6、更新配置文件的keystone信息

sudo vi /etc/ceilometer/ceilometer.conf
[DEFAULT]
auth_strategy = keystone
[keystone_authtoken]
auth_uri = http://192.168.3.180:5000
auth_host = 192.168.3.180
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = ceilometer
admin_password = ceilometer4smtest

添加如下section
[service_credentials]
os_auth_url = http://192.168.3.180:5000/v2.0
os_username = ceilometer
os_tenant_name = service
os_password = ceilometer4smtest

7、配置日志目录
sudo vi /etc/ceilometer/ceilometer.conf
[DEFAULT]
log_dir = /var/log/ceilometer

8、重启服务
sudo service ceilometer-agent-compute restart




三、控制节点为镜像服务配置

1、sudo vi /etc/glance/glance-api.conf
[DEFAULT]
notification_driver = messaging
rpc_backend = rabbit
rabbit_host = 192.168.3.180
rabbit_password = mq4smtest

2、重启服务
sudo service glance-registry restart
sudo service glance-api restart






四、块服务配置(哪个节点有块服务就在哪个节点配置)

1、sudo vi /etc/cinder/cinder.conf
[DEFAULT]
control_exchange = cinder
notification_driver = cinder.openstack.common.notifier.rpc_notifier

2、重启服务
sudo service cinder-api restart
sudo service cinder-scheduler restart
sudo service cinder-volume restart

五、验证安装
1、查看meter列表
ceilometer meter-list
sm@controller:~$ ceilometer meter-list
+--------------------------+------------+-----------+--------------------------------------


+----------------------------------+----------------------------------+
| Name                     | Type       | Unit      | Resource ID                          | User ID                   


       | Project ID                       |
+--------------------------+------------+-----------+--------------------------------------


+----------------------------------+----------------------------------+
| cpu                      | cumulative | ns        | 8f546f0e-4365-4e0e-b1c5-a6a3ec22ef6d | 


9b1cdfc2b5614eb39f042317f54a286c | b500268a41e34752aba847c7ea464870 |
| cpu_util                 | gauge      | %         | 8f546f0e-4365-4e0e-b1c5-a6a3ec22ef6d | 


9b1cdfc2b5614eb39f042317f54a286c | b500268a41e34752aba847c7ea464870 |
| disk.read.bytes          | cumulative | B         | 8f546f0e-4365-4e0e-b1c5-a6a3ec22ef6d | 


9b1cdfc2b5614eb39f042317f54a286c | b500268a41e34752aba847c7ea464870 |
| disk.read.bytes.rate     | gauge      | B/s       | 8f546f0e-4365-4e0e-b1c5-a6a3ec22ef6d | 


9b1cdfc2b5614eb39f042317f54a286c | b500268a41e34752aba847c7ea464870 |
| disk.read.requests       | cumulative | request   | 8f546f0e-4365-4e0e-b1c5-a6a3ec22ef6d | 


9b1cdfc2b5614eb39f042317f54a286c | b500268a41e34752aba847c7ea464870 |
| disk.read.requests.rate  | gauge      | request/s | 8f546f0e-4365-4e0e-b1c5-a6a3ec22ef6d | 


9b1cdfc2b5614eb39f042317f54a286c | b500268a41e34752aba847c7ea464870 |
| disk.write.bytes         | cumulative | B         | 8f546f0e-4365-4e0e-b1c5-a6a3ec22ef6d | 


9b1cdfc2b5614eb39f042317f54a286c | b500268a41e34752aba847c7ea464870 |
| disk.write.bytes.rate    | gauge      | B/s       | 8f546f0e-4365-4e0e-b1c5-a6a3ec22ef6d | 


9b1cdfc2b5614eb39f042317f54a286c | b500268a41e34752aba847c7ea464870 |
| disk.write.requests      | cumulative | request   | 8f546f0e-4365-4e0e-b1c5-a6a3ec22ef6d | 


9b1cdfc2b5614eb39f042317f54a286c | b500268a41e34752aba847c7ea464870 |
| disk.write.requests.rate | gauge      | request/s | 8f546f0e-4365-4e0e-b1c5-a6a3ec22ef6d | 


9b1cdfc2b5614eb39f042317f54a286c | b500268a41e34752aba847c7ea464870 |
| image                    | gauge      | image     | f2b0f15b-bd5e-4766-973c-24547c1faf03 | None                      


       | b500268a41e34752aba847c7ea464870 |
| image.size               | gauge      | B         | f2b0f15b-bd5e-4766-973c-24547c1faf03 | None                      


       | b500268a41e34752aba847c7ea464870 |
| instance                 | gauge      | instance  | 8f546f0e-4365-4e0e-b1c5-a6a3ec22ef6d | 


9b1cdfc2b5614eb39f042317f54a286c | b500268a41e34752aba847c7ea464870 |
| instance:m1.tiny         | gauge      | instance  | 8f546f0e-4365-4e0e-b1c5-a6a3ec22ef6d | 


9b1cdfc2b5614eb39f042317f54a286c | b500268a41e34752aba847c7ea464870 |
+--------------------------+------------+-----------+--------------------------------------


+----------------------------------+----------------------------------+

2、下载镜像服务
glance image-download "cirros-0.3.2-x86_64" > cirros.img
再次查看ceilometer meter-list

3、获得统计信息
ceilometer statistics -m image.download -p 60

五、在horzion里面查看


我们可以看到,管理员项,新增了一个资源使用情况,里面包括日报和统计数据


[部署篇11]VMWare搭建Openstack——Ceilometer的安装与配置_第1张图片


日报

[部署篇11]VMWare搭建Openstack——Ceilometer的安装与配置_第2张图片

统计数据

[部署篇11]VMWare搭建Openstack——Ceilometer的安装与配置_第3张图片

你可能感兴趣的:([部署篇11]VMWare搭建Openstack——Ceilometer的安装与配置)