SaltStack Config предоставляет несколько показателей системы, которые можно использовать для мониторинга и диагностики. Эти показатели доступны в графическом виде на панели управления пользовательского интерфейса SaltStack Config и в машиночитаемой форме при использовании конечной точки http /metrics.

Дополнительные сведения об отображении отчетов в пользовательском интерфейсе 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.
  • Для включения экспорта машиночитаемых показателей из конечной точки http /metrics установите значение prometheus:true. Этот параметр не влияет на встроенную панель управления SaltStack Config.
  • Для контроля доступа к конечной точке http /metrics используется процедура базовой проверки подлинности http с учетными данными, настроенными в prometheus_username и prometheus_password. Чтобы включить конечную точку /metrics, для этих параметров должны быть указаны значения. Данные учетные данные хранятся только в файле конфигурации /etc/raas/raas. Они не связаны с учетными записями SaltStack Config и не могут использоваться для проверки подлинности в SaltStack Config в целях, отличных от получения доступа к конечной точке http /metrics.

Другие параметры, указанные выше, относятся к встроенной панели управления SaltStack Config и не влияют на сбор машиночитаемых показателей системы или создание отчетов по ним. В частности, параметр snapshot_interval определяет частоту записи параметров (в секундах) для отображения на панели управления, а параметр keep — длительность хранения (в днях) значений показателей в базе данных до удаления.

Хотя для сбора машиночитаемых значений показателей из SaltStack Config рекомендуется использоваться конечную точку http /metrics, для получения данных, отображаемых на встроенной панели управления, также можно применять API-интерфейс (RaaS). Вызов API-интерфейса stats.get_system_metrics() позволяет запрашивать значения показателей по имени показателя, его источнику и диапазону дат. Элемент конфигурации max_query_timedelta ограничивает объем данных, который SaltStack Config будет возвращать в ответ на единичный вызов API-интерфейса. Чтобы получить значения показателей за более длительный интервал времени, можно выполнить несколько вызовов API-интерфейса с разными датами начала и окончания.

Конфигурация показателей главного сервера Salt

Доступность некоторых показателей зависит от конфигурации главных серверов Salt, подключенных к SaltStack Config.

  • Показатели по событиям Salt и возвращаемые результаты заданий будут точными только в том случае, если на главных серверах Salt настроен модуль возврата sseapi. При использовании модуля возврата sse_pgjsonb (прямой передаче в базу данных) сбор показателей будет работать некорректно.
  • SaltStack Config будет собирать информацию о среде выполнения низкоуровневых функций с главных серверов Salt, в конфигурации которых задан параметр master_stats:true. Этот параметр отключен по умолчанию. Дополнительные сведения см. в разделе master_stats в документации по Salt.
  • Показатели о состояниях заданий Salt будут точными только в том случае, если модуль выполнения заданий включен в подключаемом модуле Salt Master.
    engines:
       -jobcompletion:{}

    Этот модуль включен в конфигурации по умолчанию подключаемого модуля Salt Master.

Настройка Prometheus для подключения к SaltStack Config

Можно включить сервер Prometheus для извлечения показателей из SaltStack Config путем добавления задания scrape_configs в конфигурацию Prometheus (обычно prometheus.yml) для каждого существующего экземпляра сервера API-интерфейса (RaaS).

scrape_configs:
  - job_name: 'sse'

    metrics_path: '/metrics'
    scheme: 'http'

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

    basic_auth:
      username: prometheus
      password: metrics

Учетные данные в конфигурации Prometheus должны совпадать с параметрами prometheus_username и prometheus_password, указанными в файле конфигурации /etc/raas/raas, как отмечено выше.

Дополнительные сведения о настройке целевых объектов для извлечения и других разделах конфигурации Prometheus см. в документации по проекту Prometheus.

Примечание: В рамках инициативы корпорации VMware по удалению сомнительных терминов термин «Salt master» (главный сервер Salt) будет заменен на более подходящий в системе SaltStack Config, в связанных продуктах и документации. Для обновления терминологии может потребоваться несколько этапов, прежде чем этот процесс будет полностью завершен.

Описание показателей

Машиночитаемые показатели, экспортируемые из SaltStack Config, можно разбить на несколько категорий.

Категория Имя показателя Тип показателя Метки Описание
Низкоуровневые показатели для главного сервера Salt salt_event_size_bytes Гистограмма master_id Размер события Salt (в байтах)
salt_master_cmd_duration_seconds Гистограмма master_id, cmd Длительность выполнения команды главного сервера Salt (в секундах). Сообщается только в том случае, если параметр master_stats настроен на главном сервере Salt.
         
Показатели подключаемого модуля Salt Master raas_master_commands_processed Счетчик master_id Обработанные команды SSE
raas_master_master_grains_pushed Счетчик master_id Обновленные параметры grain главного сервера Salt, отправленные в SaltStack Config
raas_master_minion_keys_pushed Счетчик master_id Обновления состояний ключей служебных серверов, отправленные в SaltStack Config
raas_master_minion_cached_pushed Счетчик master_id Обновления кэша служебного сервера, отправленные в SaltStack Config
raas_master_masterfs_pushed Счетчик master_id Обновления MasterFS, отправленные в SaltStack Config
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 Длительность вызова API-интерфейса SSE RPC (в секундах)
         
Показатели 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 Датчик Нет Всего главных серверов Salt в SaltStack Config
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