Table of Contents | ||
---|---|---|
|
...
This feature supports the following metrics:
Built-in metrics from each hypervisor and public cloud plugin; the monitor manager (VSM remote service) fetches these metrics periodically
Custom metrics with two options:
user configures and populates custom metrics using the Abiquo API
user configures custom metrics in
collectd
and the Abiquocollectd
plugin populates them
The following diagram shows a basic monitoring and metrics configuration.
...
In addition to metrics, the Monitoring Server server also manages:
Metric alarms that detect when metrics reach threshold levels
Alerts that activate when a set of alarms are triggered. Alerts can notify users or trigger actions on VMs, such as autoscaling
...
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 small production environment, a monitoring server would typically have 4 CPUs and 16 GB RAM.
For a larger large production environment, you can install a cluster of monitoring servers. See Distributed HA cluster environment. In a new distributed scalable environment, you can install a cluster with one server.
...
The monitoring components are:
Watchtower server
KairosDB
Cassandra, where you can also use these configurations in order of scale:
On Kairos DB server
Separate server
Cluster
...
Edit the
/etc/cassandra/conf/cassandra.yml
or/etc/cassandra/default.conf/cassandra.yaml
file. Check Cassandra documentation for more details.
Add the following configuration, then save and close the file.Set
batch_size_warn_threshold_in_kb
:50
Set
batch_size_fail_threshold_in_kb
:70
If there is a line starting with
kairosdb.datastore.cassandra.datapoint_ttl
remove it.Configure seeds with the KairsoDB IP (even if it's on the same server)
Set the Broadcast address
Edit the file
/opt/kairosdb/conf/kairosdb.properties
and configure as required, also making these recommended changes:Set monitoring data retention time: KairosDB manages the data in Cassandra, so you can set the time to live for Cassandra datapoints.
By default, the property is not set and Cassandra will keep datapoints forever, which will require a LOT of hard disk space
You can find the datapoints in the
/var/lib/cassandra/data/kairosdb
folderWhen the platform deletes a metric, it will delete the datapoints in KairosDB
Example:
kairosdb.datastore.cassandra.datapoint_ttl = 15768000
Reference: https://github.com/kairosdb/kairosdb/blob/v0.9.4/src/main/resources/kairosdb.properties#L91-L95
Check that the Cassandra CQL host list property is in the correct format. For example:
kairosdb.datastore.cassandra.cql_host_list=192.168.888.999
You may need to add
cql_
prefix and remove a port number
The number of datapoints to send to Cassandra in large environments. Set the Cassandra batch_size properties.
For best performance, setkairosdb.queue_processor.batch_size=10000
See https://github.com/super-collider/docker-openjdk8-kairosdb/blob/master/kairosdb.properties#L193-L204
You can configure KairosDB logs to store data for 7 days only
Firewall:
On the Watchtower server, enable the Abiquo Server and ALL the Remote Services servers (except separate V2V services) to access
36638/tcp
On the Abiquo Server (or Datanode), allow Watchtower to access RabbitMQ
In multi-server environments:
On the KairosDB server, allow Abiquo Watchtower to access
8080/tcp
On the Cassandra servers, allow KairosDB to access Cassandra on the configured ports(by default these are
9042/tcp
and9160/tcp
)From the Watchtower, allow access to the Watchtower MySQL database on port
3306/tcp
.Allow access to Emmett on port
7000/tcp
Synchronize server clocks: you MUST configure and synchronize NTP across all Abiquo servers and all hypervisors before you enable metrics.
Monitoring will not send alerts if you do not synchronize the time on ALL servers, including the Watchtower server and hypervisors (ESXi and vCenter servers)On remote services (Monolithic and Remote Services, but not V2V services), edit the
abiquo.properties
file to add the following properties.Code Block # Enable/disable monitoring and alarms abiquo.monitoring.enabled = true # Address where watchtower is located abiquo.watchtower.host=IP_OF_YOUR_WATCHTOWER_INSTALLATION # If you are using a monitoring cluster, enter the IP of the master host # Port where watchtower is listening abiquo.watchtower.port=36638
Remember to restart your Abiquo Tomcat service to activate the properties.
Add the Watchtower servers to your platform monitoring system. See Monitor platform servers
Within Abiquo, to configure fetch and display of metrics by default
Go to Configuration → General
Select the Enable virtual machine monitoring by default option. The new value will apply to all VMs created after you change the value.
Create a VM and go to Monitoring. Check that the Fetch metrics checkbox is selected
Within Abiquo, assign users privileges to view and manage metrics, alarms, and alerts as required
...
Abiquo Watchtower has two main modules, called abiquo-emmett
and abiquo-delorean
.
Emmett manages metrics, alarms, and alerts. It receives metric data and obtains alarm details, and requests alarm evaluation
Delorean evaluates alarms and updates status changes. Then it evaluates the related alerts, and updates status changes
Abiquo API notifies subscribers and creates events
...
...
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:
...