SaltStack Config 公开了多个可用于监控和诊断的系统衡量指标。这些衡量指标在 SaltStack Config 用户界面仪表板上以图形形式提供,使用 /metrics
http 端点时以计算机可读的形式提供。
此页面介绍了可用的衡量指标以及如何将第三方工具连接到 SaltStack Config 以检索衡量指标数据。有关在 SaltStack Config 用户界面中使用仪表板可视化报告的详细信息,请参见仪表板。
计算机可读的衡量指标
SaltStack Config 能够以基于文本的 OpenMetrics 格式导出系统衡量指标。此格式可直接由 Prometheus 和其他监控和警示工具使用。有关详细信息,请参见配置 Prometheus 以连接到 SaltStack Config。
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_username
和prometheus_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
限制了进行单个 API 调用后 SaltStack Config 将返回的数据量。要获得更长时段的衡量指标数据,可以使用不同的开始日期和结束日期进行多个 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
可以通过将 scrape_configs
作业添加到您拥有的每个 API (RaaS) 服务器实例的 Prometheus 配置(通常为 prometheus.yml
),使 Prometheus 服务器能够从 SaltStack Config 抓取衡量指标:
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_username
和 prometheus_password
匹配,如上所述。
有关设置抓取目标和其他 Prometheus 配置主题的详细信息,请参见 Prometheus 项目文档。
衡量指标描述
SaltStack Config 导出的计算机可读的衡量指标分为以下几类:
类别 | 衡量指标名称 | 衡量指标类型 | 标签 | 说明 |
---|---|---|---|---|
Salt 主节点低级别衡量指标 | salt_event_size_bytes |
条形图 | master_id |
Salt 事件大小(以字节为单位) |
salt_master_cmd_duration_seconds |
条形图 | master_id 、cmd |
Salt 主节点命令持续时间(以秒表示)。仅当在 Salt 主节点上配置了 master_stats 时才进行报告。 |
|
Salt 主节点插件衡量指标 | raas_master_commands_processed |
计数器 | master_id |
已处理的 SSE 命令数 |
raas_master_master_grains_pushed |
计数器 | master_id |
已推送到 SaltStack Config 的 Salt 主节点颗粒更新数 | |
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_instance 、task |
已排队的 Celery 任务数(后台作业) | |
celery_tasks_executed |
计数器 | raas_instance 、task |
已执行的 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 行数 | |
系统衡量指标 | 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_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 进行身份验证的用户数 |