Status Reporter components

Common components

At its core, Status Reporter contains these three components:

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.

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.