The Abiquo VM monitoring and metrics feature enables you to obtain a rapid and convenient overview of VM performance through the Abiquo cloud console. Abiquo supports monitoring and metrics of VMs on AWS, Azure, ESXi with vCenter, KVM, and XenServer, as well as Docker.
This feature supports the following metrics:
The following diagram shows a basic monitoring and metrics configuration.
In addition to metrics, the Monitoring Server also manages:
In a test environment, install the Monitoring OVA that is a CentOS server with the monitoring server components (Watchtower server, KairosDB, and Cassandra). For full instructions on how to install it, see OVA deployment. In a production environment, a monitoring server would typically have 4 CPUs and 16 GB RAM.
For a larger production environment, you can install separate servers:
After you complete the install, perform the following configuration:
In cassandra.yaml, set the following properties:
Set KairosDB properties (with default location /opt/kairosdb/conf/kairosdb.properties) as required for your environment and noting the following recommendations:
Monitoring data retention time: KairosDB manages the data in Cassandra and you can set the the "time to live" for datapoints with the kairosdb.datastore.cassandra.datapoint_ttl property as described here: https://github.com/kairosdb/kairosdb/blob/v0.9.4/src/main/resources/kairosdb.properties#L91-L95
Cassandra will automatically delete a datapoint after its time to live has elapsed. By default, the property is not set and Cassandra will keep datapoints forever. By default the datapoints are stored in the /var/lib/cassandra/data/kairosdb folder
Note that when the platform deletes a metric, it will delete the datapoints in KairosDB
The number of datapoints to send to Cassandra in large environments. Before you begin, set the Cassandra batch_size properties above. For best performance, set:
kairosdb.queue_processor.batch_size=10000. See https://github.com/super-collider/docker-openjdk8-kairosdb/blob/master/kairosdb.properties#L193-L204
On remote services (Monolithic and Remote Services, but not V2V services), edit the abiquo.properties file to add the following properties.
Remember to restart your Abiquo Tomcat service.
Optional configuration for KVM hypervisor
Configure KVM properties
Abiquo Watchtower uses two types of storage: MySQL (the watchtower schema on the Abiquo MySQL database server) and KairosDB with Cassandra. For messaging, it uses the Abiquo RabbitMQ instances used by the Abiquo API server with queues for Evaluation and Notification.
Abiquo Watchtower has two main modules, called "abiquo-emmett" and "abiquo-delorean". These services receive metric data, and evaluate and notify alarms and alerts, as shown in the following diagram.
How to use VM monitoring, metrics, alarms and alerts
Note that the monitoring configuration files are stored under the /etc/abiquo/watchtower path.
The Abiquo UI displays the VM monitoring information, and enables you to manage alarms and alerts. See the following pages:
The monitoring information is also available through the API, and for information about alarms and alerts, see the following pages:
The functionality to push custom metrics is not available through the UI. See the API documentation pages for each data entity that supports custom metrics. For example, for a VM:
Similar methods are available for other resources.
Abiquo supports collectd for custom metrics collection on Linux VMs. The Abiquo-collectd-plugin automatically pushes the values gathered by collectd to the Abiquo API. There is a specific Abiquo API endpoint that the plugin uses to perform the push. As with other custom metrics, the Abiquo API then pushes the collectd metrics to the Abiquo Monitoring Server. You can use this method for hypervisors and providers where Abiquo does not support built-in metrics.
To install and configure collectd
Abiquo recommends the following use case: