Hardware Extension for Ceilometer

Ceilometer Introduction

Ceilometer is a monitoring tool for OpenStack cloud environments. In the next OpenStack release called Havana it will take part as a core component. However, Ceilometer is also available for the OpenStack releases Folsom and Grizzly. Currently Ceilometer offers only data of the OpenStack core components and the virtual machines of the cloud. For this reason the ICCLab decided to extend Ceilometer in a way that it is possible to collect data from hardware devices as well.

Ceilometer Extension – Concept

The collection of the data from the hardware devices should be independent and expandable. Therefore, a new Ceilometer agent with a modular structure is needed. We call this agent Hardware Agent. In the picture below the conceptual architecture is shown.

conceptual architecture

Conceptual Architecture Ceilometer Hardware Extension

As the Hardware Agent is part of Ceilometer it is installed nearly on every physical server. The Hardware Agent should be able to poll the data from various sources like IPMI, SMART or SNMP through Inspectors on different devices. This allows the Hardware Agent to get data from devices like switches or router.
It should be possible to deactivate each of these sources globally or per host. Which data will be extracted of the source should also be configurable globally or per host. The structured data is stored in Pollsters.
The Hardware Agent sends the collected data to the Ceilometer Event Bus which is in general a rabbit message queue. The central Ceilometer Collector takes the messages and stores it on a database. Through the Ceilometer API the data could be read by other systems like a billing and rating system or a graphical depiction.

Ceilometer Extension – Configuration Example

The configuration of the Hardware Agent allows the administrator to deactivate Pollsters and Inspectors globally or per device/host. The host settings take only place when no global settings are set.
To access the sources it might be necessary to set additional information like username or password. This configuration could be set globally or per host. If there is no host configuration the Hardware Agent takes the global configuration. If none of both configurations are set the inspector takes standard values to access the sources.

Configuration Sequence

Configuration Sequence of the Hardware Agent

These configurations could be set in /etc/ceilometer/hardware-agent.conf in this way:

disabled_hardware_pollsters=network
disabled_hardware_inspectors=ipmi
hardware_inspector_configurations = {“snmp” :
{“securityName”: “public”, “port”: 161}}

hardware_hosts={“10.0.0.1” :
{“disabled_pollsters”: [“cpu”],
“disabled_inspectors”: [“smart”],
“inspector_configurations”:
{“snmp” : {“port”: 163}}},
“10.0.0.2” :{…}}

Ceilometer Extension – Status and Prospect

With the programmed extension it is possible to get data of CPU (1,5 and 15 minutes usage in %), network (incoming/outcoming traffic in bytes, number of errors) storage(used/total space in bytes) and memory(used/total space in bytes) from any devices over SNMP. With new Inspectors it is imaginable to get more data of new sources like IPMI or SMART.
The base of the Ceilometer extension is currently being reviewed by other Ceilometer programmers (Review). If the review succeeds the extension take place in the Havana release of OpenStack in October 2013.

Leave a Reply

Your email address will not be published. Required fields are marked *