SaltStack Config stellt mehrere Systemmetriken zur Verfügung, die für die Überwachung und Diagnose verwendet werden können. Diese Metriken sind auf dem Dashboard der SaltStack Config-Benutzeroberfläche in einem grafischen Format und über den /metrics
-Endpoint in einem maschinenlesbaren Format verfügbar.
Weitere Informationen zum Anzeigen von Berichten in der SaltStack Config-Benutzeroberfläche mithilfe des Dashboards finden Sie unter Dashboard-Berichte.
Maschinenlesbare Metriken
SaltStack Config exportiert Systemmetriken im textbasierten OpenMetrics-Format. Dieses Format kann direkt von Prometheus und anderen Überwachungs- und Warntools verwendet werden.
Konfiguration von Metriken für SaltStack Config
Die Konfigurationssammlung für Systemmetriken umfasst die folgenden Einstellungen in der /etc/raas/raas
-Konfigurationsdatei. Es werden Standardwerte dargestellt.
# 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
Die folgenden Einstellungen steuern die Handhabung von maschinenlesbaren Systemmetriken:
- Um die Metrikerfassung zu deaktivieren, legen Sie die Einstellung
enabled:false
fest. Beachten Sie, dass dadurch auch das integrierte Dashboard in SaltStack Config deaktiviert wird. - Um den Export von maschinenlesbaren Metriken aus dem HTTP-Endpoint
/metrics
zu aktivieren, wählen Sie die Einstellungprometheus:true
. Diese Einstellung wirkt sich nicht auf das integrierte Dashboard von SaltStack Config aus. - Der Zugriff auf den HTTP-Endpoint
/metrics
wird durch die HTTP-Basisauthentifizierung mit inprometheus_username
undprometheus_password
konfigurierten Anmeldedaten gesteuert. Die Werte für diese Einstellungen dürfen nicht leer sein, damit der/metrics
-Endpoint aktiviert wird. Diese Anmeldedaten werden nur in der/etc/raas/raas
-Konfigurationsdatei gespeichert. Sie sind keinem SaltStack Config-Konto zugeordnet und können für die Authentifizierung bei SaltStack Config ausschließlich zum Zugriff auf den HTTP-Endpoint/metrics
verwendet werden.
Die übrigen oben dargestellten Einstellungen beziehen sich auf das integrierte Dashboard von SaltStack Config und wirken sich nicht auf die Erfassung oder Meldung von maschinenlesbaren Systemmetriken aus. Insbesondere entscheidet die snapshot_interval
-Einstellung darüber, wie häufig (in Sekunden) Metriken zur Anzeige auf dem Dashboard erfasst werden, und die keep
-Einstellung bestimmt darüber, wie lange (in Tagen) Metrikdaten in der Datenbank gespeichert werden, bevor sie gelöscht werden.
Der HTTP-Endpoint /metrics
ist die empfohlene Methode zum Erfassen von maschinenlesbaren Metrikdaten aus SaltStack Config. Dennoch haben Sie auch die Möglichkeit, die API (RaaS) zum Abrufen der auf dem integrierten Dashboard angezeigten Daten zu verwenden. Mit dem API-Aufruf stats.get_system_metrics()
können Sie Metrikdaten nach Metrikname, Quelle und Datumsbereich abfragen. Das Konfigurationselement max_query_timedelta
begrenzt die Zahl der Daten, die SaltStack Config für einen einzelnen API-Aufruf zurückgibt. Um Metrikdaten aus einer längeren Zeitspanne abzurufen, können Sie mehrere API-Aufrufe mit unterschiedlichen Start- und Enddaten tätigen.
Konfiguration der Salt-Master-Metriken
Die Verfügbarkeit einiger Metriken hängt von der Konfiguration der mit SaltStack Config verbundenen Salt-Master ab:
- Metriken für Salt-Ereignisse und Auftragsrückläufe sind nur dann korrekt, wenn der
sseapi
-Returner auf den Salt-Mastern konfiguriert ist. Mit dem Returnersse_pgjsonb
(direct-to-database) funktioniert die Erfassung der Metriken nicht korrekt. - SaltStack Config erfasst detaillierte Laufzeitinformationen über Funktionen von Salt-Mastern, in deren Konfiguration
master_stats:true
eingestellt ist. Diese Option ist standardmäßig deaktiviert. Weitere Informationen finden Sie in der Salt-Dokumentation unter master_stats.
- Metriken für Salt-Auftragszustände sind nur dann korrekt, wenn die Auftragsausführungs-Engine im Salt-Master-Plug-In aktiviert ist:
engines: -jobcompletion:{}
Diese Engine ist in der Standardkonfiguration des Salt Master-Plug-Ins aktiviert.
Konfigurieren von Prometheus zum Herstellen einer Verbindung mit SaltStack Config
Sie können einen Prometheus-Server aktivieren, um Metriken aus SaltStack Config auszulesen, indem Sie der Prometheus-Konfiguration (in der Regel prometheus.yml
) für jede API (RaaS)-Serverinstanz einen scrape_configs
-Auftrag hinzufügen:
scrape_configs: - job_name: 'sse' metrics_path: '/metrics' scheme: 'http' static_configs: - targets: ['localhost:8080'] basic_auth: username: prometheus password: metrics
Die Anmeldeinformationen in der Prometheus-Konfiguration müssen mit den Angaben für prometheus_username
und prometheus_password
in der /etc/raas/raas
-Konfigurationsdatei übereinstimmen, wie bereits erwähnt.
Weitere Informationen zum Einrichten von Zielen für das Auslesen sowie weitere Themen rund um die Prometheus-Konfiguration finden Sie in der Prometheus-Projektdokumentation.
Beschreibungen der Metriken
Die von SaltStack Config exportierten maschinenlesbaren Metriken lassen sich in mehrere Kategorien einteilen:
Kategorie | Metrikname | Metriktyp | Bezeichnungen | Beschreibung |
---|---|---|---|---|
Detaillierte Salt-Master-Metriken | salt_event_size_bytes |
Histogramm | master_id |
Salt-Ereignisgröße in Byte |
salt_master_cmd_duration_seconds |
Histogramm | master_id , cmd |
Salt-Master-Befehlsdauer in Sekunden. Wird nur gemeldet, wenn master_stats auf dem Salt-Master konfiguriert ist. |
|
Metriken des Salt Master-Plug-Ins | raas_master_commands_processed |
Zähler | master_id |
Verarbeitete SSE-Befehle. |
raas_master_master_grains_pushed |
Zähler | master_id |
An SaltStack Config gesendete Salt-Master-Grain-Aktualisierungen | |
raas_master_minion_keys_pushed |
Zähler | master_id |
An SaltStack Config gesendete Minion-Schlüsselstatusaktualisierungen. | |
raas_master_minion_cached_pushed |
Zähler | master_id |
An SaltStack Config gesendete Minion-Cache-Aktualisierungen. | |
raas_master_masterfs_pushed |
Zähler | master_id |
An SaltStack Config gesendete MasterFS-Aktualisierungen. | |
raas_master_sseapi_engine_iteration_seconds |
Histogramm | master_id |
Iterationsdauer der API(RaaS)-Engine in Sekunden. | |
Servermetriken | redis_commands_executed |
Zähler | redis_instance |
Ausgeführte Redis-Befehle (System-Cache). |
redis_memory_bytes |
Messung | redis_instance |
Redis-Arbeitsspeichernutzung (System-Cache). | |
celery_tasks_queued |
Zähler | raas_instance , task |
Celery-Aufgaben im Hintergrund (Hintergrundaufträge). | |
celery_tasks_executed |
Zähler | raas_instance , task |
Ausgeführte Celery-Aufgaben (Hintergrundaufträge). | |
celery_queue_length |
Messung | raas_instance |
Länge der Celery-Warteschlange (Hintergrundaufträge in der Warteschlange). | |
raas_rpc_request_duration_seconds |
Histogramm | raas_instance |
Dauer des SSE RPC API-Aufrufs in Sekunden. | |
PostgreSQL-Metriken | postgres_connections |
Messung | postgres_instance |
Postgres-Verbindungen. |
postgres_transactions |
Zähler | postgres_instance |
Bestätigte Postgres-Transaktionen. | |
postgres_rows_read |
Zähler | postgres_instance |
Gelesene Postgres-Zeilen. | |
postgres_rows_inserted |
Zähler | postgres_instance |
Eingefügte Postgres-Zeilen. | |
postgres_rows_updated |
Zähler | postgres_instance |
Aktualisierte Postgres-Zeilen. | |
postgres_rows_deleted |
Zähler | postgres_instance |
Gelöschte Postgres-Zeilen. | |
Systemmetriken | highstate_minions |
Messung | Keine | Anzahl der Minions, die einen Highstate-Auftrag ausgeführt haben |
highstate_minions_changed |
Messung | Keine | Anzahl der Minions, die einen Highstate-Auftrag ausgeführt haben, was zu einer oder mehreren Änderungen führt | |
highstate_minions_succeeded |
Messung | Keine | Anzahl der Minions, die einen Highstate-Auftrag fehlerfrei ausgeführt haben | |
highstate_minion_duration_seconds |
Messung | Keine | Durchschnittliche Dauer pro Minion für eine Highstate-Ausführung | |
highstate_states |
Messung | Keine | Anzahl der eindeutigen Statusangaben, die in Highstate-Ausführungen angewendet werden | |
highstate_states_changed |
Messung | Keine | Anzahl der in Highstate-Ausführungen angewendeten Statusangaben, die zu einer oder mehreren Änderungen geführt haben | |
highstate_states_succeeded |
Messung | Keine | Anzahl der Statusangaben, die in Highstate-Ausführungen fehlerfrei angewendet werden | |
sse_jobs_in_progress |
Zähler | Keine | SaltStack Config-Aufträge in Bearbeitung. | |
sse_jobs_complete_all_successful |
Zähler | Keine | Abgeschlossene SaltStack Config-Aufträge, bei denen alle Rückgaben erfolgreich waren. | |
sse_jobs_complete_missing_returns |
Zähler | Keine | Abgeschlossene SaltStack Config-Aufträge, bei denen mindestens eine Rückgabe fehlt. | |
sse_jobs_complete_with_errors |
Zähler | Keine | Abgeschlossene SaltStack Config-Aufträge mit Fehlern. | |
sse_masters |
Messung | Keine | Gesamtzahl der Salt-Master in SaltStack Config. | |
sse_minion_grains_deleted |
Zähler | master_id |
Anzahl der gelöschten Minion-Grains | |
sse_minion_grains_indexing_duration_seconds |
Zähler | raas_instance |
Dauer der Indizierung von Minion-Grains in Sekunden | |
sse_minion_grains_saved |
Zähler | master_id |
Anzahl der gespeicherten Minion-Grains | |
sse_minion_target_match_calcs |
Zähler | raas_instace |
Anzahl der Berechnungen für den Abgleich von Minion und Zielgruppe | |
sse_minion_target_match_duration_seconds |
Zähler | raas_instance |
Dauer der Berechnungen zum Abgleich zwischen Minions und Zielgruppen, in Sekunden | |
sse_minions |
Messung | Keine | Gesamtzahl der Minions in SaltStack Config. | |
sse_minions_present |
Messung | master_id |
Innerhalb des konfigurierten Zeitlimits raas_presence_expiration vorhandene Minions. |
|
sse_minions_lost |
Messung | master_id |
Minions nicht innerhalb des Zeitlimits vorhanden | |
sse_minions_unknown |
Messung | master_id |
Unbekannte Minions (nie vorhanden) | |
sse_users_authenticated |
Messung | Keine | Für SaltStack Config authentifizierte Benutzer. |