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.
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.
- 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.
- 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
- 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.