Перейти к основному содержимому
Версия: 1.12

Установка Anomaly Analyzer

Anomaly Analyzer — это модуль интеллектуального онлайн-мониторинга Sage, который использует статистические методы и машинное обучение (ML) для обнаружения аномалий во временных рядах в реальном времени. При обнаружении отклонений система автоматически отправляет уведомления. Подробнее см. в пользовательской документации.

Процесс установки Anomaly Analyzer состоит из следующих шагов:

  1. Настройка инвентаря
  2. Настройка лимитов ресурсов
  3. Конфигурация Anomaly Analyzer
  4. Настройка уведомлений
  5. Запуск установки
Важно

Anomaly Analyzer является опциональным компонентом и не входит в базовую поставку. Для работы требуется версия Sage не ниже 1.12.

Архитектура и ограничения​

  • Все компоненты Anomaly Analyzer развертываются на одном сервере.

  • Режим высокой доступности (HA) на текущий момент не поддерживается. В случае падении сервера мониторинг аномалий прекратится.

  • Для работы требуется дополнительный компонент Sage Notifier, который устанавливается в рамках основного плейбука.

  • Отправка алертов поддерживается по электронной почте (SMTP) и через вебхуки.

Требования к ресурсам​

Anomaly Analyzer — ресурсоемкий компонент. Рекомендуется развертывание на отдельном сервере, хост должен быть добавлен в инвентарь Ansible и иметь сетевую связность с другими серверами Sage. Компонент также может быть развернут на одном из хостов основного кластера Sage, но только при условии, что суммарной мощности хоста достаточно для всех работающих на нем компонентов.

Развертывание на стандартных флейворах (1VM/3VM) не поддерживается.

Важно

Точные требования к CPU, RAM и диску для сервера Anomaly Analyzer зависят от ожидаемой нагрузки на систему. Чтобы получить актуальные значения для вашей конфигурации, обратитесь в техническую поддержку.

Процесс установки​

Установка Anomaly Analyzer выполняется тем же Ansible-плейбуком, который используется для базовой установки.

Шаг 1. Настройка инвентаря​

Добавьте в файл Ansible-инвентаря группы anomaly и notifier.

hosts.yml
# Группа Anomaly Analyzer (только 1 хост)
anomaly:
hosts:
anomaly-host.example.com: # Замените на реальный FQDN

# Группа Notifier (только 1 хост)
notifier:
hosts:
anomaly-host.example.com: # Рекомендуется размещать на том же хосте, что и anomaly

Шаг 2. Настройка лимитов ресурсов​

Для контроля потребления ресурсов и стабильной работы компонента задайте лимиты CPU и памяти для каждого контейнера.

Добавьте или обновите переменную sage_limits_override:

group_vars/sage/_limits.yml
sage_limits_override:
# Обработка временных рядов (Minion), устанавливается в 10 экземплярах
minion:
mem_limit: 256M
cpus: 1
# Minion Gateway (шлюз)
minion-gateway-1: # Экземпляр с повышенными ресурсами
mem_limit: 2G
cpus: 0.5
minion-gateway: # Остальные 9 экземпляров со стандартными лимитами
mem_limit: 512M
cpus: 0.25
# API (обработка запросов к Sage)
api:
mem_limit: 768M
cpus: 0.5
# Сбор и подготовка данных
data-fetcher:
mem_limit: 1G
cpus: 0.25
# API для управления процессом выборки данных
data-fetcher-api:
mem_limit: 512M
cpus: 0.25
# Детектор аномалий
detector:
mem_limit: 512M
cpus: 0.5
# Обучение ML-моделей
trainer:
mem_limit: 512M
cpus: 0.25
# Принятие решений
decider:
mem_limit: 1G
cpus: 0.25
# Отправка уведомлений
dispatcher:
mem_limit: 512M
cpus: 0.25
# Проверка доступности других компонентов
prober:
mem_limit: 768M
cpus: 0.5
# sidecar-аутентификация для prober
prober-oathkeeper:
mem_limit: 30M
cpus: 0.1
# Low-level Admin API
laaapi:
mem_limit: 256M
cpus: 0.25
# Gateway-аутентификация для laaapi
laaapi-oathkeeper:
mem_limit: 30M
cpus: 0.1
Важно

Указанные значения mem_limit и cpus являются минимальными и достаточны для обработки нескольких тысяч временных рядов с гранулярностью 5 минут. Для большей нагрузки лимиты необходимо пересчитывать.

Чтобы получить актуальные значения для вашей конфигурации, обратитесь в техническую поддержку.

Шаг 3. Конфигурация Anomaly Analyzer​

Настройте размеры внутренних кэшей в зависимости от ожидаемой нагрузки на систему. Добавьте в Ansible-инвентарь следующие переменные:

  • sage_anomaly_caches_max_alerts_count — максимальное количество активных алертов в кэше;
  • sage_anomaly_caches_max_series_count — максимальное количество отслеживаемых временных рядов.

Пример:

group_vars/sage/sage.yml
# Ограничить количество одновременно обрабатываемых инцидентов
sage_anomaly_caches_max_alerts_count: 1000

# Определить емкость хранилища метаданных о временных рядах
sage_anomaly_caches_max_series_count: 10000
Примечание

Эти параметры влияют на потребление памяти. Превышение лимитов может привести к выгрузке старых данных из кэша, но не остановит работу системы.

Шаг 4. Настройка уведомлений​

Поддерживаются уведомления по email и через вебхуки.

Уведомления по email​

За доставку алертов Anomaly Analyzer по email отвечает компонент Sage Notifier.

  1. Включите канал email:

    group_vars/sage/sage.yml
    sage_notifier_channels_email_enabled: true
  2. Настройте SMTP-сервер:

    group_vars/sage/sage.yml
    sage_alerts_smtp_login: ""
    sage_alerts_smtp_password: ""
    sage_alerts_smtp_from: email@localhost
    sage_alerts_smtp_host: smtp.sage.example.com
    sage_alerts_smtp_port: 25
    sage_alerts_smtp_need_auth: false
    sage_alerts_smtp_ssl_options: "None"
    Примечание

    Подробное описание переменных см. в Справочнике переменных.

Уведомления в мессенджеры​

Чтобы настроить отправку алертов в Telegram, Mattermost или другие системы, используйте механизм вебхуков.

Подробную инструкцию см. в разделе Алертинг с помощью вебхуков.

Шаг 5. Запуск установки​

Запустите основной плейбук установки. Ansible автоматически обнаружит группы anomaly и notifier и развернет компоненты.

ansible-playbook sage-setup.yml

Если вы устанавливаете Anomaly Analyzer на уже работающий кластер, плейбук доустановит компоненты без остановки сервисов Sage.

В конце установки автоматически выполняется валидация работоспособности. На исторических данных в режиме симуляции проверяется:

  • связность с источниками данных (загрузка из Sage);
  • доступность базы данных;
  • доступность ML-компонентов.

Если валидация не прошла, см. подраздел Действия при ошибке установки.

Следующие шаги​

После успешной установки:

  1. Убедитесь, что контейнеры групп anomaly и notifier находятся в статусе Up.

  2. Проверьте логи компонента dispatcher (для email) или вебхука (для мессенджеров) на отсутствие ошибок.

  3. Чтобы проверить доставку уведомлений, создайте тестовый алерт:

    pql chart=max step=1m legend="k=v" floor(time() / 60 / 1) % 2

    Укажите следующие настройки алерта:

    • Точки для открытия = Точки для закрытия = 1.
    • Нижняя граница = -0.5.
    • Верхняя граница = 0.5.

    Алерт будет срабатывать и закрываться через каждые 2 минуты.