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 Einstellung prometheus: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 in prometheus_username und prometheus_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 Returner sse_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.

Hinweis: Im Rahmen der Initiative von VMware zum Entfernen problematischer Terminologie wird der Begriff Salt-Master in SaltStack Config und verwandten Produkten und Dokumentationen durch einen besseren Begriff ersetzt. Es kann einige Versionszyklen dauern, bevor diese Aktualisierung der Terminologie vollständig abgeschlossen ist.

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.