/occimon-live

A VirtualBox testbed with a monitoring infrastructure configured using the OCCI Monitoring model

Primary LanguageShellGNU General Public License v2.0GPL-2.0

occimon-live

(Short URL: tinyurl.com/occimon)

A VirtualBox testbed with a monitoring infrastructure configured using the OCCI Monitoring model

Summary

This repository provides a simple demo of the OCCI Monitoring extension. The demo does not contain the OCCI front-end, the one across which the user inputs the description of the monitoring framework, and assumes that the description has already been loaded in a web server. Instead, the demo contains the engine that, using the description, creates the monitoring framework.

The monitored provision is composed of three VMs

  • server - it is the web server that delivers the description as HTTP response content (encoded in JSON),
  • sensor - it represents the entity that manages the monitoring stream,
  • pc1 - it is the target resource of the monitoring activity.

The testbed is generated by Vagrant with a single vagrant up command. Next you run the commands that create the monitoring infrastructure.

The sample monitoring consists of the measurement of the CPU load on the resource, and the connectivity with another host: the CPU load is filtered using a Exponentially Weighted Moving Average, and delivered to the guest machine as UDP datagrams on port 8888, while the connectivity is recorded in a logfile (partially implemented).

You can modify the configuration files to create an infrastructure at your taste.

HOWTO

You need to have DropBox and Vagrant (version > 1.6.5) installed on the guest machine to run the demo. The first time you need also a fast Internet connection to download approx. 500Mb for a disk image (a Vagrant box)

  • Clone this repository
  • Run
$ vagrant up

The system is generated and booted. The first time you run this command a disk image is downloaded, so expect a significant delay.

Launch the HTTP server on server. It provides the web pages containing the OCCI documents:

me@mydesktop:~/demodir$ vagrant ssh server
...
vagrant@server:~$ sudo service httpserver start
 * Starting HTTP server

Launch the metric container on pc1. Use the command probe.sh with the id of the monitored resource urn:uuid:c2222

me@mydesktop:~/demodir$ vagrant ssh pc1
...
vagrant@pc1:~$ ./probe.sh urn:uuid:c2222
Launch collector endpoint http://192.168.5.2:6789/urn:uuid:c2222
Metric container is ready (192.168.5.3:12312)

The metric container is now up and running, and waits for input from the sensor.

Launch the sensor container on sensor. Use the command sensor.sh with the id of the sensor resource(s): urn:uuid:s1111

me@mydesktop:~/demodir$ vagrant ssh sensor
...
vagrant@sensor:~$ ./sensor.sh urn:uuid:s1111
Launching sensor urn:uuid:s1111
Sensor receiving from TCP socket 192.168.5.6:52812
Launching remote collectors: [urn:uuid:2345]
Sensor launching collector from 192.168.5.3:12312
Logging true to my/log/file
ewma input: 1.0
sendudp: sending 1.0
Logging true to my/log/file
ewma input: 1.0
sendudp: sending 1.0
...

The sensor description is loaded from the web server. The sensor thread opens an input socket and fetches from the server the description of the collector. Using this information it instructs the metric container on pc1 to start its activity. Data is received, processed with the EWMA filter, and delivered as a stream of datagrams to the guest machine.

Now you can switch on the guest machine and observe the stream of UDP packets:

me@mydesktop:~/Desktop$ nc -ul 8888
Data: 2.3689306
Data: 2.2884052
Data: 2.2126167
Data: 2.1412864
...

Under the hood...

The configuration files are in the www directory: you can play with them. In order to see the results you need to stop the whole and restart the server, and the components.

To restart the server

sudo service httpserver restart

References

research paper that illustrates the concepts behind the extension and how it works

Ciuffoletti, Augusto (2014) A simple and generic interface for a Cloud Monitoring System. In: CLOSER 2014 - 4th International Conference on Cloud Computing and Services Science, April 2-5 2014, Barcelona.

proposal a draft of the OGF document that defines the extension repository of the Java code of the metricContainer and of the sensorContainer as an Eclipse project.

Who do I talk to?

  • augusto.at.di.unipi.it
  • OCCI working group maillist