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 끝점에 대한 액세스는prometheus_username
및prometheus_password
에 구성된 자격 증명을 사용하여 http 기본 인증을 통해 제어됩니다. 이러한 설정의 값이 비어있지 않아야/metrics
끝점을 사용하도록 설정할 수 있습니다. 이러한 자격 증명은/etc/raas/raas
구성 파일에만 저장되고, 어떠한 SaltStack Config 계정과도 연결되지 않으며/metrics
http 끝점에 액세스하는 것 외에는 SaltStack Config에 인증하는 데 사용할 수 없습니다.
위에 표시된 다른 설정은 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
returner가 Salt 마스터에 구성된 경우에만 정확합니다.sse_pgjsonb
(direct-to-database) returner를 통해서는 메트릭 수집이 제대로 작동하지 않습니다. - SaltStack Config는 구성에
master_stats:true
가 설정되어 있는 Salt 마스터로부터 하위 수준의 함수 런타임 정보를 수집합니다. 이 옵션은 기본적으로 사용하지 않도록 설정되어 있습니다. 자세한 내용은 Salt 설명서에서 master_stats를 참조하십시오.
- Salt 작업 상태에 대한 메트릭은 Salt 마스터 플러그인에서 작업 완료 엔진을 사용하도록 설정한 경우에만 정확합니다.
engines: -jobcompletion:{}
이 엔진은 Salt 마스터플러그인 기본 구성에서 사용하도록 설정됩니다.
SaltStack Config에 연결하도록 Prometheus 구성
각 API(RaaS) 서버 인스턴스에 대한 Prometheus 구성(일반적으로 prometheus.yml
)에 scrape_configs
작업을 추가하면 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 마스터 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_instance , task |
대기열에 있는 셀러리 작업(백그라운드 작업) | |
celery_tasks_executed |
카운터 | raas_instance , task |
실행된 셀러리 작업(백그라운드 작업) | |
celery_queue_length |
측정기 | raas_instance |
셀러리 대기열 길이(대기 중인 백그라운드 작업) | |
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에 인증된 사용자 |