1.概述
Ceilometer是OpenStack中的一个子项目。它像一个漏斗一样。能把OpenStack内部发生的差点儿全部的事件都收集起来,然后为计费和监控以及其他服务提供数据支撑。Ceilometer的核心架构图例如以下:
图1 Ceilometer的核心架构图
图2 Ceilometer架构模型
2.安装
2.1安装服务
apt-get install ceilometer-api
ceilometer-collector ceilometer-agent-central python-ceilometerclient2.2配置
/etc/ceilometer/ceilometer.conf
[DEFAULT]
#rabbitMQ
rabbit_host = client
rabbit_password = 12345
rabbit_hosts = client:5672
rabbit_userid = guest
[database]
connection = mysql://ceilometer:12345@client/ceilometer
[publisher_rpc]
metering_secret = ADMIN
[keystone_authtoken]
auth_host = client
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = ceilometer
admin_password = ceilometers
2.3在keystone中创建ceilometer用户和服务endpoint
keystone user-create –name=ceilometer
–pass=CEILOMETER_PASS –email=ceilometer@example.comkeystone user-role-add –user=ceilometer
–tenant=service –role=adminkeystone service-create –name=ceilometer
–type=metering –description=”Ceilometer Telemetry Service”keystone endpoint-create
–service-id=the_service_id_above –publicurl=http://controller:8777/ –internalurl=http://controller:8777/ –adminurl=http://controller:8777/2.4创建ceilometer的mysql数据表
ceilometer-dbsync
2.5重新启动服务
service ceilometer-agent-central restart
service ceilometer-api restart
service ceilometer-collector restart
3.API
3.1 Resources资源
获取资源的信息。
GET http://HOST:8777/v2/resources
列出全部资源的定义。
GET http://HOST:8777/v2/resources/{resource_id}
获取指定的资源的具体信息。
3.2 Meters计量
获取计量信息。
GET http://HOST:8777/v2/meters
到眼下为止的计量数据列表。
GET http://HOST:8777/v2/meters/{meter_id}
获取指定ID的计量信息。
POST http://HOST:8777/v2/meters/{meter_id}
更新指定ID的计量信息列表。
GET http://HOST:8777/v2/meters/{meter_id}/statistics
计算在指定的时间范围内的样本的统计信息。
3.3 Alarms告警
列表,创建。获取具体信息。更新和删除报警。
GET http://HOST:8777/v2/alarms
依据指定查询,列出了警报。
POST http://HOST:8777/v2/alarms
创建一个报警。
GET http://HOST:8777/v2/alarms/{alarm_id}
获取指定ID的报警信息。
PUT http://HOST:8777/v2/alarms/{alarm_id}
更新指定ID的报警。
PUT http://HOST:8777/v2/alarms/{alarm_id}/state
设置一个指定ID的报警状态。
GET http://HOST:8777/v2/alarms/{alarm_id}/state
获取指定ID的报警状态。
GET http://HOST:8777/v2/alarms/{alarm_id}/history
组装指定ID的报警历史记录。
4.OpenStack服务的监控
4.1Compute (Nova)
全部计量来自实例。不宿主机.
名称 | 类型 | 单位 | 资源 | Origin | 说明 |
instance | Gauge | instance | inst ID | both | Duration of instance |
instance:<type> | Gauge | instance | inst ID | both | Duration of instance <type> (openstack types) |
memory | Gauge | MB | inst ID | notification | Volume of RAM in MB |
cpu | Cumulative | ns | inst ID | pollster | CPU time used |
cpu_util | Gauge | % | inst ID | pollster | Average CPU utilisation |
vcpus | Gauge | vcpu | inst ID | notification | Number of VCPUs |
disk.read.requests | Cumulative | request | inst ID | pollster | Number of read requests |
disk.write.requests | Cumulative | request | inst ID | pollster | Number of write requests |
disk.read.bytes | Cumulative | B | inst ID | pollster | Volume of read in B |
disk.write.bytes | Cumulative | B | inst ID | pollster | Volume of write in B |
disk.root.size | Gauge | GB | inst ID | notification | Size of root disk in GB |
disk.ephemeral.size | Gauge | GB | inst ID | notification | Size of ephemeral disk in GB |
network.incoming.bytes | Cumulative | B | iface ID | pollster | number of incoming bytes on the network for a VM interface |
network.outgoing.bytes | Cumulative | B | iface ID | pollster | number of outgoing bytes on the network for a VM interface |
network.incoming.packets | Cumulative | packet | iface ID | pollster | number of incoming packets for a VM interface |
network.outgoing.packets | Cumulative | packet | iface ID | pollster | number of outgoing packets for a VM interface |
At present, most of the Nova meters will
only work with libvirt front-end hypervisors while test coverage was mostly done based on KVM. Contributors are welcome to implement other virtualization backends’ meters or complete the existing ones.4.2 Network (Neutron)
名称 | 类型 | 单位 | 资源 | Origin | 说明 |
network | Gauge | network | netw ID | notification | Duration of network |
network.create | Delta | network | netw ID | notification | Creation requests for this network |
network.update | Delta | network | netw ID | notification | Update requests for this network |
subnet | Gauge | subnet | subnt ID | notification | Duration of subnet |
subnet.create | Delta | subnet | subnt ID | notification | Creation requests for this subnet |
subnet.update | Delta | subnet | subnt ID | notification | Update requests for this subnet |
port | Gauge | port | port ID | notification | Duration of port |
port.create | Delta | port | port ID | notification | Creation requests for this port |
port.update | Delta | port | port ID | notification | Update requests for this port |
router | Gauge | router | rtr ID | notification | Duration of router |
router.create | Delta | router | rtr ID | notification | Creation requests for this router |
router.update | Delta | router | rtr ID | notification | Update requests for this router |
ip.floating | Gauge | ip | ip ID | both | Duration of floating ip |
ip.floating.create | Delta | ip | ip ID | notification | Creation requests for this floating ip |
ip.floating.update | Delta | ip | ip ID | notification | Update requests for this floating ip |
4.3Image (Glance)
名称 | 类型 | 单位 | 资源 | Origin | 说明 |
image | Gauge | image | image ID | both | Image polling -> it (still) exists |
image.size | Gauge | B | image ID | both | Uploaded image size |
image.update | Delta | image | image ID | notification | Number of update on the image |
image.upload | Delta | image | image ID | notification | Number of upload of the image |
image.delete | Delta | image | image ID | notification | Number of delete on the image |
image.download | Delta | B | image ID | notification | Image is downloaded |
image.serve | Delta | B | image ID | notification | Image is served out |
4.4Volume (Cinder)
名称 | 类型 | 单位 | 资源 | Origin | 说明 |
volume | Gauge | volume | vol ID | notification | Duration of volume |
volume.size | Gauge | GB | vol ID | notification | Size of volume |
4.5Object Storage (Swift)
名称 | 类型 | 单位 | 资源 | Origin | 说明 |
storage.objects | Gauge | object | store ID | pollster | Number of objects |
storage.objects.size | Gauge | B | store ID | pollster | Total size of stored objects |
storage.objects.containers | Gauge | container | store ID | pollster | Number of containers |
storage.objects.incoming.bytes | Delta | B | store ID | notification | Number of incoming bytes |
storage.objects.outgoing.bytes | Delta | B | store ID | notification | Number of outgoing bytes |
storage.api.request | Delta | request | store ID | notification | Number of API requests against swift |
storage.containers.objects | Gauge | object | str ID/cont | pollster | Number of objects in container |
storage.containers.objects.size | Gauge | B | str ID/cont | pollster | Total size of stored objects in container |
4.6Energy (Kwapi)
名称 | 类型 | 单位 | 资源 | Origin | 说明 |
energy | Cumulative | kWh | probe ID | pollster | Amount of energy |
power | Gauge | W | probe ID | pollster | Power consumption |