SaltStack Config expose plusieurs mesures système qui peuvent être utilisées pour la surveillance et les diagnostics. Ces mesures sont disponibles sous forme graphique sur le tableau de bord de l'interface utilisateur de SaltStack Config et sous forme lisible par machine en utilisant le point de terminaison HTTP /metrics.

Cette page décrit les mesures disponibles et comment connecter des outils tiers à SaltStack Config pour récupérer des données de mesures. Pour plus d'informations sur la visualisation des rapports dans l'interface utilisateur de SaltStack Config à l'aide du tableau de bord, reportez-vous à la section Tableau de bord.

Mesures lisibles par machine

SaltStack Config exporte les mesures système au format texte OpenMetrics. Ce format est directement exploitable par Prometheus et d'autres outils de surveillance et d'alerte. Pour plus d'informations, reportez-vous à la section Configuration de Prometheus pour se connecter à SaltStack ConfigConfiguration de Prometheus pour une connexion à SaltStack Config.

Configuration des mesures de SaltStack Config

La configuration de la collecte des mesures système se compose des paramètres suivants dans le fichier de configuration /etc/raas/raas. Les valeurs par défaut sont affichées.

# System metrics settings
metrics:
  enabled: true                         # If True, enable the collection of system metrics
  prometheus: false                     # If True, enable the Prometheus endpoint at /metrics
  prometheus_username:                  # Static username for retrieving /metrics
  prometheus_password:                  # Static password for retrieving /metrics
  snapshot_interval: 60                 # How often to record snapshot metrics, in seconds
  max_query_timedelta: 86400            # Maximum timedelta for a single call to get_system_metrics, in seconds
  keep: 30                              # How long to retain metrics data, in days

Les paramètres suivants contrôlent le traitement des mesures système lisibles par la machine :

  • Pour désactiver la collecte des mesures, définissez enabled:false. Notez que cela désactivera également le tableau de bord intégré de SaltStack Config.
  • Pour activer l'exportation de mesures lisibles par machine depuis le point de terminaison HTTP /metrics, définissez prometheus:true. Ce paramètre n'affecte pas le tableau de bord intégré de SaltStack Config.
  • L'accès au point de terminaison HTTP /metrics est contrôlé par l'authentification HTTP de base avec des informations d'identification configurées dans prometheus_username et prometheus_password. Des valeurs non vides sont requises pour ces paramètres afin d'activer le point de terminaison /metrics. Ces informations d'identification sont stockées uniquement dans le fichier de configuration /etc/raas/raas, ne sont associées à aucun compte SaltStack Config et ne peuvent pas être utilisées pour s'authentifier auprès de SaltStack Config autrement que pour accéder au point de terminaison HTTP /metrics.

Les autres paramètres indiqués ci-dessus se rapportent au tableau de bord intégré de SaltStack Config et n'affectent pas la collecte ou la création de rapports de mesures système lisibles par machine. En particulier, le paramètre snapshot_interval détermine la fréquence, en secondes, d'enregistrement des mesures pour l'affichage sur le tableau de bord, et le paramètre keep détermine la durée, en jours, de conservation des données de mesures dans la base de données avant d'être supprimées.

Bien que le point de terminaison HTTP /metrics constitue le moyen recommandé de collecter des données de mesures lisibles par machine à partir de SaltStack Config, vous pouvez utiliser l'API (RaaS) pour récupérer les données présentées sur le tableau de bord intégré. L'API stats.get_system_metrics() permet d'interroger les données de mesures par nom de mesure, source et plage de dates. L'élément de configuration max_query_timedelta limite la quantité de données renvoyée par SaltStack Config via un seul appel d'API. Pour obtenir des données de mesures d'une période plus longue, vous pouvez effectuer plusieurs appels d'API avec des dates de début et de fin différentes.

Configuration des mesures de master Salt

La disponibilité de certaines mesures dépend de la configuration des masters Salt connectés à SaltStack Config :

  • Les mesures sur les événements Salt et les retours de tâches seront précises uniquement si le système de retour sseapi est configuré sur les masters Salt. La collecte des mesures ne fonctionne pas correctement avec le système de retour sse_pgjsonb (transfert direct vers la base de données).
  • SaltStack Config collecte des informations d'exécution de fonction de bas niveau auprès des masters Salt master_stats:true définies dans leur configuration. Cette option est désactivée par défaut. Pour plus de détails, reportez-vous à la section master_stats dans la documentation de Salt.
  • Les mesures sur les états des tâches Salt seront précises uniquement si le moteur d'achèvement de tâche est activé dans le plug-in master Salt :
    engines:
       -jobcompletion:{}

    Ce moteur est activé dans la configuration par défaut du plug-in master Salt.

Configuration de Prometheus pour une connexion à SaltStack Config

Vous pouvez activer un serveur Prometheus pour récupérer des mesures de SaltStack Config en ajoutant une tâche scrape_configs à la configuration de Prometheus (généralement prometheus.yml) pour chaque instance de serveur API (RaaS) dont vous disposez :

scrape_configs:
  - job_name: 'sse'

    metrics_path: '/metrics'
    scheme: 'http'

    static_configs:
        - targets: ['localhost:8080']

    basic_auth:
      username: prometheus
      password: metrics

Les informations d'identification de la configuration Prometheus doivent correspondre aux entrées prometheus_username et prometheus_password spécifiées dans le fichier de configuration /etc/raas/raas, comme indiqué ci-dessus.

Consultez la documentation du projet Prometheus pour plus d'informations sur la configuration des cibles d'extraction et d'autres rubriques de configuration de Prometheus.

Note : Dans le cadre de l'initiative de VMware visant à supprimer la terminologie problématique, le terme master Salt sera remplacé par un meilleur terme dans SaltStack Config et les produits associés, ainsi que dans la documentation. Cette mise à jour terminologique peut s'étendre sur plusieurs cycles de publication.

Descriptions des mesures

Les mesures lisibles par machine exportées par SaltStack Config relèvent de plusieurs catégories :

Catégorie Nom de la mesure Type de mesure Étiquettes Description
Mesures de bas niveau de master Salt salt_event_size_bytes Histogramme master_id Taille de l'événement Salt en octets
salt_master_cmd_duration_seconds Histogramme master_id, cmd Durée de la commande de master Salt en secondes. Signalé uniquement si master_stats est configuré sur le master Salt.
         
Mesures du plug-in master Salt raas_master_commands_processed Compteur master_id Commandes SSE traitées
raas_master_master_grains_pushed Compteur master_id Grains de master Salt mis à jour transmis à SaltStack Config
raas_master_minion_keys_pushed Compteur master_id Mises à jour d'états de clés de minion transmises à SaltStack Config
raas_master_minion_cached_pushed Compteur master_id Mises à jour du cache de minion transmises à SaltStack Config
raas_master_masterfs_pushed Compteur master_id Mises à jour de MasterFS transmises à SaltStack Config
raas_master_sseapi_engine_iteration_seconds Histogramme master_id Durée d'itération du moteur API (RaaS) en secondes
         
Mesures de serveur redis_commands_executed Compteur redis_instance Commandes Redis exécutées (cache système)
redis_memory_bytes Jauge redis_instance Utilisation de la mémoire de Redis (cache système)
celery_tasks_queued Compteur raas_instance, task Tâches Celery en file d'attente (tâches en arrière-plan)
celery_tasks_executed Compteur raas_instance, task Tâches Celery exécutées (tâches en arrière-plan)
celery_queue_length Jauge raas_instance Longueur de la file d'attente Celery (tâches en arrière-plan en attente)
raas_rpc_request_duration_seconds Histogramme raas_instance Durée d'appel de l'API RPC SSE en secondes
         
Mesures PostgreSQL postgres_connections Jauge postgres_instance Connexions Postgres
postgres_transactions Compteur postgres_instance Transactions Postgres engagées
postgres_rows_read Compteur postgres_instance Lignes Postgres lues
postgres_rows_inserted Compteur postgres_instance Lignes Postgres insérées
postgres_rows_updated Compteur postgres_instance Lignes Postgres mises à jour
postgres_rows_deleted Compteur postgres_instance Lignes Postgres supprimées
         
Mesures système sse_jobs_in_progress Compteur Aucune Tâches SaltStack Config en cours
sse_jobs_complete_all_successful Compteur Aucune Tâches SaltStack Config terminées dont tous les retours sont réussis
sse_jobs_complete_missing_returns Compteur Aucune Tâches SaltStack Config terminées dont un ou plusieurs retours sont manquants
sse_jobs_complete_with_errors Compteur Aucune Tâches SaltStack Config terminées comportant une ou plusieurs erreurs
sse_masters Jauge Aucune Nombre total de masters Salt dans SaltStack Config
sse_minions Jauge Aucune Nombre total de minions dans SaltStack Config
sse_minions_present Jauge master_id Minions présents dans la limite de temps configurée raas_presence_expiration
sse_minions_lost Jauge master_id Minions non présents dans la limite de temps
sse_minions_unknown Jauge master_id Minions inconnus (jamais présents)
sse_users_authenticated Jauge Aucune Utilisateurs authentifiés auprès de SaltStack Config