Прогнозирование нарушений SLA
Этот урок описывает, как AggreGate может помочь с проактивным управлением устройствами, сервисами и процессами. Это происходит с помощью операторов тревог, если числовой порог SLA будет в ближайшем будущем нарушен в сответствии с динамикой статистического тренда, основанного на определенной метрике.
Вот пример конфигураций тревог:
Создать тревогу, если загрузка HDD на критически важном сервере достигнет 95% через две недели
Создать тревогу, если средняя доступность многокомпонентного бизнес-сервиса упадет ниже 99% через три месяца
В нашем примере мы настроим тревогу, которая будет вызываться, если средняя нагрузка на ЦП на сервере поднимется выше 80% за одну неделю.
Создание статистического канала
Прежде всего, необходимо установить статистический канал для расчета ежедневных средних показателей нагрузки ЦП на нашем сервере.
Чтобы создать статистический канал, выберите Редактировать свойства аккаунта устройства в контекстном меню сетевого устройства, перейдите на вкладку Статистические каналы (1) и добавьте новую строку в таблицу каналов (2).
Мы устанавливаем Переменную так, чтобы она указывала на переменную, содержащую значение hrProcessorLoadTable. Откройте параметры канала (4) и настройте выражение, которое будет возвращать числовые значения, которые будут отслеживаться в рамках SLA с помощью оповещения.

На странице Параметры мы задаем выражение {hrProcessorTable}, чтобы получить точное значение количества ядерных часов, используемых процессором на нашем целевом устройстве (1).
Также рекомендуется отключить периоды хранения для всех типов архивов, кроме ежедневного, поскольку для анализа мы будем использовать только ежедневные данные. Для этого щелкните правой кнопкой мыши внутри любого периода хранения и выберите Удалить значение из контекстного меню (2).
Установите длину ежедневного архива равной 14, чтобы прогноз основывался на статистических данных достаточной длины.

Создание тревоги
Создайте новую тревогу, которая будет появляться при определении будущих нарушений SLA. Установите уведомления тревоги (такие как отправка письма или SMS) и подходящее сообщение тревоги.

К тревоге добавьте один триггер переменной и настройте его следующим образом:
Контекстная маска:
users.admin.scripts.slaBreakdown(скрипт расчета даты нарушения SLA)Если вы не можете найти этот скрипт, его можно добавить через опцию Добавить ресурсы на вашем сервере AggreGate.
Переменная:
childInfo (Свойства)Выражение:
dateDiff(now(),
cell({users.admin.scripts.slaBreakdown:execute("users.admin.devices.criticalServer", "cpuLoad", 4, 0, 80)}),
"day") < 7
&&
dateDiff(now(),
cell({users.admin.scripts.slaBreakdown:execute("users.admin.devices.criticalServer", "cpuLoad", 4, 0, 80)}),
"day"
) > 0Режим
Состояние (True/False)Задержка:
0 ms
Период проверки не должен быть слишком коротким, поскольку расчет даты нарушения SLA на основе статистических данных- ресурсоемкая задача. Период проверки в 10 минут или более будет достаточным.

Самая сложная часть этой тревоги - это его Выражение. Это выражение ссылается на скрипт Расчета даты нарушения SLA, являющейся частью дистрибутива AggreGate. Ссылка {users.admin.scripts.slaBreakdown:execute("users.admin.devices.criticalServer", "cpuLoad", 4, 0, 80)} вызывает выполнение функции из контекста скрипта и передает ему следующие параметры:
users.admin.devices.criticalServer- путь контекста устройства, соответствующий нашему целевому серверуcpuLoad- имя статистического канала, откуда берутся данные4- группирование констант временных единиц для ежедневного группирования0- агрегирование констант типов для выведения среднего значения80- числовое значение SLA
Этот скрипт вернет дату, когда тренд ежедневных средних занчений пересечет порог нагрузки на ЦП в 80%. Однако дата возвращается, "завернутая" в таблицу данных (поскольку наша ссылка вызывает контекстную функцию, а контекстные функции всегда возвращают таблицы данных), поэтому нужно использовать функцию языка выражений cell() для извлечения актуального значения ячейки (т.е. дату нарушения SLA).
Наконец, выражение использует функцию языка выражений dateDiff(), чтобы вернуть true, если нарушение SLA произойдет в течение следующих семи дней.
Was this page helpful?