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 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éfinissezprometheus: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 dansprometheus_username
etprometheus_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 retoursse_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.
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 |
Grain 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 |