Monitoring Formula

The monitoring services in Uyuni are configured using formulas with forms. The package is installed by default, and contains these formulas:

  • Grafana

  • Prometheus

  • Prometheus Exporters

For more information about using monitoring, see Monitoring with Prometheus and Grafana.

1. Grafana

Procedure: Configuring the Grafana Formula
  1. Navigate to the Formulas  Grafana tab, and set these parameters in the Grafana section:

    • Check the Enabled box to enable Grafana visualizations.

      Initial admin password is used on the first run only, and Grafana UI prompts to change it. This field cannot be used to change the Grafana password. For more information on how to change the password, see Monitoring with Prometheus and Grafana.

  2. For each Prometheus data source you want to use, in the Datasources  Prometheus section, click +, and set these parameters:

    • In the Datasource name field, type a name to identify the data source.

    • In the Prometheus URL field, type the used protocol, the location of the Prometheus server, and append port 9090. For example, http://example.com:9090. In case TLS encryption is enabled in Prometheus formula make sure to use https protocol and FQDN.

    • In the fields Prometheus server username and Prometheus server password, enter basic authentication credentials for Prometheus server matching the ones in Prometheus formula.

  3. In the Dashboards section, check the dashboards you want to use:

    • Uyuni server dashboard

    • Uyuni clients dashboard

    • PostgreSQL dashboard

    • Apache HTTPD dashboard

    • Kubernetes cluster dashboard

    • Kubernetes etcd dashboard

    • Kubernetes namespaces dashboard

  4. Click Save Formula to save your configuration.

2. Prometheus

Procedure: Configuring the Prometheus Formula
  1. Navigate to the Formulas  Prometheus tab, and set these parameters in the Prometheus section:

    • Check the Enabled box to enable Prometheus monitoring.

    • In the Scrape interval field, type the frequency of data scraping, in seconds. For example, 15 will scrape data every fifteen seconds.

    • In the Evaluation interval field, type the frequency of rules evaluation, in seconds. For example, 15 will evaluate alerting and aggregation rules every fifteen seconds.

  2. In the TLS section, set these parameters:

    • Check the Enabled box to enable the secure configuration on Prometheus server.

    • In the Server Certificate field, type the path to the TLS server certificate.

    • In the Server Key field, type the path to the TLS server key.

    • In the User field, type the user name for Prometheus server.

    • In the Password Hash field, type the password for Prometheus server hashed with bcrypt.

  3. In the Uyuni Server section, set these parameters:

    • Check the Enabled box to enable monitoring on this server.

    • Check the Autodiscover clients box to enable Prometheus to automatically find and monitor new clients when they are added to the server.

    • In the Username field, type the user name of the Prometheus account on the server.

    • In the Password field, type the password of the Prometheus account on the server.

    • In the Targets TLS section, set these parameters:

      • Check the Enabled box to enable the secure configuration for auto-discovered targets.

      • In the CA Certificate field, type the path to the Certificate Authority certificate.

      • In the Client Certificate field, type the path to the TLS client certificate for authentication.

      • In the Client Key field, type the path to the TLS client key for authentication.

  4. In the Alerting section, set these parameters:

    • Check the Enable local Alertmanager service box to enable the alert manager service.

    • Check the Use local Alertmanager box to use the local alert manager service.

  5. For each alert manager you want to use, in the Alerting  Alertmanagers section, click +, and set these parameters:

    • In the IP Address:Port field, type the location of the alert manager target, including the port number.

  6. To use a rule file, in the Alerting  Rule Files section, click +, and set these parameters:

    • In the Rule Files field, type the location of the rule file you want to use.

  7. To add a custom scrape configuration, in the User defined scrape configurations section, click +, and set these parameters:

  8. Click Save Formula to save your configuration.

The formula does not generate and deploy the TLS certificates and keys. Ensure the files are present on the Salt client and readable for the user prometheus before applying the highstate. For more information about generating client and server certificates, see Monitoring with Prometheus and Grafana.

3. Prometheus Exporters

Procedure: Configuring the Prometheus Exporters Formula
  1. Navigate to the Formulas  Prometheus Exporters tab, and set these parameters in the Node Exporter section:

    • Check the Enabled box to enable the node exporter.

    • In the Arguments field, type any customized arguments for this exporter. For example, --web.listen-address=":9100".

  2. In the Apache Exporter section:

    • Check the Enabled box to enable the Apache exporter.

    • In the Arguments field, type any customized arguments for this exporter. For example, --telemetry.address=":9117".

  3. In the Postgres Exporter section:

    • Check the Enabled box to enable the PostreSQL exporter.

    • In the Data source Name field, type the name of the data source to use.

    • In the Arguments field, type any customized arguments for this exporter. For example, --web.listen-address=":9187".

  4. In the TLS section:

    • Check the Enabled box to enable the secure configuration.

    • In the CA Certificate field, type the path to the Certificate Authority certificate.

    • In the Server Certificate field, type the path to the TLS server certificate.

    • In the Server Key field, type the path to the TLS server key.

  5. Click Save Formula to save your configuration.

3.1. File-based service discovery

It is possible to define monitored targets using file-based service discovery provided in the Prometheus formula. This is a basic example demonstrating the usage:

[
  {
    "targets": [ "<client1>:9100", "<client2>:9100" ],
    "labels": {
      "role": "<suma-client>",
      "job": "<suma-refclient>"
    }
  },
  {
    "targets": [ "<server>:80" ],
    "labels": {
      "role": "<suma-server>",
      "job": "<suma-refhost>",
      "__metrics_path__": "/rhn/metrics"
    }
  }
]

For more information, see https://prometheus.io/docs/guides/file-sd/.

3.2. TLS certificates and keys

The formula does not generate and deploy the TLS certificates and keys. Ensure the files are present on the Salt client and readable for the user prometheus before applying the highstate. For more information about generating client and server certificates, see Monitoring with Prometheus and Grafana.

4. Activate Forms

When you have completed and saved all the forms, apply the highstate.

For more information about using monitoring, see Monitoring with Prometheus and Grafana.