SaltStack Config espone diverse metriche di sistema che possono essere utilizzate per il monitoraggio e la diagnostica. Queste metriche sono disponibili in formato grafico nel dashboard dell'interfaccia utente di SaltStack Config e in formato leggibile in modo automatizzato mediante l'endpoint http /metrics
.
Per ulteriori informazioni sulla visualizzazione dei report nell'interfaccia utente di SaltStack Config mediante il dashboard, vedere Report del dashboard.
Metriche leggibili in modo automatizzato
SaltStack Config esporta le metriche di sistema in formato basato su testo OpenMetrics. Questo formato è utilizzabile direttamente da Prometheus e altri strumenti di monitoraggio e avviso.
Metriche di configurazione di SaltStack Config
La configurazione per la raccolta di metriche di sistema è composta dalle seguenti impostazioni nel file di configurazione /etc/raas/raas
. Sono mostrati i valori predefiniti.
# 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
Le seguenti impostazioni controllano la gestione delle metriche di sistema leggibili in modo automatizzato:
- Per disabilitare la raccolta di metriche, impostare
enabled:false
. Si noti che questa operazione disabilita anche il dashboard integrato di SaltStack Config. - Per abilitare l'esportazione di metriche leggibili in modo automatizzato dall'endpoint http
/metrics
, impostareprometheus:true
. Questa impostazione non influisce sul dashboard integrato di SaltStack Config. - L'accesso all'endpoint http
/metrics
è controllato dall'autenticazione di base http con le credenziali configurate inprometheus_username
eprometheus_password
. Per abilitare l'endpoint/metrics
sono necessari valori non vuoti per queste impostazioni. Queste credenziali vengono archiviate solo nel file di configurazione di/etc/raas/raas
, non sono associate ad alcun account di SaltStack Config e non possono essere utilizzate per eseguire l'autenticazione in SaltStack Config oltre che per accedere all'endpoint http/metrics
.
Le altre impostazioni illustrate in precedenza si riferiscono al dashboard integrato di SaltStack Config e non influiscono sulla raccolta o sulla creazione di report di metriche di sistema leggibili in modo automatizzato. In particolare, l'impostazione snapshot_interval
determina la frequenza, in secondi, con cui le metriche vengono registrate per la visualizzazione nel dashboard e l'impostazione keep
determina per quanto tempo, in giorni, i dati delle metriche verranno conservati nel database prima di essere tagliati.
Sebbene l'endpoint http /metrics
sia la modalità consigliata per raccogliere dati delle metriche leggibili in modo automatizzato da SaltStack Config, è possibile utilizzare l'API (RaaS) per recuperare i dati presentati nel dashboard integrato. La chiamata API stats.get_system_metrics()
consente di eseguire query sui dati delle metriche in base al nome, all'origine e all'intervallo di date della metrica. L'elemento di configurazione max_query_timedelta
limita la quantità di dati restituiti da SaltStack Config da una singola chiamata API. Per recuperare i dati delle metriche da un lasso di tempo più lungo, è possibile effettuare più chiamate API con date di inizio e di fine diverse.
Configurazione delle metriche di Salt Master
La disponibilità di alcune metriche dipende dalla configurazione dei Salt Master connessi a SaltStack Config:
- Le metriche relative agli eventi Salt e ai risultati dei processi saranno accurate solo se il returner
sseapi
è configurato nei Salt Master. La raccolta delle metriche non funzionerà correttamente con il returnersse_pgjsonb
(direct-to-database). - SaltStack Config raccoglierà informazioni sul runtime delle funzioni di livello inferiore dai Salt Master con
master_stats:true
impostato nella loro configurazione. Questa opzione è disabilitata per impostazione predefinita. Per dettagli, vedere master_stats nella documentazione di Salt.
- Le metriche relative agli stati dei processi Salt saranno accurate solo se il motore di completamento dei processi è abilitato nel plug-in Salt Master:
engines: -jobcompletion:{}
Questo motore è abilitato nella configurazione predefinita del plug-in Salt Master.
Configurazione della connessione di Prometheus a SaltStack Config
È possibile abilitare un server Prometheus per estrarre metriche da SaltStack Config aggiungendo un processo scrape_configs
alla configurazione di Prometheus (in genere prometheus.yml
) per ogni istanza del server API (RaaS) di cui si dispone:
scrape_configs: - job_name: 'sse' metrics_path: '/metrics' scheme: 'http' static_configs: - targets: ['localhost:8080'] basic_auth: username: prometheus password: metrics
Le credenziali nella configurazione di Prometheus devono corrispondere alle credenziali prometheus_username
e prometheus_password
specificate nel file di configurazione /etc/raas/raas
, come indicato sopra.
Vedere la documentazione del progetto Prometheus per ulteriori informazioni sull'impostazione di destinazioni di estrazione e altri argomenti sulla configurazione di Prometheus.
Descrizioni delle metriche
Le metriche leggibili in modo automatizzato esportate da SaltStack Config rientrano in diverse categorie:
Categoria | Nome metrica | Tipo metrica | Etichette | Descrizione |
---|---|---|---|---|
Metriche di livello inferiore di Salt Master | salt_event_size_bytes |
Istogramma | master_id |
Dimensioni dell'evento Salt, in byte |
salt_master_cmd_duration_seconds |
Istogramma | master_id , cmd |
Durata del comando Master Salt, in secondi. Segnalata solo se master_stats è configurata nel Salt Master. |
|
Metriche del plug-in Salt Master | raas_master_commands_processed |
Contatore | master_id |
Comandi SSE elaborati |
raas_master_master_grains_pushed |
Contatore | master_id |
Aggiornamenti dei grain di Salt Master inviati a SaltStack Config | |
raas_master_minion_keys_pushed |
Contatore | master_id |
Aggiornamenti degli stati delle chiavi dei minion inviati a SaltStack Config | |
raas_master_minion_cached_pushed |
Contatore | master_id |
Aggiornamenti della cache dei minion inviati a SaltStack Config | |
raas_master_masterfs_pushed |
Contatore | master_id |
Aggiornamenti masterFS inviati a SaltStack Config | |
raas_master_sseapi_engine_iteration_seconds |
Istogramma | master_id |
Durata di iterazione del motore dell'API (RaaS), in secondi | |
Metriche del server | redis_commands_executed |
Contatore | redis_instance |
Comandi Redis eseguiti (cache di sistema) |
redis_memory_bytes |
Misuratore | redis_instance |
Utilizzo della memoria di Redis (cache di sistema) | |
celery_tasks_queued |
Contatore | raas_instance , task |
Attività Celery in coda (processi in background) | |
celery_tasks_executed |
Contatore | raas_instance , task |
Attività Celery eseguite (processi in background) | |
celery_queue_length |
Misuratore | raas_instance |
Lunghezza coda di Celery (processi in background in attesa) | |
raas_rpc_request_duration_seconds |
Istogramma | raas_instance |
Durata della chiamata API RPC SSE, in secondi | |
Metriche PostgreSQL | postgres_connections |
Misuratore | postgres_instance |
Connessioni Postgres |
postgres_transactions |
Contatore | postgres_instance |
Transazioni di Postgres confermate | |
postgres_rows_read |
Contatore | postgres_instance |
Righe Postgres lette | |
postgres_rows_inserted |
Contatore | postgres_instance |
Righe Postgres inserite | |
postgres_rows_updated |
Contatore | postgres_instance |
Righe Postgres aggiornate | |
postgres_rows_deleted |
Contatore | postgres_instance |
Righe Postgres eliminate | |
Metriche di sistema | sse_jobs_in_progress |
Contatore | Nessuna | Processi di SaltStack Config in corso |
sse_jobs_complete_all_successful |
Contatore | Nessuna | Processi di SaltStack Config completati con tutti i risultati riusciti | |
sse_jobs_complete_missing_returns |
Contatore | Nessuna | Processi di SaltStack Config completati con uno o più risultati mancanti | |
sse_jobs_complete_with_errors |
Contatore | Nessuna | Processi di SaltStack Config completati con uno o più errori | |
sse_masters |
Misuratore | Nessuna | Salt Master totali in SaltStack Config | |
sse_minions |
Misuratore | Nessuna | Minion totali in SaltStack Config | |
sse_minions_present |
Misuratore | master_id |
Minion presenti nel limite di tempo raas_presence_expiration configurato |
|
sse_minions_lost |
Misuratore | master_id |
Minion non presenti nel limite di tempo | |
sse_minions_unknown |
Misuratore | master_id |
Minion sconosciuti (mai presenti) | |
sse_users_authenticated |
Misuratore | Nessuna | Utenti autenticati a SaltStack Config |