Monasca is a open-source multi-tenant, highly scalable, performant, fault-tolerant monitoring-as-a-service solution that integrates with OpenStack. It uses a REST API for high-speed metrics processing and querying and has a streaming alarm engine and notification engine.
-
Monitoring API (monasca-api) : A RESTful API
-
Monitoring Client (python-monascaclient) : A Python command line client and library that communicates and controls the Monitoring API.
-
Monitoring Agent (monasca-agent) : A modern Python monitoring agent for gathering metrics and sending them to the Monasca API.
-
Persister (monasca-persister) : Consumes metrics and alarm state transitions from Kafka and stores them in InfluxDB
-
Threshold Engine (monasca-thresh) : Computes thresholds on metrics and publishes alarms to Kafka when exceeded. The current state is also saved in the MySQL database. Based on Apache Storm.
-
Notification Engine (monasca-notification) : This engine reads alarms from Kafka and then notifies the customer using their configured notification method.
-
Monitoring UI (monasca-ui) : A Horizon dashboard for visualizing the overall health and status of an OpenStack cloud.
-
Message Queue ( Kafka ) : A third-party component that primarily receives published metrics from the Monitoring API and alarm state transition messages from the Threshold Engine that are consumed by other components, such as the Persister and Notification Engine.
-
Metrics and Alarms Database ( InfluxDB ) : : A third-party component that primarily stores metrics and the alarm state history
In this tutorial we will install Monasca on OpenStack Liberty release on three nodes (controller nodes) based on CentOS 7.
![](Monasca Architecture.png)