Components

Status Reporter components

Common components

At its core, Status Reporter contains these three components:

Nginx
is a HTTP reverse proxy handling TLS termination and authentication. It’s role is to provide secure access to the underlying monitoring service from outside a node the Status Reporter is running on.

If Status Reporter is installed on a node which also has Cloudify Manager installed on it, then only one nginx instance will be deployed. In that case just the additional configuration for Status Reporter will be added.

Prometheus
a monitoring and alerting software, which gathers and stores metrics related to Cloudify operation. In case of a fully distributed cluster or a compact cluster installations, Prometheus instances create a federated network in order to exchange information without the involvement of Cloudify Manager.
Prometheus’s node_exporter
is a service responsible for exporting node’s hardware and OS metrics for machines running *NIX kernels. Used by Status Reporter to find out if a required system services (e.g. nginx, PostgreSQL etc.) are running.

Additional components

Each of the nodes gets additional exporters to monitor and report on status of specific services: Managers, Databases, Message Queues. In case of different services running on the same node (e.g. All-in-One environment) more than just one service-specific exporter is deployed.

Manager nodes

Status Reporter deployed on Manager node

Prometheus’s blackbox_exporter on Cloudify Manager nodes
a service for probing HTTP/HTTPS endpoints (among others). Used by Status Reporter to validate that certain crucial Manager’s endpoints return expected HTTP statuses.

Database nodes

Status Reporter deployed on DB node

Prometheus’s postgres_exporter on database nodes
a service which provides a good deal of PostgreSQL server metrics. Used by Status Reporter to monitor health of a database engine.

Message Queue nodes

Status Reporter deployed on Message Queue node

RabbitMQ rabbitmq_prometheus plugin on message queue nodes
RabbitMQ (as of 3.8.0) comes with a plugin which makes its metrics available for Prometheus. It is used by Status Reporter to monitor RabbitMQ’s status.