SaltStack Config 公開了多個可用於監控和診斷的系統度量。這些度量在 SaltStack Config 使用者介面儀表板上以圖形形式提供,而使用 /metrics http 端點時則以機器可讀的形式提供。

如需有關在 SaltStack Config 使用者介面中使用儀表板視覺化報告的詳細資訊,請參閱〈儀表板報告〉

機器可讀的度量

SaltStack Config 將以 OpenMetrics 文字型格式匯出系統度量。Prometheus 以及其他監控和警示工具可直接使用此格式。

SaltStack Config 度量組態

系統度量收集的組態包括 /etc/raas/raas 組態檔中的以下設定。將顯示預設值。

# 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

下列設定用於控制機器可讀系統度量的處理:

  • 若要停用度量收集,請設定 enabled:false。請注意,這也將停用 SaltStack Config 內建儀表板。
  • 若要啟用從 /metrics http 端點匯出機器可讀的度量,請設定 prometheus:true。此設定不會影響 SaltStack Config 內建儀表板。
  • /metrics http 端點的存取權將透過 http 基本驗證進行控制,該驗證使用在 prometheus_usernameprometheus_password 中設定的認證。這些設定需要非空白值,才能啟用 /metrics 端點。這些認證僅儲存在 /etc/raas/raas 組態檔中,不與任何 SaltStack Config 帳戶相關聯,並且無法用於向 SaltStack Config 進行驗證 (除了用於存取 /metrics http 端點外)。

上述其他設定與 SaltStack Config 內建儀表板相關,不會影響機器可讀系統度量的收集或報告。尤其是,snapshot_interval 設定用於確定記錄度量以在儀表板上顯示的頻率 (以秒為單位),而 keep 設定用於確定度量資料在整理之前將保留在資料庫中的時間長度 (以天為單位)。

雖然 /metrics http 端點是從 SaltStack Config 收集機器可讀度量資料的建議方法,但您可以使用 API (RaaS) 擷取內建儀表板上顯示的資料。透過 stats.get_system_metrics() API 呼叫,可依度量名稱、來源和日期範圍查詢度量資料。組態項目 max_query_timedelta 限制了 SaltStack Config 將從單一 API 呼叫傳回的資料數量。若要從較長的時間範圍取得度量資料,您可以使用不同的開始日期和結束日期執行多次 API 呼叫。

Salt 主節點度量組態

某些度量的可用性取決於已連線至 SaltStack Config 的 Salt 主節點的組態:

  • 只有在 Salt 主節點上設定了 sseapi 傳回程式時,有關 Salt 事件和工作傳回資料的度量才會準確無誤。如果使用 sse_pgjsonb (導向至資料庫) 傳回程式,度量收集將無法正常運作。
  • SaltStack Config 將從組態中已設定 master_stats:true 的 Salt 主節點收集低層級函數執行階段資訊。此選項預設為停用。如需詳細資料,請參閱 Salt 說明文件中的 master_stats
  • 只有在 Salt 主節點外掛程式中啟用工作完成引擎時,有關 salt 工作狀態的度量才會準確無誤:
    engines:
       -jobcompletion:{}

    此引擎在 Salt 主節點外掛程式預設組態中已啟用。

將 Prometheus 設定為連線至 SaltStack Config

可支援 Prometheus 伺服器從 SaltStack Config 抓取度量,方法是將 scrape_configs 工作新增至您擁有的每個 API (RaaS) 伺服器執行個體的 Prometheus 組態 (通常為 prometheus.yml):

scrape_configs:
  - job_name: 'sse'

    metrics_path: '/metrics'
    scheme: 'http'

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

    basic_auth:
      username: prometheus
      password: metrics

Prometheus 組態中的認證應與 /etc/raas/raas 組態檔中指定的 prometheus_usernameprometheus_password 相符,如上所述。

如需有關設定抓取目標的詳細資訊和其他 Prometheus 組態主題,請參閱 Prometheus 專案說明文件

備註: 作為 VMware 移除有問題術語計劃的一部分,Salt 主節點一詞將在 SaltStack Config 及相關產品和說明文件中取代為更貼切的詞。此術語更新可能需要幾個發行週期才能全面完成。

度量說明

SaltStack Config 匯出的機器可讀度量分為多個類別:

類別 度量名稱 度量類型 標籤 說明
Salt 主節點低層級度量 salt_event_size_bytes 長條圖 master_id Salt 事件大小 (以位元組為單位)
salt_master_cmd_duration_seconds 長條圖 master_idcmd Salt 主節點命令持續時間 (以秒為單位)。只有在 Salt 主節點上設定了 master_stats 時才進行報告。
         
Salt 主節點外掛程式度量 raas_master_commands_processed 計數器 master_id 已處理的 SSE 命令數
raas_master_master_grains_pushed 計數器 master_id 已推送至 SaltStack Config 的 Salt 主節點 Grain 更新數
raas_master_minion_keys_pushed 計數器 master_id 已推送至 SaltStack Config 的部屬節點金鑰狀態更新數
raas_master_minion_cached_pushed 計數器 master_id 已推送至 SaltStack Config 的部屬節點快取更新數
raas_master_masterfs_pushed 計數器 master_id 已推送至 SaltStack Config 的 MasterFS 更新數
raas_master_sseapi_engine_iteration_seconds 長條圖 master_id API (RaaS) 引擎反覆運算持續時間 (以秒為單位)
         
伺服器度量 redis_commands_executed 計數器 redis_instance 已執行的 Redis 命令數目 (系統快取)
redis_memory_bytes 量表 redis_instance Redis 記憶體使用量 (系統快取)
celery_tasks_queued 計數器 raas_instancetask 已排入佇列的 Celery 工作數目 (背景工作)
celery_tasks_executed 計數器 raas_instancetask 已執行的 Celery 工作數目 (背景工作)
celery_queue_length 量表 raas_instance Celery 佇列長度 (正在等待的背景工作)
raas_rpc_request_duration_seconds 長條圖 raas_instance SSE RPC API 呼叫持續時間 (以秒為單位)
         
PostgreSQL 度量 postgres_connections 量表 postgres_instance Postgres 連線數目
postgres_transactions 計數器 postgres_instance 已承諾的 Postgres 交易數目
postgres_rows_read 計數器 postgres_instance 讀取的 Postgres 資料列數目
postgres_rows_inserted 計數器 postgres_instance 插入的 Postgres 資料列數目
postgres_rows_updated 計數器 postgres_instance 更新的 Postgres 資料列數目
postgres_rows_deleted 計數器 postgres_instance 刪除的 Postgres 資料列數目
         
系統度量 highstate_minions 量表 執行 highstate 工作的部屬節點數目
highstate_minions_changed 量表 執行 highstate 工作導致一或多項變更的部屬節點數目
highstate_minions_succeeded 量表 執行 highstate 工作且未發生故障的部屬節點數目
highstate_minion_duration_seconds 量表 highstate 執行的各部屬節點平均持續時間
highstate_states 量表 在 highstate 執行中套用的唯一狀態數目
highstate_states_changed 量表 在 highstate 執行中套用且導致一或多項變更的狀態數目
highstate_states_succeeded 量表 在 highstate 執行中套用且未發生故障的狀態數目
sse_jobs_in_progress 計數器 進行中的 SaltStack Config 工作數目
sse_jobs_complete_all_successful 計數器 已完成且全部成功傳回的 SaltStack Config 工作數目
sse_jobs_complete_missing_returns 計數器 已完成但有一或多個錯過傳回的 SaltStack Config 工作數目
sse_jobs_complete_with_errors 計數器 已完成但出現一或多個錯誤的 SaltStack Config 工作數目
sse_masters 量表 SaltStack Config 中的 Salt 主節點總計
sse_minion_grains_deleted 計數器 master_id 刪除的部屬節點 Grain 數目
sse_minion_grains_indexing_duration_seconds 計數器 raas_instance 部屬節點 Grain 索引計算持續時間 (以秒為單位)
sse_minion_grains_saved 計數器 master_id 儲存的部屬節點 Grain 數目
sse_minion_target_match_calcs 計數器 raas_instace 部屬節點與目標群組比對計算數目
sse_minion_target_match_duration_seconds 計數器 raas_instance 部屬節點與目標群組比對計算持續時間 (以秒為單位)
sse_minions 量表 SaltStack Config 中的部屬節點總計
sse_minions_present 量表 master_id 在設定的時間限制 raas_presence_expiration 內存在的部屬節點數目
sse_minions_lost 量表 master_id 在時間限制內不存在的部屬節點數目
sse_minions_unknown 量表 master_id 未知部屬節點 (從未存在) 數目
sse_users_authenticated 量表 SaltStack Config 進行驗證的使用者數目